package com.google.typography.font.sfntly.table.core; import com.google.typography.font.sfntly.data.FontData.DataSize; import com.google.typography.font.sfntly.data.ReadableFontData; import com.google.typography.font.sfntly.data.WritableFontData; import java.util.Iterator; public final class CMapFormat2 extends CMap { protected CMapFormat2(ReadableFontData paramReadableFontData, CMapTable.CMapId paramCMapId) { super(paramReadableFontData, CMap.CMapFormat.Format2.value, paramCMapId); } private int subHeaderOffset(int paramInt) { int i = this.data.readUShort(CMapTable.Offset.format2SubHeaderKeys.offset + paramInt * FontData.DataSize.USHORT.size()); return i; } private int firstCode(int paramInt) { int i = subHeaderOffset(paramInt); int j = this.data.readUShort(i + CMapTable.Offset.format2SubHeaderKeys.offset + CMapTable.Offset.format2SubHeader_firstCode.offset); return j; } private int entryCount(int paramInt) { int i = subHeaderOffset(paramInt); int j = this.data.readUShort(i + CMapTable.Offset.format2SubHeaderKeys.offset + CMapTable.Offset.format2SubHeader_entryCount.offset); return j; } private int idRangeOffset(int paramInt) { int i = subHeaderOffset(paramInt); int j = this.data.readUShort(i + CMapTable.Offset.format2SubHeaderKeys.offset + CMapTable.Offset.format2SubHeader_idRangeOffset.offset); return j; } private int idDelta(int paramInt) { int i = subHeaderOffset(paramInt); int j = this.data.readShort(i + CMapTable.Offset.format2SubHeaderKeys.offset + CMapTable.Offset.format2SubHeader_idDelta.offset); return j; } public int bytesConsumed(int paramInt) { int i = paramInt >> 8 & 0xFF; int j = subHeaderOffset(i); if (j == 0) { return 1; } return 2; } public int glyphId(int paramInt) { if (paramInt > 65535) { return 0; } int i = paramInt >> 8 & 0xFF; int j = paramInt & 0xFF; int k = subHeaderOffset(i); if (k == 0) { j = i; i = 0; } int m = firstCode(i); int n = entryCount(i); if ((j < m) || (j >= m + n)) { return 0; } int i1 = idRangeOffset(i); int i2 = k + CMapTable.Offset.format2SubHeader_idRangeOffset.offset + i1 + (j - m) * FontData.DataSize.USHORT.size(); int i3 = this.data.readUShort(i2); if (i3 == 0) { return 0; } if (k == 0) { return i3; } int i4 = idDelta(i); return (i3 + i4) % 65536; } public int language() { return this.data.readUShort(CMapTable.Offset.format2Language.offset); } public Iterator<Integer> iterator() { return new CMap.CharacterIterator(this, 0, 65535); } public static class Builder extends CMap.Builder<CMapFormat2> { protected Builder(WritableFontData paramWritableFontData, int paramInt, CMapTable.CMapId paramCMapId) { super(CMap.CMapFormat.Format2, paramCMapId); } protected Builder(ReadableFontData paramReadableFontData, int paramInt, CMapTable.CMapId paramCMapId) { super(CMap.CMapFormat.Format2, paramCMapId); } protected CMapFormat2 subBuildTable(ReadableFontData paramReadableFontData) { return new CMapFormat2(paramReadableFontData, cmapId()); } } } /* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\google\typography\font\sfntly\table\core\CMapFormat2.class * Java compiler version: 6 (50.0) * JD-Core Version: 0.7.1 */