protected void _remove_(final int index, final int count) throws IllegalArgumentException {
		final int from = this._from_;
		final int index2 = index - from;
		if (index2 < 0) throw new IllegalArgumentException("index < from");
		final int size = this._size_;
		if (index2 > size) throw new IllegalArgumentException("index > from + size");
		if (count == 0) return;
		if (count < 0) throw new IllegalArgumentException("count < 0");
		final int size2 = size - count;
		if (size2 < 0) throw new IllegalArgumentException("count > size");
		final GArray array = this._array_();
		this._size_ = size2;
		if (size2 == 0) {
			this._from_ = this._calcAlign_(this._capacity_());
			this._clearArray_(from, from + size);
		} else if (index2 > (size2 / 2)) {
			System.arraycopy(array, index + count, array, index, size2 - index2);
			this._clearArray_(from + size2, from + size);
		} else {
			final int from2 = from + count;
			this._from_ = from2;
			System.arraycopy(array, from, array, from2, index2);
			this._clearArray_(from, from2);
		}
	}