code: private static int readValue(CharSequence chars, int pos, int leadUnit) {
          int value;
          if(leadUnit<kMinTwoUnitValueLead) {
              value=leadUnit;
          } else if(leadUnit<kThreeUnitValueLead) {
              value=((leadUnit-kMinTwoUnitValueLead)<<16)|chars.charAt(pos);
          } else {
              value=(chars.charAt(pos)<<16)|chars.charAt(pos+1);
          }
          return value;
      }
docs: pos is already after the leadUnit, and the lead unit has bit 15 reset.