public AssemblyPatternBlock truncate(int amt) {
		if (amt == 0) {
			return this;
		}
		if (offset >= amt) {
			return new AssemblyPatternBlock(this.offset - amt, mask, vals);
		}
		int toCut = amt - offset;
		// This circumstance seems unsettling, but I think it's correct
		if (toCut >= this.mask.length) {
			return AssemblyPatternBlock.nop();
		}
		byte[] newMask = Arrays.copyOfRange(this.mask, toCut, this.mask.length);
		byte[] newVals = Arrays.copyOfRange(this.vals, toCut, this.vals.length);
		return new AssemblyPatternBlock(0, newMask, newVals);
	}
Truncate (unshift) this pattern block by removing bytes from the left

@param amt the amount to truncate or shift left
@return the truncated pattern block
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/assembler/sleigh/sem/AssemblyPatternBlock.java