[CFF] Change spaces to tabs
diff --git a/src/hb-cff-interp-common.hh b/src/hb-cff-interp-common.hh
index 6bcb145..aa2a1b9 100644
--- a/src/hb-cff-interp-common.hh
+++ b/src/hb-cff-interp-common.hh
@@ -31,184 +31,189 @@
 using namespace OT;
 
 typedef unsigned int OpCode;
+
+
 /* === Dict operators === */
 
 /* One byte operators (0-31) */
-#define OpCode_version                 0     /* CFF Top */
-#define OpCode_Notice                  1     /* CFF Top */
-#define OpCode_FullName                2     /* CFF Top */
-#define OpCode_FamilyName              3     /* CFF Top */
-#define OpCode_Weight                  4     /* CFF Top */
-#define OpCode_FontBBox                5     /* CFF Top */
-#define OpCode_BlueValues              6     /* CFF Private, CFF2 Private */
-#define OpCode_OtherBlues              7     /* CFF Private, CFF2 Private */
-#define OpCode_FamilyBlues             8     /* CFF Private, CFF2 Private */
-#define OpCode_FamilyOtherBlues        9     /* CFF Private, CFF2 Private */
-#define OpCode_StdHW                   10    /* CFF Private, CFF2 Private */
-#define OpCode_StdVW                   11    /* CFF Private, CFF2 Private */
-#define OpCode_escape                  12    /* All. Shared with CS */
-#define OpCode_UniqueID                13    /* CFF Top */
-#define OpCode_XUID                    14    /* CFF Top */
-#define OpCode_charset                 15    /* CFF Top (0) */
-#define OpCode_Encoding                16    /* CFF Top (0) */
-#define OpCode_CharStrings             17    /* CFF Top, CFF2 Top */
-#define OpCode_Private                 18    /* CFF Top, CFF2 FD */
-#define OpCode_Subrs                   19    /* CFF Private, CFF2 Private */
-#define OpCode_defaultWidthX           20    /* CFF Private (0) */
-#define OpCode_nominalWidthX           21    /* CFF Private (0) */
-#define OpCode_vsindexdict             22    /* CFF2 Private/CS */
-#define OpCode_blenddict               23    /* CFF2 Private/CS  */
-#define OpCode_vstore                  24    /* CFF2 Top */
-#define OpCode_reserved25              25
-#define OpCode_reserved26              26
-#define OpCode_reserved27              27
+#define OpCode_version		  0 /* CFF Top */
+#define OpCode_Notice		  1 /* CFF Top */
+#define OpCode_FullName		  2 /* CFF Top */
+#define OpCode_FamilyName	  3 /* CFF Top */
+#define OpCode_Weight		  4 /* CFF Top */
+#define OpCode_FontBBox		  5 /* CFF Top */
+#define OpCode_BlueValues	  6 /* CFF Private, CFF2 Private */
+#define OpCode_OtherBlues	  7 /* CFF Private, CFF2 Private */
+#define OpCode_FamilyBlues	  8 /* CFF Private, CFF2 Private */
+#define OpCode_FamilyOtherBlues	  9 /* CFF Private, CFF2 Private */
+#define OpCode_StdHW		 10 /* CFF Private, CFF2 Private */
+#define OpCode_StdVW		 11 /* CFF Private, CFF2 Private */
+#define OpCode_escape		 12 /* All. Shared with CS */
+#define OpCode_UniqueID		 13 /* CFF Top */
+#define OpCode_XUID		 14 /* CFF Top */
+#define OpCode_charset		 15 /* CFF Top (0) */
+#define OpCode_Encoding		 16 /* CFF Top (0) */
+#define OpCode_CharStrings	 17 /* CFF Top, CFF2 Top */
+#define OpCode_Private		 18 /* CFF Top, CFF2 FD */
+#define OpCode_Subrs		 19 /* CFF Private, CFF2 Private */
+#define OpCode_defaultWidthX	 20 /* CFF Private (0) */
+#define OpCode_nominalWidthX	 21 /* CFF Private (0) */
+#define OpCode_vsindexdict	 22 /* CFF2 Private/CS */
+#define OpCode_blenddict	 23 /* CFF2 Private/CS */
+#define OpCode_vstore		 24 /* CFF2 Top */
+#define OpCode_reserved25	 25
+#define OpCode_reserved26	 26
+#define OpCode_reserved27	 27
 
 /* Numbers */
-#define OpCode_shortint                28    /* 16-bit integer, All */
-#define OpCode_longintdict             29    /* 32-bit integer, All */
-#define OpCode_BCD                     30    /* real number, CFF2 Top/FD */
-#define OpCode_reserved31              31
+#define OpCode_shortint		 28 /* 16-bit integer, All */
+#define OpCode_longintdict	 29 /* 32-bit integer, All */
+#define OpCode_BCD		 30 /* Real number, CFF2 Top/FD */
+#define OpCode_reserved31	 31
 
 /* 1-byte integers */
-#define OpCode_OneByteIntFirst         32    /* All. beginning of the range of first byte ints */
-#define OpCode_OneByteIntLast          246   /* All. ending of the range of first byte int */
+#define OpCode_OneByteIntFirst	 32 /* All. beginning of the range of first byte ints */
+#define OpCode_OneByteIntLast	246 /* All. ending of the range of first byte int */
 
 /* 2-byte integers */
-#define OpCode_TwoBytePosInt0          247   /* All. first byte of two byte positive int (+108 to +1131) */
-#define OpCode_TwoBytePosInt1          248
-#define OpCode_TwoBytePosInt2          249
-#define OpCode_TwoBytePosInt3          250
+#define OpCode_TwoBytePosInt0	247 /* All. first byte of two byte positive int (+108 to +1131) */
+#define OpCode_TwoBytePosInt1	248
+#define OpCode_TwoBytePosInt2	249
+#define OpCode_TwoBytePosInt3	250
 
-#define OpCode_TwoByteNegInt0          251   /* All. first byte of two byte negative int (-1131 to -108) */
-#define OpCode_TwoByteNegInt1          252
-#define OpCode_TwoByteNegInt2          253
-#define OpCode_TwoByteNegInt3          254
+#define OpCode_TwoByteNegInt0	251 /* All. first byte of two byte negative int (-1131 to -108) */
+#define OpCode_TwoByteNegInt1	252
+#define OpCode_TwoByteNegInt2	253
+#define OpCode_TwoByteNegInt3	254
 
 /* Two byte escape operators 12, (0-41) */
-#define OpCode_ESC_Base                256
-#define Make_OpCode_ESC(byte2)        ((OpCode)(OpCode_ESC_Base + (byte2)))
+#define OpCode_ESC_Base		256
+#define Make_OpCode_ESC(byte2)	((OpCode)(OpCode_ESC_Base + (byte2)))
 
 inline OpCode Unmake_OpCode_ESC (OpCode op)  { return (OpCode)(op - OpCode_ESC_Base); }
 inline bool Is_OpCode_ESC (OpCode op) { return op >= OpCode_ESC_Base; }
-inline unsigned int OpCode_Size (OpCode op) { return Is_OpCode_ESC (op)? 2: 1; }
+inline unsigned int OpCode_Size (OpCode op) { return Is_OpCode_ESC (op) ? 2: 1; }
 
-#define OpCode_Copyright               Make_OpCode_ESC(0)   /* CFF Top */
-#define OpCode_isFixedPitch            Make_OpCode_ESC(1)   /* CFF Top (false) */
-#define OpCode_ItalicAngle             Make_OpCode_ESC(2)   /* CFF Top (0) */
-#define OpCode_UnderlinePosition       Make_OpCode_ESC(3)   /* CFF Top (-100) */
-#define OpCode_UnderlineThickness      Make_OpCode_ESC(4)   /* CFF Top (50) */
-#define OpCode_PaintType               Make_OpCode_ESC(5)   /* CFF Top (0) */
-#define OpCode_CharstringType          Make_OpCode_ESC(6)   /* CFF Top (2) */
-#define OpCode_FontMatrix              Make_OpCode_ESC(7)   /* CFF Top, CFF2 Top (.001 0 0 .001 0 0)*/
-#define OpCode_StrokeWidth             Make_OpCode_ESC(8)   /* CFF Top (0) */
-#define OpCode_BlueScale               Make_OpCode_ESC(9)   /* CFF Private, CFF2 Private (0.039625) */
-#define OpCode_BlueShift               Make_OpCode_ESC(10)  /* CFF Private, CFF2 Private (7) */
-#define OpCode_BlueFuzz                Make_OpCode_ESC(11)  /* CFF Private, CFF2 Private (1) */
-#define OpCode_StemSnapH               Make_OpCode_ESC(12)  /* CFF Private, CFF2 Private */
-#define OpCode_StemSnapV               Make_OpCode_ESC(13)  /* CFF Private, CFF2 Private */
-#define OpCode_ForceBold               Make_OpCode_ESC(14)  /* CFF Private (false) */
-#define OpCode_reservedESC15           Make_OpCode_ESC(15)
-#define OpCode_reservedESC16           Make_OpCode_ESC(16)
-#define OpCode_LanguageGroup           Make_OpCode_ESC(17)  /* CFF Private, CFF2 Private (0) */
-#define OpCode_ExpansionFactor         Make_OpCode_ESC(18)  /* CFF Private, CFF2 Private (0.06) */
-#define OpCode_initialRandomSeed       Make_OpCode_ESC(19)  /* CFF Private (0) */
-#define OpCode_SyntheticBase           Make_OpCode_ESC(20)  /* CFF Top */
-#define OpCode_PostScript              Make_OpCode_ESC(21)  /* CFF Top */
-#define OpCode_BaseFontName            Make_OpCode_ESC(22)  /* CFF Top */
-#define OpCode_BaseFontBlend           Make_OpCode_ESC(23)  /* CFF Top */
-#define OpCode_reservedESC24           Make_OpCode_ESC(24)
-#define OpCode_reservedESC25           Make_OpCode_ESC(25)
-#define OpCode_reservedESC26           Make_OpCode_ESC(26)
-#define OpCode_reservedESC27           Make_OpCode_ESC(27)
-#define OpCode_reservedESC28           Make_OpCode_ESC(28)
-#define OpCode_reservedESC29           Make_OpCode_ESC(29)
-#define OpCode_ROS                     Make_OpCode_ESC(30)  /* CFF Top_CID */
-#define OpCode_CIDFontVersion          Make_OpCode_ESC(31)  /* CFF Top_CID (0) */
-#define OpCode_CIDFontRevision         Make_OpCode_ESC(32)  /* CFF Top_CID (0) */
-#define OpCode_CIDFontType             Make_OpCode_ESC(33)  /* CFF Top_CID (0) */
-#define OpCode_CIDCount                Make_OpCode_ESC(34)  /* CFF Top_CID (8720) */
-#define OpCode_UIDBase                 Make_OpCode_ESC(35)  /* CFF Top_CID */
-#define OpCode_FDArray                 Make_OpCode_ESC(36)  /* CFF Top_CID, CFF2 Top */
-#define OpCode_FDSelect                Make_OpCode_ESC(37)  /* CFF Top_CID, CFF2 Top */
-#define OpCode_FontName                Make_OpCode_ESC(38)  /* CFF Top_CID */
+#define OpCode_Copyright	Make_OpCode_ESC(0) /* CFF Top */
+#define OpCode_isFixedPitch	Make_OpCode_ESC(1) /* CFF Top (false) */
+#define OpCode_ItalicAngle	Make_OpCode_ESC(2) /* CFF Top (0) */
+#define OpCode_UnderlinePosition Make_OpCode_ESC(3) /* CFF Top (-100) */
+#define OpCode_UnderlineThickness Make_OpCode_ESC(4) /* CFF Top (50) */
+#define OpCode_PaintType	Make_OpCode_ESC(5) /* CFF Top (0) */
+#define OpCode_CharstringType	Make_OpCode_ESC(6) /* CFF Top (2) */
+#define OpCode_FontMatrix	Make_OpCode_ESC(7) /* CFF Top, CFF2 Top (.001 0 0 .001 0 0)*/
+#define OpCode_StrokeWidth	Make_OpCode_ESC(8) /* CFF Top (0) */
+#define OpCode_BlueScale	Make_OpCode_ESC(9) /* CFF Private, CFF2 Private (0.039625) */
+#define OpCode_BlueShift	Make_OpCode_ESC(10) /* CFF Private, CFF2 Private (7) */
+#define OpCode_BlueFuzz		Make_OpCode_ESC(11) /* CFF Private, CFF2 Private (1) */
+#define OpCode_StemSnapH	Make_OpCode_ESC(12) /* CFF Private, CFF2 Private */
+#define OpCode_StemSnapV	Make_OpCode_ESC(13) /* CFF Private, CFF2 Private */
+#define OpCode_ForceBold	Make_OpCode_ESC(14) /* CFF Private (false) */
+#define OpCode_reservedESC15	Make_OpCode_ESC(15)
+#define OpCode_reservedESC16	Make_OpCode_ESC(16)
+#define OpCode_LanguageGroup	Make_OpCode_ESC(17) /* CFF Private, CFF2 Private (0) */
+#define OpCode_ExpansionFactor	Make_OpCode_ESC(18) /* CFF Private, CFF2 Private (0.06) */
+#define OpCode_initialRandomSeed Make_OpCode_ESC(19) /* CFF Private (0) */
+#define OpCode_SyntheticBase	Make_OpCode_ESC(20) /* CFF Top */
+#define OpCode_PostScript	Make_OpCode_ESC(21) /* CFF Top */
+#define OpCode_BaseFontName	Make_OpCode_ESC(22) /* CFF Top */
+#define OpCode_BaseFontBlend	Make_OpCode_ESC(23) /* CFF Top */
+#define OpCode_reservedESC24	Make_OpCode_ESC(24)
+#define OpCode_reservedESC25	Make_OpCode_ESC(25)
+#define OpCode_reservedESC26	Make_OpCode_ESC(26)
+#define OpCode_reservedESC27	Make_OpCode_ESC(27)
+#define OpCode_reservedESC28	Make_OpCode_ESC(28)
+#define OpCode_reservedESC29	Make_OpCode_ESC(29)
+#define OpCode_ROS		Make_OpCode_ESC(30) /* CFF Top_CID */
+#define OpCode_CIDFontVersion	Make_OpCode_ESC(31) /* CFF Top_CID (0) */
+#define OpCode_CIDFontRevision	Make_OpCode_ESC(32) /* CFF Top_CID (0) */
+#define OpCode_CIDFontType	Make_OpCode_ESC(33) /* CFF Top_CID (0) */
+#define OpCode_CIDCount		Make_OpCode_ESC(34) /* CFF Top_CID (8720) */
+#define OpCode_UIDBase		Make_OpCode_ESC(35) /* CFF Top_CID */
+#define OpCode_FDArray		Make_OpCode_ESC(36) /* CFF Top_CID, CFF2 Top */
+#define OpCode_FDSelect		Make_OpCode_ESC(37) /* CFF Top_CID, CFF2 Top */
+#define OpCode_FontName		Make_OpCode_ESC(38) /* CFF Top_CID */
 
-    /* === CharString operators === */
 
-#define OpCode_hstem                   1     /* CFF, CFF2 */
-#define OpCode_Reserved2               2
-#define OpCode_vstem                   3     /* CFF, CFF2 */
-#define OpCode_vmoveto                 4     /* CFF, CFF2 */
-#define OpCode_rlineto                 5     /* CFF, CFF2 */
-#define OpCode_hlineto                 6     /* CFF, CFF2 */
-#define OpCode_vlineto                 7     /* CFF, CFF2 */
-#define OpCode_rrcurveto               8     /* CFF, CFF2 */
-#define OpCode_Reserved9               9
-#define OpCode_callsubr                10    /* CFF, CFF2 */
-#define OpCode_return                  11    /* CFF */
-// #define OpCode_escape               12    /* CFF, CFF2 */
-#define OpCode_Reserved13              13
-#define OpCode_endchar                 14    /* CFF */
-#define OpCode_vsindexcs               15    /* CFF2 */
-#define OpCode_blendcs                 16    /* CFF2 */
-#define OpCode_Reserved17              17
-#define OpCode_hstemhm                 18    /* CFF, CFF2 */
-#define OpCode_hintmask                19    /* CFF, CFF2 */
-#define OpCode_cntrmask                20    /* CFF, CFF2 */
-#define OpCode_rmoveto                 21    /* CFF, CFF2 */
-#define OpCode_hmoveto                 22    /* CFF, CFF2 */
-#define OpCode_vstemhm                 23    /* CFF, CFF2 */
-#define OpCode_rcurveline              24    /* CFF, CFF2 */
-#define OpCode_rlinecurve              25    /* CFF, CFF2 */
-#define OpCode_vvcurveto               26    /* CFF, CFF2 */
-#define OpCode_hhcurveto               27    /* CFF, CFF2 */
-// #define OpCode_shortint             28    /* CFF, CFF2 */
-#define OpCode_callgsubr               29    /* CFF, CFF2 */
-#define OpCode_vhcurveto               30    /* CFF, CFF2 */
-#define OpCode_hvcurveto               31    /* CFF, CFF2 */
+/* === CharString operators === */
 
-#define OpCode_fixedcs                 255   /* 32-bit fixed */
+#define OpCode_hstem		  1 /* CFF, CFF2 */
+#define OpCode_Reserved2	  2
+#define OpCode_vstem		  3 /* CFF, CFF2 */
+#define OpCode_vmoveto		  4 /* CFF, CFF2 */
+#define OpCode_rlineto		  5 /* CFF, CFF2 */
+#define OpCode_hlineto		  6 /* CFF, CFF2 */
+#define OpCode_vlineto		  7 /* CFF, CFF2 */
+#define OpCode_rrcurveto	  8 /* CFF, CFF2 */
+#define OpCode_Reserved9	  9
+#define OpCode_callsubr		 10 /* CFF, CFF2 */
+#define OpCode_return		 11 /* CFF */
+//#define OpCode_escape		 12 /* CFF, CFF2 */
+#define OpCode_Reserved13	 13
+#define OpCode_endchar		 14 /* CFF */
+#define OpCode_vsindexcs	 15 /* CFF2 */
+#define OpCode_blendcs		 16 /* CFF2 */
+#define OpCode_Reserved17	 17
+#define OpCode_hstemhm		 18 /* CFF, CFF2 */
+#define OpCode_hintmask		 19 /* CFF, CFF2 */
+#define OpCode_cntrmask		 20 /* CFF, CFF2 */
+#define OpCode_rmoveto		 21 /* CFF, CFF2 */
+#define OpCode_hmoveto		 22 /* CFF, CFF2 */
+#define OpCode_vstemhm		 23 /* CFF, CFF2 */
+#define OpCode_rcurveline	 24 /* CFF, CFF2 */
+#define OpCode_rlinecurve	 25 /* CFF, CFF2 */
+#define OpCode_vvcurveto	 26 /* CFF, CFF2 */
+#define OpCode_hhcurveto	 27 /* CFF, CFF2 */
+//#define OpCode_shortint	 28 /* CFF, CFF2 */
+#define OpCode_callgsubr	 29 /* CFF, CFF2 */
+#define OpCode_vhcurveto	 30 /* CFF, CFF2 */
+#define OpCode_hvcurveto	 31 /* CFF, CFF2 */
+
+#define OpCode_fixedcs		255 /* 32-bit fixed */
 
 /* Two byte escape operators 12, (0-41) */
-#define OpCode_dotsection              Make_OpCode_ESC(0)  /* CFF (obsoleted) */
-#define OpCode_ReservedESC1            Make_OpCode_ESC(1)
-#define OpCode_ReservedESC2            Make_OpCode_ESC(2)
-#define OpCode_and                     Make_OpCode_ESC(3)  /* CFF */
-#define OpCode_or                      Make_OpCode_ESC(4)  /* CFF */
-#define OpCode_not                     Make_OpCode_ESC(5)  /* CFF */
-#define OpCode_ReservedESC6            Make_OpCode_ESC(6)
-#define OpCode_ReservedESC7            Make_OpCode_ESC(7)
-#define OpCode_ReservedESC8            Make_OpCode_ESC(8)
-#define OpCode_abs                     Make_OpCode_ESC(9)  /* CFF */
-#define OpCode_add                     Make_OpCode_ESC(10) /* CFF */
-#define OpCode_sub                     Make_OpCode_ESC(11) /* CFF */
-#define OpCode_div                     Make_OpCode_ESC(12) /* CFF */
-#define OpCode_ReservedESC13           Make_OpCode_ESC(13)
-#define OpCode_neg                     Make_OpCode_ESC(14) /* CFF */
-#define OpCode_eq                      Make_OpCode_ESC(15) /* CFF */
-#define OpCode_ReservedESC16           Make_OpCode_ESC(16)
-#define OpCode_ReservedESC17           Make_OpCode_ESC(17)
-#define OpCode_drop                    Make_OpCode_ESC(18) /* CFF */
-#define OpCode_ReservedESC19           Make_OpCode_ESC(19)
-#define OpCode_put                     Make_OpCode_ESC(20) /* CFF */
-#define OpCode_get                     Make_OpCode_ESC(21) /* CFF */
-#define OpCode_ifelse                  Make_OpCode_ESC(22) /* CFF */
-#define OpCode_random                  Make_OpCode_ESC(23) /* CFF */
-#define OpCode_mul                     Make_OpCode_ESC(24) /* CFF */
-// #define OpCode_reservedESC25        Make_OpCode_ESC(25)
-#define OpCode_sqrt                    Make_OpCode_ESC(26) /* CFF */
-#define OpCode_dup                     Make_OpCode_ESC(27) /* CFF */
-#define OpCode_exch                    Make_OpCode_ESC(28) /* CFF */
-#define OpCode_index                   Make_OpCode_ESC(29) /* CFF */
-#define OpCode_roll                    Make_OpCode_ESC(30) /* CFF */
-#define OpCode_reservedESC31           Make_OpCode_ESC(31)
-#define OpCode_reservedESC32           Make_OpCode_ESC(32)
-#define OpCode_reservedESC33           Make_OpCode_ESC(33)
-#define OpCode_hflex                   Make_OpCode_ESC(34) /* CFF, CFF2 */
-#define OpCode_flex                    Make_OpCode_ESC(35) /* CFF, CFF2 */
-#define OpCode_hflex1                  Make_OpCode_ESC(36) /* CFF, CFF2 */
-#define OpCode_flex1                   Make_OpCode_ESC(37) /* CFF, CFF2 */
+#define OpCode_dotsection	Make_OpCode_ESC(0) /* CFF (obsoleted) */
+#define OpCode_ReservedESC1	Make_OpCode_ESC(1)
+#define OpCode_ReservedESC2	Make_OpCode_ESC(2)
+#define OpCode_and		Make_OpCode_ESC(3) /* CFF */
+#define OpCode_or		Make_OpCode_ESC(4) /* CFF */
+#define OpCode_not		Make_OpCode_ESC(5) /* CFF */
+#define OpCode_ReservedESC6	Make_OpCode_ESC(6)
+#define OpCode_ReservedESC7	Make_OpCode_ESC(7)
+#define OpCode_ReservedESC8	Make_OpCode_ESC(8)
+#define OpCode_abs		Make_OpCode_ESC(9) /* CFF */
+#define OpCode_add		Make_OpCode_ESC(10) /* CFF */
+#define OpCode_sub		Make_OpCode_ESC(11) /* CFF */
+#define OpCode_div		Make_OpCode_ESC(12) /* CFF */
+#define OpCode_ReservedESC13	Make_OpCode_ESC(13)
+#define OpCode_neg		Make_OpCode_ESC(14) /* CFF */
+#define OpCode_eq		Make_OpCode_ESC(15) /* CFF */
+#define OpCode_ReservedESC16	Make_OpCode_ESC(16)
+#define OpCode_ReservedESC17	Make_OpCode_ESC(17)
+#define OpCode_drop		Make_OpCode_ESC(18) /* CFF */
+#define OpCode_ReservedESC19	Make_OpCode_ESC(19)
+#define OpCode_put		Make_OpCode_ESC(20) /* CFF */
+#define OpCode_get		Make_OpCode_ESC(21) /* CFF */
+#define OpCode_ifelse		Make_OpCode_ESC(22) /* CFF */
+#define OpCode_random		Make_OpCode_ESC(23) /* CFF */
+#define OpCode_mul		Make_OpCode_ESC(24) /* CFF */
+//#define OpCode_reservedESC25	Make_OpCode_ESC(25)
+#define OpCode_sqrt		Make_OpCode_ESC(26) /* CFF */
+#define OpCode_dup		Make_OpCode_ESC(27) /* CFF */
+#define OpCode_exch		Make_OpCode_ESC(28) /* CFF */
+#define OpCode_index		Make_OpCode_ESC(29) /* CFF */
+#define OpCode_roll		Make_OpCode_ESC(30) /* CFF */
+#define OpCode_reservedESC31	Make_OpCode_ESC(31)
+#define OpCode_reservedESC32	Make_OpCode_ESC(32)
+#define OpCode_reservedESC33	Make_OpCode_ESC(33)
+#define OpCode_hflex		Make_OpCode_ESC(34) /* CFF, CFF2 */
+#define OpCode_flex		Make_OpCode_ESC(35) /* CFF, CFF2 */
+#define OpCode_hflex1		Make_OpCode_ESC(36) /* CFF, CFF2 */
+#define OpCode_flex1		Make_OpCode_ESC(37) /* CFF, CFF2 */
 
-#define OpCode_Invalid                 65535
+
+#define OpCode_Invalid		0xFFFFu
+
 
 struct Number
 {
@@ -217,8 +222,8 @@
   inline void fini (void)
   {}
 
-  inline void set_int (int v)           { format = NumInt; u.int_val = v; }
-  inline int to_int (void) const        { return is_int ()? u.int_val: (int)to_real (); }
+  inline void set_int (int v)	   { format = NumInt; u.int_val = v; }
+  inline int to_int (void) const	{ return is_int ()? u.int_val: (int)to_real (); }
   inline void set_fixed (int32_t v)     { format = NumFixed; u.fixed_val = v; }
   inline int32_t to_fixed (void) const
   {
@@ -229,7 +234,7 @@
     else
       return (int32_t)(u.int_val << 16);
   }
-  inline void set_real (float v)        { format = NumReal; u.real_val = v; }
+  inline void set_real (float v)	{ format = NumReal; u.real_val = v; }
   inline float to_real (void) const
   {
     if (is_real ())
@@ -246,11 +251,11 @@
     {
       default:
       case NumInt:
-        return u.int_val;
+	return u.int_val;
       case NumFixed:
-        return (u.fixed_val + 0xFFFF) >> 16;
+	return (u.fixed_val + 0xFFFF) >> 16;
       case NumReal:
-        return (int)ceilf (u.real_val);
+	return (int)ceilf (u.real_val);
     }
   }
 
@@ -260,11 +265,11 @@
     {
       default:
       case NumInt:
-        return u.int_val;
+	return u.int_val;
       case NumFixed:
-        return u.fixed_val >> 16;
+	return u.fixed_val >> 16;
       case NumReal:
-        return (int)floorf (u.real_val);
+	return (int)floorf (u.real_val);
     }
   }
 
@@ -454,7 +459,7 @@
   unsigned int  offset; /* beginning of the sub-string within str */
 
   protected:
-  bool          error;
+  bool	  error;
 };
 
 typedef hb_vector_t<ByteStr> ByteStrArray;
@@ -721,7 +726,7 @@
     op = (OpCode)(unsigned char)substr[0];
     if (op == OpCode_escape) {
       if (unlikely (!substr.avail ()))
-        return OpCode_Invalid;
+	return OpCode_Invalid;
       op = Make_OpCode_ESC(substr[1]);
       substr.inc ();
     }
@@ -753,7 +758,7 @@
   SubByteStr    substr;
   ArgStack<ARG> argStack;
   protected:
-  bool          error;
+  bool	  error;
 };
 
 typedef InterpEnv<> NumInterpEnv;
@@ -765,33 +770,33 @@
   {
     switch (op) {
       case OpCode_shortint:
-        env.argStack.push_int ((int16_t)((env.substr[0] << 8) | env.substr[1]));
-        env.substr.inc (2);
-        break;
+	env.argStack.push_int ((int16_t)((env.substr[0] << 8) | env.substr[1]));
+	env.substr.inc (2);
+	break;
 
       case OpCode_TwoBytePosInt0: case OpCode_TwoBytePosInt1:
       case OpCode_TwoBytePosInt2: case OpCode_TwoBytePosInt3:
-        env.argStack.push_int ((int16_t)((op - OpCode_TwoBytePosInt0) * 256 + env.substr[0] + 108));
-        env.substr.inc ();
-        break;
+	env.argStack.push_int ((int16_t)((op - OpCode_TwoBytePosInt0) * 256 + env.substr[0] + 108));
+	env.substr.inc ();
+	break;
 
       case OpCode_TwoByteNegInt0: case OpCode_TwoByteNegInt1:
       case OpCode_TwoByteNegInt2: case OpCode_TwoByteNegInt3:
-        env.argStack.push_int ((int16_t)(-(op - OpCode_TwoByteNegInt0) * 256 - env.substr[0] - 108));
-        env.substr.inc ();
-        break;
+	env.argStack.push_int ((int16_t)(-(op - OpCode_TwoByteNegInt0) * 256 - env.substr[0] - 108));
+	env.substr.inc ();
+	break;
 
       default:
-        /* 1-byte integer */
-        if (likely ((OpCode_OneByteIntFirst <= op) && (op <= OpCode_OneByteIntLast)))
-        {
-          env.argStack.push_int ((int)op - 139);
-        } else {
-          /* invalid unknown operator */
-          env.clear_args ();
-          env.set_error ();
-        }
-        break;
+	/* 1-byte integer */
+	if (likely ((OpCode_OneByteIntFirst <= op) && (op <= OpCode_OneByteIntLast)))
+	{
+	  env.argStack.push_int ((int)op - 139);
+	} else {
+	  /* invalid unknown operator */
+	  env.clear_args ();
+	  env.set_error ();
+	}
+	break;
     }
   }
 };
diff --git a/src/hb-cff-interp-cs-common.hh b/src/hb-cff-interp-cs-common.hh
index 941f1d4..85546fc 100644
--- a/src/hb-cff-interp-cs-common.hh
+++ b/src/hb-cff-interp-cs-common.hh
@@ -51,7 +51,7 @@
   inline void fini (void) {}
 
   SubByteStr      substr;
-  CSType          type;
+  CSType	  type;
   unsigned int    subr_num;
 };
 
@@ -150,7 +150,7 @@
     unsigned int subr_num;
 
     if (unlikely (!popSubrNum (biasedSubrs, subr_num)
-                 || callStack.get_count () >= kMaxCallLimit))
+		 || callStack.get_count () >= kMaxCallLimit))
     {
       SUPER::set_error ();
       return;
@@ -191,19 +191,19 @@
 
   public:
   CallContext   context;
-  bool          endchar_flag;
-  bool          seen_moveto;
-  bool          seen_hintmask;
+  bool	  endchar_flag;
+  bool	  seen_moveto;
+  bool	  seen_hintmask;
 
   unsigned int  hstem_count;
   unsigned int  vstem_count;
   unsigned int  hintmask_size;
-  CallStack            callStack;
+  CallStack	    callStack;
   BiasedSubrs<SUBRS>   globalSubrs;
   BiasedSubrs<SUBRS>   localSubrs;
 
   private:
-  Point         pt;
+  Point	 pt;
 
   typedef InterpEnv<ARG> SUPER;
 };
@@ -241,120 +241,120 @@
     switch (op) {
 
       case OpCode_return:
-        env.returnFromSubr ();
-        break;
+	env.returnFromSubr ();
+	break;
       case OpCode_endchar:
-        OPSET::check_width (op, env, param);
-        env.set_endchar (true);
-        OPSET::flush_args_and_op (op, env, param);
-        break;
+	OPSET::check_width (op, env, param);
+	env.set_endchar (true);
+	OPSET::flush_args_and_op (op, env, param);
+	break;
 
       case OpCode_fixedcs:
-        env.argStack.push_fixed_from_substr (env.substr);
-        break;
+	env.argStack.push_fixed_from_substr (env.substr);
+	break;
 
       case OpCode_callsubr:
-        env.callSubr (env.localSubrs, CSType_LocalSubr);
-        break;
+	env.callSubr (env.localSubrs, CSType_LocalSubr);
+	break;
 
       case OpCode_callgsubr:
-        env.callSubr (env.globalSubrs, CSType_GlobalSubr);
-        break;
+	env.callSubr (env.globalSubrs, CSType_GlobalSubr);
+	break;
 
       case OpCode_hstem:
       case OpCode_hstemhm:
-        OPSET::check_width (op, env, param);
-        OPSET::process_hstem (op, env, param);
-        break;
+	OPSET::check_width (op, env, param);
+	OPSET::process_hstem (op, env, param);
+	break;
       case OpCode_vstem:
       case OpCode_vstemhm:
-        OPSET::check_width (op, env, param);
-        OPSET::process_vstem (op, env, param);
-        break;
+	OPSET::check_width (op, env, param);
+	OPSET::process_vstem (op, env, param);
+	break;
       case OpCode_hintmask:
       case OpCode_cntrmask:
-        OPSET::check_width (op, env, param);
-        OPSET::process_hintmask (op, env, param);
-        break;
+	OPSET::check_width (op, env, param);
+	OPSET::process_hintmask (op, env, param);
+	break;
       case OpCode_rmoveto:
-        OPSET::check_width (op, env, param);
-        PATH::rmoveto (env, param);
-        OPSET::process_post_move (op, env, param);
-        break;
+	OPSET::check_width (op, env, param);
+	PATH::rmoveto (env, param);
+	OPSET::process_post_move (op, env, param);
+	break;
       case OpCode_hmoveto:
-        OPSET::check_width (op, env, param);
-        PATH::hmoveto (env, param);
-        OPSET::process_post_move (op, env, param);
-        break;
+	OPSET::check_width (op, env, param);
+	PATH::hmoveto (env, param);
+	OPSET::process_post_move (op, env, param);
+	break;
       case OpCode_vmoveto:
-        OPSET::check_width (op, env, param);
-        PATH::vmoveto (env, param);
-        OPSET::process_post_move (op, env, param);
-        break;
+	OPSET::check_width (op, env, param);
+	PATH::vmoveto (env, param);
+	OPSET::process_post_move (op, env, param);
+	break;
       case OpCode_rlineto:
-        PATH::rlineto (env, param);
-        process_post_path (op, env, param);
-        break;
+	PATH::rlineto (env, param);
+	process_post_path (op, env, param);
+	break;
       case OpCode_hlineto:
-        PATH::hlineto (env, param);
-        process_post_path (op, env, param);
-        break;
+	PATH::hlineto (env, param);
+	process_post_path (op, env, param);
+	break;
       case OpCode_vlineto:
-        PATH::vlineto (env, param);
-        process_post_path (op, env, param);
-        break;
+	PATH::vlineto (env, param);
+	process_post_path (op, env, param);
+	break;
       case OpCode_rrcurveto:
-        PATH::rrcurveto (env, param);
-        process_post_path (op, env, param);
-        break;
+	PATH::rrcurveto (env, param);
+	process_post_path (op, env, param);
+	break;
       case OpCode_rcurveline:
-        PATH::rcurveline (env, param);
-        process_post_path (op, env, param);
-        break;
+	PATH::rcurveline (env, param);
+	process_post_path (op, env, param);
+	break;
       case OpCode_rlinecurve:
-        PATH::rlinecurve (env, param);
-        process_post_path (op, env, param);
-        break;
+	PATH::rlinecurve (env, param);
+	process_post_path (op, env, param);
+	break;
       case OpCode_vvcurveto:
-        PATH::vvcurveto (env, param);
-        process_post_path (op, env, param);
-        break;
+	PATH::vvcurveto (env, param);
+	process_post_path (op, env, param);
+	break;
       case OpCode_hhcurveto:
-        PATH::hhcurveto (env, param);
-        process_post_path (op, env, param);
-        break;
+	PATH::hhcurveto (env, param);
+	process_post_path (op, env, param);
+	break;
       case OpCode_vhcurveto:
-        PATH::vhcurveto (env, param);
-        process_post_path (op, env, param);
-        break;
+	PATH::vhcurveto (env, param);
+	process_post_path (op, env, param);
+	break;
       case OpCode_hvcurveto:
-        PATH::hvcurveto (env, param);
-        process_post_path (op, env, param);
-        break;
+	PATH::hvcurveto (env, param);
+	process_post_path (op, env, param);
+	break;
 
       case OpCode_hflex:
-        PATH::hflex (env, param);
-        OPSET::process_post_flex (op, env, param);
-        break;
+	PATH::hflex (env, param);
+	OPSET::process_post_flex (op, env, param);
+	break;
 
       case OpCode_flex:
-        PATH::flex (env, param);
-        OPSET::process_post_flex (op, env, param);
-        break;
+	PATH::flex (env, param);
+	OPSET::process_post_flex (op, env, param);
+	break;
 
       case OpCode_hflex1:
-        PATH::hflex1 (env, param);
-        OPSET::process_post_flex (op, env, param);
-        break;
+	PATH::hflex1 (env, param);
+	OPSET::process_post_flex (op, env, param);
+	break;
 
       case OpCode_flex1:
-        PATH::flex1 (env, param);
-        OPSET::process_post_flex (op, env, param);
-        break;
+	PATH::flex1 (env, param);
+	OPSET::process_post_flex (op, env, param);
+	break;
 
       default:
-        SUPER::process_op (op, env);
-        break;
+	SUPER::process_op (op, env);
+	break;
     }
   }
 
@@ -433,11 +433,11 @@
       case OpCode_TwoBytePosInt2: case OpCode_TwoBytePosInt3:
       case OpCode_TwoByteNegInt0: case OpCode_TwoByteNegInt1:
       case OpCode_TwoByteNegInt2: case OpCode_TwoByteNegInt3:
-        return true;
+	return true;
 
       default:
-        /* 1-byte integer */
-        return (OpCode_OneByteIntFirst <= op) && (op <= OpCode_OneByteIntLast);
+	/* 1-byte integer */
+	return (OpCode_OneByteIntFirst <= op) && (op <= OpCode_OneByteIntLast);
     }
   }
 
@@ -630,47 +630,47 @@
 
       for (; i + 8 <= env.argStack.get_count (); i += 8)
       {
-        PATH::curve (env, param, pt1, pt2, pt3);
-        pt1 = env.get_pt ();
-        pt1.move_x (env.eval_arg (i));
-        pt2 = pt1;
-        pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
-        pt3 = pt2;
-        pt3.move_y (env.eval_arg (i+3));
-        PATH::curve (env, param, pt1, pt2, pt3);
+	PATH::curve (env, param, pt1, pt2, pt3);
+	pt1 = env.get_pt ();
+	pt1.move_x (env.eval_arg (i));
+	pt2 = pt1;
+	pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
+	pt3 = pt2;
+	pt3.move_y (env.eval_arg (i+3));
+	PATH::curve (env, param, pt1, pt2, pt3);
 
-        pt1 = pt3;
-        pt1.move_y (env.eval_arg (i+4));
-        pt2 = pt1;
-        pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
-        pt3 = pt2;
-        pt3.move_x (env.eval_arg (i+7));
+	pt1 = pt3;
+	pt1.move_y (env.eval_arg (i+4));
+	pt2 = pt1;
+	pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
+	pt3 = pt2;
+	pt3.move_x (env.eval_arg (i+7));
       }
       if (i < env.argStack.get_count ())
-        pt3.move_y (env.eval_arg (i));
+	pt3.move_y (env.eval_arg (i));
       PATH::curve (env, param, pt1, pt2, pt3);
     }
     else
     {
       for (; i + 8 <= env.argStack.get_count (); i += 8)
       {
-        pt1 = env.get_pt ();
-        pt1.move_y (env.eval_arg (i));
-        pt2 = pt1;
-        pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
-        pt3 = pt2;
-        pt3.move_x (env.eval_arg (i+3));
-        PATH::curve (env, param, pt1, pt2, pt3);
+	pt1 = env.get_pt ();
+	pt1.move_y (env.eval_arg (i));
+	pt2 = pt1;
+	pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
+	pt3 = pt2;
+	pt3.move_x (env.eval_arg (i+3));
+	PATH::curve (env, param, pt1, pt2, pt3);
 
-        pt1 = pt3;
-        pt1.move_x (env.eval_arg (i+4));
-        pt2 = pt1;
-        pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
-        pt3 = pt2;
-        pt3.move_y (env.eval_arg (i+7));
-        if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
-          pt3.move_x (env.eval_arg (i+8));
-        PATH::curve (env, param, pt1, pt2, pt3);
+	pt1 = pt3;
+	pt1.move_x (env.eval_arg (i+4));
+	pt2 = pt1;
+	pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
+	pt3 = pt2;
+	pt3.move_y (env.eval_arg (i+7));
+	if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
+	  pt3.move_x (env.eval_arg (i+8));
+	PATH::curve (env, param, pt1, pt2, pt3);
       }
     }
   }
@@ -691,47 +691,47 @@
 
       for (; i + 8 <= env.argStack.get_count (); i += 8)
       {
-        PATH::curve (env, param, pt1, pt2, pt3);
-        pt1 = env.get_pt ();
-        pt1.move_y (env.eval_arg (i));
-        pt2 = pt1;
-        pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
-        pt3 = pt2;
-        pt3.move_x (env.eval_arg (i+3));
-        PATH::curve (env, param, pt1, pt2, pt3);
+	PATH::curve (env, param, pt1, pt2, pt3);
+	pt1 = env.get_pt ();
+	pt1.move_y (env.eval_arg (i));
+	pt2 = pt1;
+	pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
+	pt3 = pt2;
+	pt3.move_x (env.eval_arg (i+3));
+	PATH::curve (env, param, pt1, pt2, pt3);
 
-        pt1 = pt3;
-        pt1.move_x (env.eval_arg (i+4));
-        pt2 = pt1;
-        pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
-        pt3 = pt2;
-        pt3.move_y (env.eval_arg (i+7));
+	pt1 = pt3;
+	pt1.move_x (env.eval_arg (i+4));
+	pt2 = pt1;
+	pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
+	pt3 = pt2;
+	pt3.move_y (env.eval_arg (i+7));
       }
       if (i < env.argStack.get_count ())
-        pt3.move_x (env.eval_arg (i));
+	pt3.move_x (env.eval_arg (i));
       PATH::curve (env, param, pt1, pt2, pt3);
     }
     else
     {
       for (; i + 8 <= env.argStack.get_count (); i += 8)
       {
-        pt1 = env.get_pt ();
-        pt1.move_x (env.eval_arg (i));
-        pt2 = pt1;
-        pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
-        pt3 = pt2;
-        pt3.move_y (env.eval_arg (i+3));
-        PATH::curve (env, param, pt1, pt2, pt3);
+	pt1 = env.get_pt ();
+	pt1.move_x (env.eval_arg (i));
+	pt2 = pt1;
+	pt2.move (env.eval_arg (i+1), env.eval_arg (i+2));
+	pt3 = pt2;
+	pt3.move_y (env.eval_arg (i+3));
+	PATH::curve (env, param, pt1, pt2, pt3);
 
-        pt1 = pt3;
-        pt1.move_y (env.eval_arg (i+4));
-        pt2 = pt1;
-        pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
-        pt3 = pt2;
-        pt3.move_x (env.eval_arg (i+7));
-        if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
-          pt3.move_y (env.eval_arg (i+8));
-        PATH::curve (env, param, pt1, pt2, pt3);
+	pt1 = pt3;
+	pt1.move_y (env.eval_arg (i+4));
+	pt2 = pt1;
+	pt2.move (env.eval_arg (i+5), env.eval_arg (i+6));
+	pt3 = pt2;
+	pt3.move_x (env.eval_arg (i+7));
+	if ((env.argStack.get_count () - i < 16) && ((env.argStack.get_count () & 1) != 0))
+	  pt3.move_y (env.eval_arg (i+8));
+	PATH::curve (env, param, pt1, pt2, pt3);
       }
     }
   }
@@ -824,7 +824,7 @@
       Point d;
       d.init ();
       for (unsigned int i = 0; i < 10; i += 2)
-        d.move (env.eval_arg (i), env.eval_arg (i+1));
+	d.move (env.eval_arg (i), env.eval_arg (i+1));
 
       Point pt1 = env.get_pt ();
       pt1.move (env.eval_arg (0), env.eval_arg (1));
@@ -840,13 +840,13 @@
 
       if (fabs (d.x.to_real ()) > fabs (d.y.to_real ()))
       {
-        pt6.move_x (env.eval_arg (10));
-        pt6.y = env.get_pt ().y;
+	pt6.move_x (env.eval_arg (10));
+	pt6.y = env.get_pt ().y;
       }
       else
       {
-        pt6.x = env.get_pt ().x;
-        pt6.move_y (env.eval_arg (10));
+	pt6.x = env.get_pt ().x;
+	pt6.move_y (env.eval_arg (10));
       }
 
       curve2 (env, param, pt1, pt2, pt3, pt4, pt5, pt6);
@@ -857,8 +857,8 @@
 
   protected:
   static inline void curve2 (ENV &env, PARAM& param,
-                             const Point &pt1, const Point &pt2, const Point &pt3,
-                             const Point &pt4, const Point &pt5, const Point &pt6)
+			     const Point &pt1, const Point &pt2, const Point &pt3,
+			     const Point &pt4, const Point &pt5, const Point &pt6)
   {
     PATH::curve (env, param, pt1, pt2, pt3);
     PATH::curve (env, param, pt4, pt5, pt6);
@@ -875,9 +875,9 @@
     for (;;) {
       OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
       if (unlikely (SUPER::env.in_error ()))
-        return false;
+	return false;
       if (SUPER::env.is_endchar ())
-        break;
+	break;
     }
 
     return true;
diff --git a/src/hb-cff-interp-dict-common.hh b/src/hb-cff-interp-dict-common.hh
index 9bb278b..aff3562 100644
--- a/src/hb-cff-interp-dict-common.hh
+++ b/src/hb-cff-interp-dict-common.hh
@@ -45,7 +45,7 @@
   {
   }
 
-  Number              single_val;
+  Number	      single_val;
 };
 
 typedef DictVal NumDictVal;
@@ -73,10 +73,10 @@
     {
       case OpCode_CharStrings:
       case OpCode_FDArray:
-        return OpCode_Size (OpCode_longintdict) + 4 + OpCode_Size (opstr.op);
+	return OpCode_Size (OpCode_longintdict) + 4 + OpCode_Size (opstr.op);
 
       default:
-        return opstr.str.len;
+	return opstr.str.len;
     }
   }
 
@@ -90,16 +90,16 @@
   {
     switch (op) {
       case OpCode_longintdict:  /* 5-byte integer */
-        env.argStack.push_longint_from_substr (env.substr);
-        break;
+	env.argStack.push_longint_from_substr (env.substr);
+	break;
 
       case OpCode_BCD:  /* real number */
-        env.argStack.push_real (parse_bcd (env.substr));
-        break;
+	env.argStack.push_real (parse_bcd (env.substr));
+	break;
 
       default:
-        OpSet<Number>::process_op (op, env);
-        break;
+	OpSet<Number>::process_op (op, env);
+	break;
     }
   }
 
@@ -123,84 +123,84 @@
       char d;
       if ((i & 1) == 0)
       {
-        if (!substr.avail ())
-        {
-          substr.set_error ();
-          return 0.0f;
-        }
-        byte = substr[0];
-        substr.inc ();
-        d = byte >> 4;
+	if (!substr.avail ())
+	{
+	  substr.set_error ();
+	  return 0.0f;
+	}
+	byte = substr[0];
+	substr.inc ();
+	d = byte >> 4;
       }
       else
-        d = byte & 0x0F;
+	d = byte & 0x0F;
 
       switch (d)
       {
-        case RESERVED:
-          substr.set_error ();
-          return v;
+	case RESERVED:
+	  substr.set_error ();
+	  return v;
 
-        case END:
-          value = (double)(neg? -int_part: int_part);
-          if (frac_count > 0)
-            value += (frac_part / pow (10.0, (double)frac_count));
-          if (exp_part != 0)
-          {
-            if (exp_neg)
-              value /= pow (10.0, (double)exp_part);
-            else
-              value *= pow (10.0, (double)exp_part);
-          }
-          return (float)value;
+	case END:
+	  value = (double)(neg? -int_part: int_part);
+	  if (frac_count > 0)
+	    value += (frac_part / pow (10.0, (double)frac_count));
+	  if (exp_part != 0)
+	  {
+	    if (exp_neg)
+	      value /= pow (10.0, (double)exp_part);
+	    else
+	      value *= pow (10.0, (double)exp_part);
+	  }
+	  return (float)value;
 
-        case NEG:
-          if (i != 0)
-          {
-            substr.set_error ();
-            return 0.0f;
-          }
-          neg = true;
-          break;
+	case NEG:
+	  if (i != 0)
+	  {
+	    substr.set_error ();
+	    return 0.0f;
+	  }
+	  neg = true;
+	  break;
 
-        case DECIMAL:
-          if (part != INT_PART)
-          {
-            substr.set_error ();
-            return v;
-          }
-          part = FRAC_PART;
-          break;
+	case DECIMAL:
+	  if (part != INT_PART)
+	  {
+	    substr.set_error ();
+	    return v;
+	  }
+	  part = FRAC_PART;
+	  break;
 
-        case EXP_NEG:
-          exp_neg = true;
-          HB_FALLTHROUGH;
+	case EXP_NEG:
+	  exp_neg = true;
+	  HB_FALLTHROUGH;
 
-        case EXP_POS:
-          if (part == EXP_PART)
-          {
-            substr.set_error ();
-            return v;
-          }
-          part = EXP_PART;
-          break;
+	case EXP_POS:
+	  if (part == EXP_PART)
+	  {
+	    substr.set_error ();
+	    return v;
+	  }
+	  part = EXP_PART;
+	  break;
 
-        default:
-          switch (part) {
-            default:
-            case INT_PART:
-              int_part = (int_part * 10) + d;
-              break;
+	default:
+	  switch (part) {
+	    default:
+	    case INT_PART:
+	      int_part = (int_part * 10) + d;
+	      break;
 
-            case FRAC_PART:
-              frac_part = (frac_part * 10) + d;
-              frac_count++;
-              break;
+	    case FRAC_PART:
+	      frac_part = (frac_part * 10) + d;
+	      frac_count++;
+	      break;
 
-            case EXP_PART:
-              exp_part = (exp_part * 10) + d;
-              break;
-          }
+	    case EXP_PART:
+	      exp_part = (exp_part * 10) + d;
+	      break;
+	  }
       }
     }
 
@@ -225,9 +225,9 @@
       case OpCode_ForceBold:
       case OpCode_LanguageGroup:
       case OpCode_ExpansionFactor:
-        return true;
+	return true;
       default:
-        return false;
+	return false;
     }
   }
 };
@@ -239,19 +239,19 @@
   {
     switch (op) {
       case OpCode_CharStrings:
-        dictval.charStringsOffset = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.charStringsOffset = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
       case OpCode_FDArray:
-        dictval.FDArrayOffset = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.FDArrayOffset = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
       case OpCode_FontMatrix:
-        env.clear_args ();
-        break;
+	env.clear_args ();
+	break;
       default:
-        DictOpSet::process_op (op, env);
-        break;
+	DictOpSet::process_op (op, env);
+	break;
     }
   }
 };
@@ -266,7 +266,7 @@
     {
       OPSET::process_op (SUPER::env.fetch_op (), SUPER::env, param);
       if (unlikely (SUPER::env.in_error ()))
-        return false;
+	return false;
     }
 
     return true;
diff --git a/src/hb-cff1-interp-cs.hh b/src/hb-cff1-interp-cs.hh
index 29659a3..95950b0 100644
--- a/src/hb-cff1-interp-cs.hh
+++ b/src/hb-cff1-interp-cs.hh
@@ -58,9 +58,9 @@
     {
       if (has_width_)
       {
-        width = SUPER::argStack[0];
-        has_width = true;
-        arg_start = 1;
+	width = SUPER::argStack[0];
+	has_width = true;
+	arg_start = 1;
       }
     }
     processed_width = true;
@@ -74,11 +74,11 @@
 
   inline void set_in_seac (bool _in_seac) { in_seac = _in_seac; }
 
-  bool          processed_width;
-  bool          has_width;
+  bool	  processed_width;
+  bool	  has_width;
   unsigned int  arg_start;
-  Number        width;
-  bool          in_seac;
+  Number	width;
+  bool	  in_seac;
 
   private:
   typedef CSInterpEnv<Number, CFF1Subrs> SUPER;
@@ -94,21 +94,21 @@
   {
     switch (op) {
       case OpCode_dotsection:
-        SUPER::flush_args_and_op (op, env, param);
-        break;
+	SUPER::flush_args_and_op (op, env, param);
+	break;
 
       case OpCode_endchar:
-        OPSET::check_width (op, env, param);
-        if (env.argStack.get_count () >= 4)
-        {
-          OPSET::process_seac (env, param);
-        }
-        OPSET::flush_args_and_op (op, env, param);
-        env.set_endchar (true);
-        break;
+	OPSET::check_width (op, env, param);
+	if (env.argStack.get_count () >= 4)
+	{
+	  OPSET::process_seac (env, param);
+	}
+	OPSET::flush_args_and_op (op, env, param);
+	env.set_endchar (true);
+	break;
 
       default:
-        SUPER::process_op (op, env, param);
+	SUPER::process_op (op, env, param);
     }
   }
 
@@ -119,24 +119,24 @@
       bool  has_width = false;
       switch (op)
       {
-        case OpCode_endchar:
-        case OpCode_hstem:
-        case OpCode_hstemhm:
-        case OpCode_vstem:
-        case OpCode_vstemhm:
-        case OpCode_hintmask:
-        case OpCode_cntrmask:
-          has_width = ((env.argStack.get_count () & 1) != 0);
-          break;
-        case OpCode_hmoveto:
-        case OpCode_vmoveto:
-          has_width = (env.argStack.get_count () > 1);
-          break;
-        case OpCode_rmoveto:
-          has_width = (env.argStack.get_count () > 2);
-          break;
-        default:
-          return;
+	case OpCode_endchar:
+	case OpCode_hstem:
+	case OpCode_hstemhm:
+	case OpCode_vstem:
+	case OpCode_vstemhm:
+	case OpCode_hintmask:
+	case OpCode_cntrmask:
+	  has_width = ((env.argStack.get_count () & 1) != 0);
+	  break;
+	case OpCode_hmoveto:
+	case OpCode_vmoveto:
+	  has_width = (env.argStack.get_count () > 1);
+	  break;
+	case OpCode_rmoveto:
+	  has_width = (env.argStack.get_count () > 2);
+	  break;
+	default:
+	  return;
       }
       env.set_width (has_width);
     }
diff --git a/src/hb-cff2-interp-cs.hh b/src/hb-cff2-interp-cs.hh
index 99b34d3..8d193d6 100644
--- a/src/hb-cff2-interp-cs.hh
+++ b/src/hb-cff2-interp-cs.hh
@@ -52,7 +52,7 @@
   inline void set_real (float v) { reset_blends (); Number::set_real (v); }
 
   inline void set_blends (unsigned int numValues_, unsigned int valueIndex_,
-                          unsigned int numBlends, const BlendArg *blends_)
+			  unsigned int numBlends, const BlendArg *blends_)
   {
     numValues = numValues_;
     valueIndex = valueIndex_;
@@ -80,7 +80,7 @@
 {
   template <typename ACC>
   inline void init (const ByteStr &str, ACC &acc, unsigned int fd,
-                    const int *coords_=nullptr, unsigned int num_coords_=0)
+		    const int *coords_=nullptr, unsigned int num_coords_=0)
   {
     SUPER::init (str, *acc.globalSubrs, *acc.privateDicts[fd].localSubrs);
 
@@ -133,10 +133,10 @@
       region_count = varStore->varStore.get_region_index_count (get_ivs ());
       if (do_blend)
       {
-        scalars.resize (region_count);
-        varStore->varStore.get_scalars (get_ivs (),
-                                        (int *)coords, num_coords,
-                                        &scalars[0], region_count);
+	scalars.resize (region_count);
+	varStore->varStore.get_scalars (get_ivs (),
+					(int *)coords, num_coords,
+					&scalars[0], region_count);
       }
       seen_blend = true;
     }
@@ -157,10 +157,10 @@
   }
 
   inline unsigned int get_region_count (void) const { return region_count; }
-  inline void         set_region_count (unsigned int region_count_) { region_count = region_count_; }
+  inline void	 set_region_count (unsigned int region_count_) { region_count = region_count_; }
   inline unsigned int get_ivs (void) const { return ivs; }
-  inline void         set_ivs (unsigned int ivs_) { ivs = ivs_; }
-  inline bool         seen_vsindex (void) const { return seen_vsindex_; }
+  inline void	 set_ivs (unsigned int ivs_) { ivs = ivs_; }
+  inline bool	 seen_vsindex (void) const { return seen_vsindex_; }
 
   protected:
   inline void blend_arg (BlendArg &arg)
@@ -169,13 +169,13 @@
     {
       if (likely (scalars.len == arg.deltas.len))
       {
-        float v = arg.to_real ();
-        for (unsigned int i = 0; i < scalars.len; i++)
-        {
-          v += scalars[i] * arg.deltas[i].to_real ();
-        }
-        arg.set_real (v);
-        arg.deltas.resize (0);
+	float v = arg.to_real ();
+	for (unsigned int i = 0; i < scalars.len; i++)
+	{
+	  v += scalars[i] * arg.deltas[i].to_real ();
+	}
+	arg.set_real (v);
+	arg.deltas.resize (0);
       }
     }
   }
@@ -183,13 +183,13 @@
   protected:
   const int     *coords;
   unsigned int  num_coords;
-  const         CFF2VariationStore *varStore;
+  const	 CFF2VariationStore *varStore;
   unsigned int  region_count;
   unsigned int  ivs;
   hb_vector_t<float>  scalars;
-  bool          do_blend;
-  bool          seen_vsindex_;
-  bool          seen_blend;
+  bool	  do_blend;
+  bool	  seen_vsindex_;
+  bool	  seen_blend;
 
   typedef CSInterpEnv<BlendArg, CFF2Subrs> SUPER;
 };
@@ -201,30 +201,30 @@
     switch (op) {
       case OpCode_callsubr:
       case OpCode_callgsubr:
-        /* a subroutine number shoudln't be a blended value */
-        if (unlikely (env.argStack.peek ().blending ()))
-        {
-          env.set_error ();
-          break;
-        }
-        SUPER::process_op (op, env, param);
-        break;
+	/* a subroutine number shoudln't be a blended value */
+	if (unlikely (env.argStack.peek ().blending ()))
+	{
+	  env.set_error ();
+	  break;
+	}
+	SUPER::process_op (op, env, param);
+	break;
 
       case OpCode_blendcs:
-        OPSET::process_blend (env, param);
-        break;
+	OPSET::process_blend (env, param);
+	break;
 
       case OpCode_vsindexcs:
-        if (unlikely (env.argStack.peek ().blending ()))
-        {
-          env.set_error ();
-          break;
-        }
-        OPSET::process_vsindex (env, param);
-        break;
+	if (unlikely (env.argStack.peek ().blending ()))
+	{
+	  env.set_error ();
+	  break;
+	}
+	OPSET::process_vsindex (env, param);
+	break;
 
       default:
-        SUPER::process_op (op, env, param);
+	SUPER::process_op (op, env, param);
     }
   }
 
diff --git a/src/hb-ot-cff-common.hh b/src/hb-ot-cff-common.hh
index 3f5a85a..5ec1361 100644
--- a/src/hb-ot-cff-common.hh
+++ b/src/hb-ot-cff-common.hh
@@ -89,9 +89,9 @@
   {
     TRACE_SANITIZE (this);
     return_trace (likely ((count.sanitize (c) && count == 0) || /* empty INDEX */
-                          (c->check_struct (this) && offSize >= 1 && offSize <= 4 &&
-                           c->check_array (offsets, offSize, count + 1) &&
-                           c->check_array ((const HBUINT8*)data_base (), 1, max_offset () - 1))));
+			  (c->check_struct (this) && offSize >= 1 && offSize <= 4 &&
+			   c->check_array (offsets, offSize, count + 1) &&
+			   c->check_array ((const HBUINT8*)data_base (), 1, max_offset () - 1))));
   }
 
   inline static unsigned int calculate_offset_array_size (unsigned int offSize, unsigned int count)
@@ -119,8 +119,8 @@
   }
 
   inline bool serialize (hb_serialize_context_t *c,
-                         unsigned int offSize_,
-                         const ByteStrArray &byteArray)
+			 unsigned int offSize_,
+			 const ByteStrArray &byteArray)
   {
     TRACE_SERIALIZE (this);
     if (byteArray.len == 0)
@@ -136,33 +136,33 @@
       this->count.set (byteArray.len);
       this->offSize.set (offSize_);
       if (!unlikely (c->allocate_size<HBUINT8> (offSize_ * (byteArray.len + 1))))
-        return_trace (false);
+	return_trace (false);
 
       /* serialize indices */
       unsigned int  offset = 1;
       unsigned int  i = 0;
       for (; i < byteArray.len; i++)
       {
-        set_offset_at (i, offset);
-        offset += byteArray[i].get_size ();
+	set_offset_at (i, offset);
+	offset += byteArray[i].get_size ();
       }
       set_offset_at (i, offset);
 
       /* serialize data */
       for (unsigned int i = 0; i < byteArray.len; i++)
       {
-        ByteStr  *dest = c->start_embed<ByteStr> ();
-        if (unlikely (dest == nullptr ||
-                      !dest->serialize (c, byteArray[i])))
-          return_trace (false);
+	ByteStr  *dest = c->start_embed<ByteStr> ();
+	if (unlikely (dest == nullptr ||
+		      !dest->serialize (c, byteArray[i])))
+	  return_trace (false);
       }
     }
     return_trace (true);
   }
 
   inline bool serialize (hb_serialize_context_t *c,
-                         unsigned int offSize_,
-                         const StrBuffArray &buffArray)
+			 unsigned int offSize_,
+			 const StrBuffArray &buffArray)
   {
     ByteStrArray  byteArray;
     byteArray.init ();
@@ -221,9 +221,9 @@
     if (this != &Null(CFFIndex))
     {
       if (count > 0)
-        return min_size + offset_array_size () + (offset_at (count) - 1);
+	return min_size + offset_array_size () + (offset_at (count) - 1);
       else
-        return count.static_size;  /* empty CFFIndex contains count only */
+	return count.static_size;  /* empty CFFIndex contains count only */
     }
     else
       return 0;
@@ -242,7 +242,7 @@
   }
 
   public:
-  COUNT     count;        /* Number of object data. Note there are (count+1) offsets */
+  COUNT     count;	/* Number of object data. Note there are (count+1) offsets */
   HBUINT8   offSize;      /* The byte size of each offset in the offsets array. */
   HBUINT8   offsets[VAR]; /* The array of (count + 1) offsets into objects array (1-base). */
   /* HBUINT8 data[VAR];      Object data */
@@ -262,12 +262,12 @@
 
   template <typename DATA, typename PARAM1, typename PARAM2>
   inline bool serialize (hb_serialize_context_t *c,
-                         unsigned int offSize_,
-                         const DATA *dataArray,
-                         unsigned int dataArrayLen,
-                         const hb_vector_t<unsigned int> &dataSizeArray,
-                         const PARAM1 &param1,
-                         const PARAM2 &param2)
+			 unsigned int offSize_,
+			 const DATA *dataArray,
+			 unsigned int dataArrayLen,
+			 const hb_vector_t<unsigned int> &dataSizeArray,
+			 const PARAM1 &param1,
+			 const PARAM2 &param2)
   {
     TRACE_SERIALIZE (this);
     /* serialize CFFIndex header */
@@ -292,8 +292,8 @@
     {
       TYPE  *dest = c->start_embed<TYPE> ();
       if (unlikely (dest == nullptr ||
-                    !dest->serialize (c, dataArray[i], param1, param2)))
-        return_trace (false);
+		    !dest->serialize (c, dataArray[i], param1, param2)))
+	return_trace (false);
     }
     return_trace (true);
   }
@@ -301,10 +301,10 @@
   /* in parallel to above */
   template <typename DATA, typename PARAM>
   inline static unsigned int calculate_serialized_size (unsigned int &offSize_ /* OUT */,
-                                                        const DATA *dataArray,
-                                                        unsigned int dataArrayLen,
-                                                        hb_vector_t<unsigned int> &dataSizeArray, /* OUT */
-                                                        const PARAM &param)
+							const DATA *dataArray,
+							unsigned int dataArrayLen,
+							hb_vector_t<unsigned int> &dataSizeArray, /* OUT */
+							const PARAM &param)
   {
     /* determine offset size */
     unsigned int  totalDataSize = 0;
@@ -325,15 +325,15 @@
 {
   template <typename DICTVAL, typename OP_SERIALIZER, typename PARAM>
   inline bool serialize (hb_serialize_context_t *c,
-                        const DICTVAL &dictval,
-                        OP_SERIALIZER& opszr,
-                        PARAM& param)
+			const DICTVAL &dictval,
+			OP_SERIALIZER& opszr,
+			PARAM& param)
   {
     TRACE_SERIALIZE (this);
     for (unsigned int i = 0; i < dictval.get_count (); i++)
     {
       if (unlikely (!opszr.serialize (c, dictval[i], param)))
-        return_trace (false);
+	return_trace (false);
     }
     return_trace (true);
   }
@@ -341,8 +341,8 @@
   /* in parallel to above */
   template <typename DICTVAL, typename OP_SERIALIZER, typename PARAM>
   inline static unsigned int calculate_serialized_size (const DICTVAL &dictval,
-                                                        OP_SERIALIZER& opszr,
-                                                        PARAM& param)
+							OP_SERIALIZER& opszr,
+							PARAM& param)
   {
     unsigned int size = 0;
     for (unsigned int i = 0; i < dictval.get_count (); i++)
@@ -352,7 +352,7 @@
 
   template <typename DICTVAL, typename OP_SERIALIZER>
   inline static unsigned int calculate_serialized_size (const DICTVAL &dictval,
-                                                        OP_SERIALIZER& opszr)
+							OP_SERIALIZER& opszr)
   {
     unsigned int size = 0;
     for (unsigned int i = 0; i < dictval.get_count (); i++)
@@ -471,9 +471,9 @@
   /* used by CFF1 */
   template <typename DICTVAL, typename OP_SERIALIZER>
   inline bool serialize (hb_serialize_context_t *c,
-                        unsigned int offSize_,
-                        const hb_vector_t<DICTVAL> &fontDicts,
-                        OP_SERIALIZER& opszr)
+			unsigned int offSize_,
+			const hb_vector_t<DICTVAL> &fontDicts,
+			OP_SERIALIZER& opszr)
   {
     TRACE_SERIALIZE (this);
     if (unlikely (!c->extend_min (*this))) return_trace (false);
@@ -497,7 +497,7 @@
     {
       FontDict *dict = c->start_embed<FontDict> ();
       if (unlikely (!dict->serialize (c, fontDicts[i], opszr, fontDicts[i])))
-        return_trace (false);
+	return_trace (false);
     }
     return_trace (true);
   }
@@ -505,12 +505,12 @@
   /* used by CFF2 */
   template <typename DICTVAL, typename OP_SERIALIZER>
   inline bool serialize (hb_serialize_context_t *c,
-                        unsigned int offSize_,
-                        const hb_vector_t<DICTVAL> &fontDicts,
-                        unsigned int fdCount,
-                        const Remap &fdmap,
-                        OP_SERIALIZER& opszr,
-                        const hb_vector_t<TableInfo> &privateInfos)
+			unsigned int offSize_,
+			const hb_vector_t<DICTVAL> &fontDicts,
+			unsigned int fdCount,
+			const Remap &fdmap,
+			OP_SERIALIZER& opszr,
+			const hb_vector_t<TableInfo> &privateInfos)
   {
     TRACE_SERIALIZE (this);
     if (unlikely (!c->extend_min (*this))) return_trace (false);
@@ -525,8 +525,8 @@
     for (unsigned i = 0; i < fontDicts.len; i++)
       if (fdmap.includes (i))
       {
-        CFFIndexOf<COUNT, FontDict>::set_offset_at (fid++, offset);
-        offset += FontDict::calculate_serialized_size (fontDicts[i], opszr);
+	CFFIndexOf<COUNT, FontDict>::set_offset_at (fid++, offset);
+	offset += FontDict::calculate_serialized_size (fontDicts[i], opszr);
       }
     CFFIndexOf<COUNT, FontDict>::set_offset_at (fid, offset);
 
@@ -534,9 +534,9 @@
     for (unsigned int i = 0; i < fontDicts.len; i++)
       if (fdmap.includes (i))
       {
-        FontDict *dict = c->start_embed<FontDict> ();
-        if (unlikely (!dict->serialize (c, fontDicts[i], opszr, privateInfos[fdmap[i]])))
-          return_trace (false);
+	FontDict *dict = c->start_embed<FontDict> ();
+	if (unlikely (!dict->serialize (c, fontDicts[i], opszr, privateInfos[fdmap[i]])))
+	  return_trace (false);
       }
     return_trace (true);
   }
@@ -544,15 +544,15 @@
   /* in parallel to above */
   template <typename OP_SERIALIZER, typename DICTVAL>
   inline static unsigned int calculate_serialized_size (unsigned int &offSize_ /* OUT */,
-                                                        const hb_vector_t<DICTVAL> &fontDicts,
-                                                        unsigned int fdCount,
-                                                        const Remap &fdmap,
-                                                        OP_SERIALIZER& opszr)
+							const hb_vector_t<DICTVAL> &fontDicts,
+							unsigned int fdCount,
+							const Remap &fdmap,
+							OP_SERIALIZER& opszr)
   {
     unsigned int dictsSize = 0;
     for (unsigned int i = 0; i < fontDicts.len; i++)
       if (fdmap.includes (i))
-        dictsSize += FontDict::calculate_serialized_size (fontDicts[i], opszr);
+	dictsSize += FontDict::calculate_serialized_size (fontDicts[i], opszr);
 
     offSize_ = calcOffSize (dictsSize);
     return CFFIndex<COUNT>::calculate_serialized_size (offSize_, fdCount, dictsSize);
@@ -568,7 +568,7 @@
       return_trace (false);
     for (unsigned int i = 0; i < c->get_num_glyphs (); i++)
       if (unlikely (!fds[i].sanitize (c)))
-        return_trace (false);
+	return_trace (false);
 
     return_trace (true);
   }
@@ -614,9 +614,9 @@
     for (unsigned int i = 0; i < nRanges; i++)
     {
       if (unlikely (!ranges[i].sanitize (c, fdcount)))
-        return_trace (false);
+	return_trace (false);
       if ((0 < i) && unlikely (ranges[i - 1].first >= ranges[i].first))
-        return_trace (false);
+	return_trace (false);
     }
     if (unlikely (!sentinel().sanitize (c) || (sentinel() != c->get_num_glyphs ())))
       return_trace (false);
@@ -629,7 +629,7 @@
     unsigned int i;
     for (i = 1; i < nRanges; i++)
       if (glyph < ranges[i].first)
-        break;
+	break;
 
     return (hb_codepoint_t)ranges[i - 1].fd;
   }
@@ -637,7 +637,7 @@
   inline GID_TYPE &sentinel (void)  { return StructAfter<GID_TYPE> (ranges[nRanges - 1]); }
   inline const GID_TYPE &sentinel (void) const  { return StructAfter<GID_TYPE> (ranges[nRanges - 1]); }
 
-  GID_TYPE         nRanges;
+  GID_TYPE	 nRanges;
   FDSelect3_4_Range<GID_TYPE, FD_TYPE>  ranges[VAR];
   /* GID_TYPE sentinel */
 
@@ -653,9 +653,9 @@
     TRACE_SANITIZE (this);
 
     return_trace (likely (c->check_struct (this) && (format == 0 || format == 3) &&
-                          (format == 0)?
-                          u.format0.sanitize (c, fdcount):
-                          u.format3.sanitize (c, fdcount)));
+			  (format == 0)?
+			  u.format0.sanitize (c, fdcount):
+			  u.format3.sanitize (c, fdcount)));
   }
 
   inline bool serialize (hb_serialize_context_t *c, const FDSelect &src, unsigned int num_glyphs)
diff --git a/src/hb-ot-cff1-table.cc b/src/hb-ot-cff1-table.cc
index 92c6258..d1e0a1f 100644
--- a/src/hb-ot-cff1-table.cc
+++ b/src/hb-ot-cff1-table.cc
@@ -276,8 +276,8 @@
 
     Bounds  base_bounds, accent_bounds;
     if (likely (!env.in_seac && base && accent
-               && _get_bounds (param.cff, base, base_bounds, true)
-               && _get_bounds (param.cff, accent, accent_bounds, true)))
+	       && _get_bounds (param.cff, base, base_bounds, true)
+	       && _get_bounds (param.cff, accent, accent_bounds, true)))
     {
       param.bounds.merge (base_bounds);
       accent_bounds.offset (delta);
diff --git a/src/hb-ot-cff1-table.hh b/src/hb-ot-cff1-table.hh
index cd36941..7bed263 100644
--- a/src/hb-ot-cff1-table.hh
+++ b/src/hb-ot-cff1-table.hh
@@ -47,10 +47,10 @@
 typedef CFFIndex<HBUINT16>  CFF1Index;
 template <typename Type> struct CFF1IndexOf : CFFIndexOf<HBUINT16, Type> {};
 
-typedef CFFIndex<HBUINT16>  CFF1Index;
-typedef CFF1Index         CFF1CharStrings;
-typedef FDArray<HBUINT16> CFF1FDArray;
-typedef Subrs<HBUINT16>   CFF1Subrs;
+typedef CFFIndex<HBUINT16> CFF1Index;
+typedef CFF1Index          CFF1CharStrings;
+typedef FDArray<HBUINT16>  CFF1FDArray;
+typedef Subrs<HBUINT16>    CFF1Subrs;
 
 struct CFF1FDSelect : FDSelect {};
 
@@ -114,14 +114,14 @@
     {
       if (glyph <= ranges[i].nLeft)
       {
-        return (hb_codepoint_t)ranges[i].first + glyph;
+	return (hb_codepoint_t)ranges[i].first + glyph;
       }
       glyph -= (ranges[i].nLeft + 1);
     }
     return CFF_UNDEF_CODE;
   }
 
-  HBUINT8           nRanges;
+  HBUINT8	   nRanges;
   Encoding1_Range   ranges[VAR];
 
   DEFINE_SIZE_ARRAY (1, ranges);
@@ -151,13 +151,13 @@
   {
     for (unsigned int i = 0; i < nSups; i++)
       if (sid == supps[i].glyph)
-        codes.push (supps[i].code);
+	codes.push (supps[i].code);
   }
 
   inline unsigned int get_size (void) const
   { return HBUINT8::static_size + SuppEncoding::static_size * nSups; }
 
-  HBUINT8         nSups;
+  HBUINT8	 nSups;
   SuppEncoding   supps[VAR];
 
   DEFINE_SIZE_ARRAY (1, supps);
@@ -191,10 +191,10 @@
 
   /* serialize a subset Encoding */
   inline bool serialize (hb_serialize_context_t *c,
-                         uint8_t format,
-                         unsigned int enc_count,
-                         const hb_vector_t<code_pair>& code_ranges,
-                         const hb_vector_t<code_pair>& supp_codes)
+			 uint8_t format,
+			 unsigned int enc_count,
+			 const hb_vector_t<code_pair>& code_ranges,
+			 const hb_vector_t<code_pair>& supp_codes)
   {
     TRACE_SERIALIZE (this);
     Encoding *dest = c->extend_min (*this);
@@ -208,10 +208,10 @@
       unsigned int glyph = 0;
       for (unsigned int i = 0; i < code_ranges.len; i++)
       {
-        hb_codepoint_t code = code_ranges[i].code;
-        for (int left = (int)code_ranges[i].glyph; left >= 0; left--)
-          fmt0->codes[glyph++].set (code++);
-        assert ((glyph <= 0x100) && (code <= 0x100));
+	hb_codepoint_t code = code_ranges[i].code;
+	for (int left = (int)code_ranges[i].glyph; left >= 0; left--)
+	  fmt0->codes[glyph++].set (code++);
+	assert ((glyph <= 0x100) && (code <= 0x100));
       }
     }
     else
@@ -221,9 +221,9 @@
       fmt1->nRanges.set (code_ranges.len);
       for (unsigned int i = 0; i < code_ranges.len; i++)
       {
-        assert ((code_ranges[i].code <= 0xFF) && (code_ranges[i].glyph <= 0xFF));
-        fmt1->ranges[i].first.set (code_ranges[i].code);
-        fmt1->ranges[i].nLeft.set (code_ranges[i].glyph);
+	assert ((code_ranges[i].code <= 0xFF) && (code_ranges[i].glyph <= 0xFF));
+	fmt1->ranges[i].first.set (code_ranges[i].code);
+	fmt1->ranges[i].nLeft.set (code_ranges[i].glyph);
       }
     }
     if (supp_codes.len > 0)
@@ -233,8 +233,8 @@
       suppData->nSups.set (supp_codes.len);
       for (unsigned int i = 0; i < supp_codes.len; i++)
       {
-        suppData->supps[i].code.set (supp_codes[i].code);
-        suppData->supps[i].glyph.set (supp_codes[i].glyph); /* actually SID */
+	suppData->supps[i].code.set (supp_codes[i].code);
+	suppData->supps[i].glyph.set (supp_codes[i].glyph); /* actually SID */
       }
     }
     return_trace (true);
@@ -242,9 +242,9 @@
 
   /* parallel to above: calculate the size of a subset Encoding */
   static inline unsigned int calculate_serialized_size (
-                        uint8_t format,
-                        unsigned int enc_count,
-                        unsigned int supp_count)
+			uint8_t format,
+			unsigned int enc_count,
+			unsigned int supp_count)
   {
     unsigned int  size = min_size;
     if (format == 0)
@@ -331,7 +331,7 @@
     for (unsigned int glyph = 1; glyph < num_glyphs; glyph++)
     {
       if (sids[glyph-1] == sid)
-        return glyph;
+	return glyph;
     }
     return 0;
   }
@@ -372,7 +372,7 @@
     for (unsigned int i = 0; num_glyphs > 0; i++)
     {
       if (unlikely (!ranges[i].sanitize (c) || (num_glyphs < ranges[i].nLeft + 1)))
-        return_trace (false);
+	return_trace (false);
       num_glyphs -= (ranges[i].nLeft + 1);
     }
     return_trace (true);
@@ -385,7 +385,7 @@
     for (unsigned int i = 0;; i++)
     {
       if (glyph <= ranges[i].nLeft)
-        return (hb_codepoint_t)ranges[i].first + glyph;
+	return (hb_codepoint_t)ranges[i].first + glyph;
       glyph -= (ranges[i].nLeft + 1);
     }
 
@@ -399,7 +399,7 @@
     for (unsigned int i = 0;; i++)
     {
       if ((ranges[i].first <= sid) && sid <= ranges[i].first + ranges[i].nLeft)
-        return glyph + (sid - ranges[i].first);
+	return glyph + (sid - ranges[i].first);
       glyph += (ranges[i].nLeft + 1);
     }
 
@@ -462,9 +462,9 @@
 
   /* serialize a subset Charset */
   inline bool serialize (hb_serialize_context_t *c,
-                         uint8_t format,
-                         unsigned int num_glyphs,
-                         const hb_vector_t<code_pair>& sid_ranges)
+			 uint8_t format,
+			 unsigned int num_glyphs,
+			 const hb_vector_t<code_pair>& sid_ranges)
   {
     TRACE_SERIALIZE (this);
     Charset *dest = c->extend_min (*this);
@@ -477,9 +477,9 @@
       unsigned int glyph = 0;
       for (unsigned int i = 0; i < sid_ranges.len; i++)
       {
-        hb_codepoint_t sid = sid_ranges[i].code;
-        for (int left = (int)sid_ranges[i].glyph; left >= 0; left--)
-          fmt0->sids[glyph++].set (sid++);
+	hb_codepoint_t sid = sid_ranges[i].code;
+	for (int left = (int)sid_ranges[i].glyph; left >= 0; left--)
+	  fmt0->sids[glyph++].set (sid++);
       }
     }
     else if (format == 1)
@@ -488,9 +488,9 @@
       if (unlikely (fmt1 == nullptr)) return_trace (false);
       for (unsigned int i = 0; i < sid_ranges.len; i++)
       {
-        assert (sid_ranges[i].glyph <= 0xFF);
-        fmt1->ranges[i].first.set (sid_ranges[i].code);
-        fmt1->ranges[i].nLeft.set (sid_ranges[i].glyph);
+	assert (sid_ranges[i].glyph <= 0xFF);
+	fmt1->ranges[i].first.set (sid_ranges[i].code);
+	fmt1->ranges[i].nLeft.set (sid_ranges[i].glyph);
       }
     }
     else /* format 2 */
@@ -499,9 +499,9 @@
       if (unlikely (fmt2 == nullptr)) return_trace (false);
       for (unsigned int i = 0; i < sid_ranges.len; i++)
       {
-        assert (sid_ranges[i].glyph <= 0xFFFF);
-        fmt2->ranges[i].first.set (sid_ranges[i].code);
-        fmt2->ranges[i].nLeft.set (sid_ranges[i].glyph);
+	assert (sid_ranges[i].glyph <= 0xFFFF);
+	fmt2->ranges[i].first.set (sid_ranges[i].code);
+	fmt2->ranges[i].nLeft.set (sid_ranges[i].glyph);
       }
     }
     return_trace (true);
@@ -509,8 +509,8 @@
 
   /* parallel to above: calculate the size of a subset Charset */
   static inline unsigned int calculate_serialized_size (
-                        uint8_t format,
-                        unsigned int count)
+			uint8_t format,
+			unsigned int count)
   {
     unsigned int  size = min_size;
     if (format == 0)
@@ -573,7 +573,7 @@
     if (unlikely ((strings.count == 0) || (sidmap.get_count () == 0)))
     {
       if (!unlikely (c->extend_min (this->count)))
-        return_trace (false);
+	return_trace (false);
       count.set (0);
       return_trace (true);
     }
@@ -586,7 +586,7 @@
     {
       hb_codepoint_t  j = sidmap[i];
       if (j != CFF_UNDEF_CODE)
-        bytesArray[j] = strings[i];
+	bytesArray[j] = strings[i];
     }
 
     bool result = CFF1Index::serialize (c, offSize_, bytesArray);
@@ -604,7 +604,7 @@
     unsigned int dataSize = 0;
     for (unsigned int i = 0; i < count; i++)
       if (sidmap[i] != CFF_UNDEF_CODE)
-        dataSize += length_at (i);
+	dataSize += length_at (i);
 
     offSize = calcOffSize(dataSize);
     return CFF1Index::calculate_serialized_size (offSize, sidmap.get_count (), dataSize);
@@ -655,23 +655,23 @@
   {
     switch (op) {
       case OpCode_version:
-        return version;
+	return version;
       case OpCode_Notice:
-        return notice;
+	return notice;
       case OpCode_Copyright:
-        return copyright;
+	return copyright;
       case OpCode_FullName:
-        return fullName;
+	return fullName;
       case OpCode_FamilyName:
-        return familyName;
+	return familyName;
       case OpCode_Weight:
-        return weight;
+	return weight;
       case OpCode_PostScript:
-        return postscript;
+	return postscript;
       case OpCode_FontName:
-        return fontName;
+	return fontName;
       default:
-        assert (0);
+	assert (0);
       }
   }
 
@@ -733,9 +733,9 @@
       case OpCode_Weight:
       case OpCode_PostScript:
       case OpCode_BaseFontName:
-        dictval.nameSIDs[NameDictValues::name_op_to_index (op)] = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.nameSIDs[NameDictValues::name_op_to_index (op)] = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
       case OpCode_isFixedPitch:
       case OpCode_ItalicAngle:
       case OpCode_UnderlinePosition:
@@ -752,50 +752,50 @@
       case OpCode_FontBBox:
       case OpCode_XUID:
       case OpCode_BaseFontBlend:
-        env.clear_args ();
-        break;
+	env.clear_args ();
+	break;
 
       case OpCode_CIDCount:
-        dictval.cidCount = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.cidCount = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
 
       case OpCode_ROS:
-        dictval.ros_supplement = env.argStack.pop_uint ();
-        dictval.nameSIDs[NameDictValues::ordering] = env.argStack.pop_uint ();
-        dictval.nameSIDs[NameDictValues::registry] = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.ros_supplement = env.argStack.pop_uint ();
+	dictval.nameSIDs[NameDictValues::ordering] = env.argStack.pop_uint ();
+	dictval.nameSIDs[NameDictValues::registry] = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
 
       case OpCode_Encoding:
-        dictval.EncodingOffset = env.argStack.pop_uint ();
-        env.clear_args ();
-        if (unlikely (dictval.EncodingOffset == 0)) return;
-        break;
+	dictval.EncodingOffset = env.argStack.pop_uint ();
+	env.clear_args ();
+	if (unlikely (dictval.EncodingOffset == 0)) return;
+	break;
 
       case OpCode_charset:
-        dictval.CharsetOffset = env.argStack.pop_uint ();
-        env.clear_args ();
-        if (unlikely (dictval.CharsetOffset == 0)) return;
-        break;
+	dictval.CharsetOffset = env.argStack.pop_uint ();
+	env.clear_args ();
+	if (unlikely (dictval.CharsetOffset == 0)) return;
+	break;
 
       case OpCode_FDSelect:
-        dictval.FDSelectOffset = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.FDSelectOffset = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
 
       case OpCode_Private:
-        dictval.privateDictInfo.offset = env.argStack.pop_uint ();
-        dictval.privateDictInfo.size = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.privateDictInfo.offset = env.argStack.pop_uint ();
+	dictval.privateDictInfo.size = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
 
       default:
-        env.last_offset = env.substr.offset;
-        TopDictOpSet<CFF1TopDictVal>::process_op (op, env, dictval);
-        /* Record this operand below if stack is empty, otherwise done */
-        if (!env.argStack.is_empty ()) return;
-        break;
+	env.last_offset = env.substr.offset;
+	TopDictOpSet<CFF1TopDictVal>::process_op (op, env, dictval);
+	/* Record this operand below if stack is empty, otherwise done */
+	if (!env.argStack.is_empty ()) return;
+	break;
     }
 
     if (unlikely (env.in_error ())) return;
@@ -828,23 +828,23 @@
   {
     switch (op) {
       case OpCode_FontName:
-        dictval.fontName = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.fontName = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
       case OpCode_FontMatrix:
       case OpCode_PaintType:
-        env.clear_args ();
-        break;
+	env.clear_args ();
+	break;
       case OpCode_Private:
-        dictval.privateDictInfo.offset = env.argStack.pop_uint ();
-        dictval.privateDictInfo.size = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.privateDictInfo.offset = env.argStack.pop_uint ();
+	dictval.privateDictInfo.size = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
 
       default:
-        DictOpSet::process_op (op, env);
-        if (!env.argStack.is_empty ()) return;
-        break;
+	DictOpSet::process_op (op, env);
+	if (!env.argStack.is_empty ()) return;
+	break;
     }
 
     if (unlikely (env.in_error ())) return;
@@ -873,9 +873,9 @@
     unsigned int size = 0;
     for (unsigned int i = 0; i < DictValues<VAL>::get_count; i++)
       if (DictValues<VAL>::get_value (i).op == OpCode_Subrs)
-        size += OpCode_Size (OpCode_shortint) + 2 + OpCode_Size (OpCode_Subrs);
+	size += OpCode_Size (OpCode_shortint) + 2 + OpCode_Size (OpCode_Subrs);
       else
-        size += DictValues<VAL>::get_value (i).str.len;
+	size += DictValues<VAL>::get_value (i).str.len;
     return size;
   }
 
@@ -900,8 +900,8 @@
       case OpCode_FamilyOtherBlues:
       case OpCode_StemSnapH:
       case OpCode_StemSnapV:
-        env.clear_args ();
-        break;
+	env.clear_args ();
+	break;
       case OpCode_StdHW:
       case OpCode_StdVW:
       case OpCode_BlueScale:
@@ -913,18 +913,18 @@
       case OpCode_initialRandomSeed:
       case OpCode_defaultWidthX:
       case OpCode_nominalWidthX:
-        val.single_val = env.argStack.pop_num ();
-        env.clear_args ();
-        break;
+	val.single_val = env.argStack.pop_num ();
+	env.clear_args ();
+	break;
       case OpCode_Subrs:
-        dictval.subrsOffset = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.subrsOffset = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
 
       default:
-        DictOpSet::process_op (op, env);
-        if (!env.argStack.is_empty ()) return;
-        break;
+	DictOpSet::process_op (op, env);
+	if (!env.argStack.is_empty ()) return;
+	break;
     }
 
     if (unlikely (env.in_error ())) return;
@@ -955,18 +955,18 @@
       case OpCode_initialRandomSeed:
       case OpCode_defaultWidthX:
       case OpCode_nominalWidthX:
-        env.clear_args ();
-        break;
+	env.clear_args ();
+	break;
 
       case OpCode_Subrs:
-        dictval.subrsOffset = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.subrsOffset = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
 
       default:
-        DictOpSet::process_op (op, env);
-        if (!env.argStack.is_empty ()) return;
-        break;
+	DictOpSet::process_op (op, env);
+	if (!env.argStack.is_empty ()) return;
+	break;
     }
 
     if (unlikely (env.in_error ())) return;
@@ -990,13 +990,13 @@
 
 struct cff1
 {
-  static const hb_tag_t tableTag        = HB_OT_TAG_cff1;
+  static const hb_tag_t tableTag	= HB_OT_TAG_cff1;
 
   inline bool sanitize (hb_sanitize_context_t *c) const
   {
     TRACE_SANITIZE (this);
     return_trace (c->check_struct (this) &&
-                  likely (version.major == 1));
+		  likely (version.major == 1));
   }
 
   template <typename PRIVOPSET, typename PRIVDICTVAL>
@@ -1028,37 +1028,37 @@
       { fini (); return; }
 
       { /* parse top dict */
-        const ByteStr topDictStr = (*topDictIndex)[0];
-        if (unlikely (!topDictStr.sanitize (&sc))) { fini (); return; }
-        CFF1TopDict_Interpreter top_interp;
-        top_interp.env.init (topDictStr);
-        topDict.init ();
-        if (unlikely (!top_interp.interpret (topDict))) { fini (); return; }
+	const ByteStr topDictStr = (*topDictIndex)[0];
+	if (unlikely (!topDictStr.sanitize (&sc))) { fini (); return; }
+	CFF1TopDict_Interpreter top_interp;
+	top_interp.env.init (topDictStr);
+	topDict.init ();
+	if (unlikely (!top_interp.interpret (topDict))) { fini (); return; }
       }
 
       if (is_predef_charset ())
-        charset = &Null(Charset);
+	charset = &Null(Charset);
       else
       {
-        charset = &StructAtOffsetOrNull<Charset> (cff, topDict.CharsetOffset);
-        if (unlikely ((charset == &Null (Charset)) || !charset->sanitize (&sc))) { fini (); return; }
+	charset = &StructAtOffsetOrNull<Charset> (cff, topDict.CharsetOffset);
+	if (unlikely ((charset == &Null (Charset)) || !charset->sanitize (&sc))) { fini (); return; }
       }
 
       fdCount = 1;
       if (is_CID ())
       {
-        fdArray = &StructAtOffsetOrNull<CFF1FDArray> (cff, topDict.FDArrayOffset);
-        fdSelect = &StructAtOffsetOrNull<CFF1FDSelect> (cff, topDict.FDSelectOffset);
-        if (unlikely ((fdArray == &Null(CFF1FDArray)) || !fdArray->sanitize (&sc) ||
-            (fdSelect == &Null(CFF1FDSelect)) || !fdSelect->sanitize (&sc, fdArray->count)))
-        { fini (); return; }
+	fdArray = &StructAtOffsetOrNull<CFF1FDArray> (cff, topDict.FDArrayOffset);
+	fdSelect = &StructAtOffsetOrNull<CFF1FDSelect> (cff, topDict.FDSelectOffset);
+	if (unlikely ((fdArray == &Null(CFF1FDArray)) || !fdArray->sanitize (&sc) ||
+	    (fdSelect == &Null(CFF1FDSelect)) || !fdSelect->sanitize (&sc, fdArray->count)))
+	{ fini (); return; }
 
-        fdCount = fdArray->count;
+	fdCount = fdArray->count;
       }
       else
       {
-        fdArray = &Null(CFF1FDArray);
-        fdSelect = &Null(CFF1FDSelect);
+	fdArray = &Null(CFF1FDArray);
+	fdSelect = &Null(CFF1FDSelect);
       }
 
       stringIndex = &StructAtOffset<CFF1StringIndex> (topDictIndex, topDictIndex->get_size ());
@@ -1080,51 +1080,51 @@
 
       privateDicts.resize (fdCount);
       for (unsigned int i = 0; i < fdCount; i++)
-        privateDicts[i].init ();
+	privateDicts[i].init ();
 
       // parse CID font dicts and gather private dicts
       if (is_CID ())
       {
-        for (unsigned int i = 0; i < fdCount; i++)
-        {
-          ByteStr fontDictStr = (*fdArray)[i];
-          if (unlikely (!fontDictStr.sanitize (&sc))) { fini (); return; }
-          CFF1FontDictValues  *font;
-          CFF1FontDict_Interpreter font_interp;
-          font_interp.env.init (fontDictStr);
-          font = fontDicts.push ();
-          font->init ();
-          if (unlikely (!font_interp.interpret (*font))) { fini (); return; }
-          PRIVDICTVAL  *priv = &privateDicts[i];
-          const ByteStr privDictStr (StructAtOffset<UnsizedByteStr> (cff, font->privateDictInfo.offset), font->privateDictInfo.size);
-          if (unlikely (!privDictStr.sanitize (&sc))) { fini (); return; }
-          DictInterpreter<PRIVOPSET, PRIVDICTVAL> priv_interp;
-          priv_interp.env.init (privDictStr);
-          priv->init ();
-          if (unlikely (!priv_interp.interpret (*priv))) { fini (); return; }
+	for (unsigned int i = 0; i < fdCount; i++)
+	{
+	  ByteStr fontDictStr = (*fdArray)[i];
+	  if (unlikely (!fontDictStr.sanitize (&sc))) { fini (); return; }
+	  CFF1FontDictValues  *font;
+	  CFF1FontDict_Interpreter font_interp;
+	  font_interp.env.init (fontDictStr);
+	  font = fontDicts.push ();
+	  font->init ();
+	  if (unlikely (!font_interp.interpret (*font))) { fini (); return; }
+	  PRIVDICTVAL  *priv = &privateDicts[i];
+	  const ByteStr privDictStr (StructAtOffset<UnsizedByteStr> (cff, font->privateDictInfo.offset), font->privateDictInfo.size);
+	  if (unlikely (!privDictStr.sanitize (&sc))) { fini (); return; }
+	  DictInterpreter<PRIVOPSET, PRIVDICTVAL> priv_interp;
+	  priv_interp.env.init (privDictStr);
+	  priv->init ();
+	  if (unlikely (!priv_interp.interpret (*priv))) { fini (); return; }
 
-          priv->localSubrs = &StructAtOffsetOrNull<CFF1Subrs> (privDictStr.str, priv->subrsOffset);
-          if (priv->localSubrs != &Null(CFF1Subrs) &&
-              unlikely (!priv->localSubrs->sanitize (&sc)))
-          { fini (); return; }
-        }
+	  priv->localSubrs = &StructAtOffsetOrNull<CFF1Subrs> (privDictStr.str, priv->subrsOffset);
+	  if (priv->localSubrs != &Null(CFF1Subrs) &&
+	      unlikely (!priv->localSubrs->sanitize (&sc)))
+	  { fini (); return; }
+	}
       }
       else  /* non-CID */
       {
-        CFF1TopDictValues  *font = &topDict;
-        PRIVDICTVAL  *priv = &privateDicts[0];
+	CFF1TopDictValues  *font = &topDict;
+	PRIVDICTVAL  *priv = &privateDicts[0];
 
-        const ByteStr privDictStr (StructAtOffset<UnsizedByteStr> (cff, font->privateDictInfo.offset), font->privateDictInfo.size);
-        if (unlikely (!privDictStr.sanitize (&sc))) { fini (); return; }
-        DictInterpreter<PRIVOPSET, PRIVDICTVAL> priv_interp;
-        priv_interp.env.init (privDictStr);
-        priv->init ();
-        if (unlikely (!priv_interp.interpret (*priv))) { fini (); return; }
+	const ByteStr privDictStr (StructAtOffset<UnsizedByteStr> (cff, font->privateDictInfo.offset), font->privateDictInfo.size);
+	if (unlikely (!privDictStr.sanitize (&sc))) { fini (); return; }
+	DictInterpreter<PRIVOPSET, PRIVDICTVAL> priv_interp;
+	priv_interp.env.init (privDictStr);
+	priv->init ();
+	if (unlikely (!priv_interp.interpret (*priv))) { fini (); return; }
 
-        priv->localSubrs = &StructAtOffsetOrNull<CFF1Subrs> (privDictStr.str, priv->subrsOffset);
-        if (priv->localSubrs != &Null(CFF1Subrs) &&
-            unlikely (!priv->localSubrs->sanitize (&sc)))
-        { fini (); return; }
+	priv->localSubrs = &StructAtOffsetOrNull<CFF1Subrs> (privDictStr.str, priv->subrsOffset);
+	if (priv->localSubrs != &Null(CFF1Subrs) &&
+	    unlikely (!priv->localSubrs->sanitize (&sc)))
+	{ fini (); return; }
       }
     }
 
@@ -1147,35 +1147,35 @@
     {
       hb_codepoint_t sid = lookup_standard_encoding_for_sid (code);
       if (unlikely (sid == CFF_UNDEF_SID))
-        return 0;
+	return 0;
 
       if (charset != &Null(Charset))
-        return charset->get_glyph (sid, num_glyphs);
+	return charset->get_glyph (sid, num_glyphs);
       else if ((topDict.CharsetOffset == ISOAdobeCharset)
-              && (code <= 228 /*zcaron*/)) return sid;
+	      && (code <= 228 /*zcaron*/)) return sid;
       return 0;
     }
 
     protected:
-    hb_blob_t               *blob;
+    hb_blob_t	       *blob;
     hb_sanitize_context_t   sc;
 
     public:
-    const Charset           *charset;
+    const Charset	   *charset;
     const CFF1NameIndex     *nameIndex;
     const CFF1TopDictIndex  *topDictIndex;
     const CFF1StringIndex   *stringIndex;
-    const CFF1Subrs         *globalSubrs;
+    const CFF1Subrs	 *globalSubrs;
     const CFF1CharStrings   *charStrings;
     const CFF1FDArray       *fdArray;
     const CFF1FDSelect      *fdSelect;
-    unsigned int            fdCount;
+    unsigned int	    fdCount;
 
     CFF1TopDictValues       topDict;
     hb_vector_t<CFF1FontDictValues>   fontDicts;
-    hb_vector_t<PRIVDICTVAL>          privateDicts;
+    hb_vector_t<PRIVDICTVAL>	  privateDicts;
 
-    unsigned int            num_glyphs;
+    unsigned int	    num_glyphs;
   };
 
   struct accelerator_t : accelerator_templ_t<CFF1PrivateDictOpSet, CFF1PrivateDictValues>
@@ -1195,15 +1195,15 @@
       encoding = &Null(Encoding);
       if (is_CID ())
       {
-        if (unlikely (charset == &Null(Charset))) { fini (); return; }
+	if (unlikely (charset == &Null(Charset))) { fini (); return; }
       }
       else
       {
-        if (!is_predef_encoding ())
-        {
-          encoding = &StructAtOffsetOrNull<Encoding> (cff, topDict.EncodingOffset);
-          if (unlikely ((encoding == &Null (Encoding)) || !encoding->sanitize (&sc))) { fini (); return; }
-        }
+	if (!is_predef_encoding ())
+	{
+	  encoding = &StructAtOffsetOrNull<Encoding> (cff, topDict.EncodingOffset);
+	  if (unlikely ((encoding == &Null (Encoding)) || !encoding->sanitize (&sc))) { fini (); return; }
+	}
       }
     }
 
@@ -1212,53 +1212,53 @@
     inline hb_codepoint_t  glyph_to_code (hb_codepoint_t glyph) const
     {
       if (encoding != &Null(Encoding))
-        return encoding->get_code (glyph);
+	return encoding->get_code (glyph);
       else
       {
-        hb_codepoint_t  sid = glyph_to_sid (glyph);
-        if (sid == 0) return 0;
-        hb_codepoint_t  code = 0;
-        switch (topDict.EncodingOffset)
-        {
-          case  StandardEncoding:
-            code = lookup_standard_encoding_for_code (sid);
-            break;
-          case  ExpertEncoding:
-            code = lookup_expert_encoding_for_code (sid);
-            break;
-          default:
-            break;
-        }
-        return code;
+	hb_codepoint_t  sid = glyph_to_sid (glyph);
+	if (sid == 0) return 0;
+	hb_codepoint_t  code = 0;
+	switch (topDict.EncodingOffset)
+	{
+	  case  StandardEncoding:
+	    code = lookup_standard_encoding_for_code (sid);
+	    break;
+	  case  ExpertEncoding:
+	    code = lookup_expert_encoding_for_code (sid);
+	    break;
+	  default:
+	    break;
+	}
+	return code;
       }
     }
 
     inline hb_codepoint_t  glyph_to_sid (hb_codepoint_t glyph) const
     {
       if (charset != &Null(Charset))
-        return charset->get_sid (glyph);
+	return charset->get_sid (glyph);
       else
       {
-        hb_codepoint_t sid = 0;
-        switch (topDict.CharsetOffset)
-        {
-          case  ISOAdobeCharset:
-            if (glyph <= 228 /*zcaron*/) sid = glyph;
-            break;
-          case  ExpertCharset:
-            sid = lookup_expert_charset_for_sid (glyph);
-            break;
-          case  ExpertSubsetCharset:
-              sid = lookup_expert_subset_charset_for_sid (glyph);
-            break;
-          default:
-            break;
-        }
-        return sid;
+	hb_codepoint_t sid = 0;
+	switch (topDict.CharsetOffset)
+	{
+	  case  ISOAdobeCharset:
+	    if (glyph <= 228 /*zcaron*/) sid = glyph;
+	    break;
+	  case  ExpertCharset:
+	    sid = lookup_expert_charset_for_sid (glyph);
+	    break;
+	  case  ExpertSubsetCharset:
+	      sid = lookup_expert_subset_charset_for_sid (glyph);
+	    break;
+	  default:
+	    break;
+	}
+	return sid;
       }
     }
 
-    const Encoding          *encoding;
+    const Encoding	  *encoding;
 
     private:
     typedef accelerator_templ_t<CFF1PrivateDictOpSet_Subset, CFF1PrivateDictValues_Subset> SUPER;
@@ -1290,9 +1290,9 @@
   HB_INTERNAL static hb_codepoint_t lookup_standard_encoding_for_sid (hb_codepoint_t code);
 
   public:
-  FixedVersion<HBUINT8> version;          /* Version of CFF table. set to 0x0100u */
+  FixedVersion<HBUINT8> version;	  /* Version of CFF table. set to 0x0100u */
   OffsetTo<CFF1NameIndex, HBUINT8> nameIndex; /* headerSize = Offset to Name INDEX. */
-  HBUINT8               offSize;          /* offset size (unused?) */
+  HBUINT8	       offSize;	  /* offset size (unused?) */
 
   public:
   DEFINE_SIZE_STATIC (4);
diff --git a/src/hb-ot-cff2-table.cc b/src/hb-ot-cff2-table.cc
index 4ea3252..b5c807c 100644
--- a/src/hb-ot-cff2-table.cc
+++ b/src/hb-ot-cff2-table.cc
@@ -96,8 +96,8 @@
 struct CFF2CSOpSet_Extents : CFF2CSOpSet<CFF2CSOpSet_Extents, ExtentsParam, CFF2PathProcs_Extents> {};
 
 bool OT::cff2::accelerator_t::get_extents (hb_font_t *font,
-                                           hb_codepoint_t glyph,
-                                           hb_glyph_extents_t *extents) const
+					   hb_codepoint_t glyph,
+					   hb_glyph_extents_t *extents) const
 {
   if (unlikely (!is_valid () || (glyph >= num_glyphs))) return false;
 
diff --git a/src/hb-ot-cff2-table.hh b/src/hb-ot-cff2-table.hh
index aa0a0d2..3c4191c 100644
--- a/src/hb-ot-cff2-table.hh
+++ b/src/hb-ot-cff2-table.hh
@@ -56,11 +56,11 @@
     TRACE_SANITIZE (this);
 
     return_trace (likely (c->check_struct (this) && (format == 0 || format == 3 || format == 4) &&
-                          (format == 0)?
-                          u.format0.sanitize (c, fdcount):
-                            ((format == 3)?
-                            u.format3.sanitize (c, fdcount):
-                            u.format4.sanitize (c, fdcount))));
+			  (format == 0)?
+			  u.format0.sanitize (c, fdcount):
+			    ((format == 3)?
+			    u.format3.sanitize (c, fdcount):
+			    u.format4.sanitize (c, fdcount))));
   }
 
   inline bool serialize (hb_serialize_context_t *c, const CFF2FDSelect &src, unsigned int num_glyphs)
@@ -130,7 +130,7 @@
 
   inline unsigned int get_size (void) const { return HBUINT16::static_size + size; }
 
-  HBUINT16        size;
+  HBUINT16	size;
   VariationStore  varStore;
 
   DEFINE_SIZE_MIN (2 + VariationStore::min_size);
@@ -158,13 +158,13 @@
       OpCode op = get_value (i).op;
       switch (op)
       {
-        case OpCode_vstore:
-        case OpCode_FDSelect:
-          size += OpCode_Size (OpCode_longintdict) + 4 + OpCode_Size (op);
-          break;
-        default:
-          size += TopDictValues<>::calculate_serialized_op_size (get_value (i));
-          break;
+	case OpCode_vstore:
+	case OpCode_FDSelect:
+	  size += OpCode_Size (OpCode_longintdict) + 4 + OpCode_Size (op);
+	  break;
+	default:
+	  size += TopDictValues<>::calculate_serialized_op_size (get_value (i));
+	  break;
       }
     }
     return size;
@@ -180,27 +180,27 @@
   {
     switch (op) {
       case OpCode_FontMatrix:
-        {
-          DictVal val;
-          val.init ();
-          dictval.add_op (op, env.substr);
-          env.clear_args ();
-        }
-        break;
+	{
+	  DictVal val;
+	  val.init ();
+	  dictval.add_op (op, env.substr);
+	  env.clear_args ();
+	}
+	break;
 
       case OpCode_vstore:
-        dictval.vstoreOffset = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.vstoreOffset = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
       case OpCode_FDSelect:
-        dictval.FDSelectOffset = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.FDSelectOffset = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
 
       default:
-        SUPER::process_op (op, env, dictval);
-        /* Record this operand below if stack is empty, otherwise done */
-        if (!env.argStack.is_empty ()) return;
+	SUPER::process_op (op, env, dictval);
+	/* Record this operand below if stack is empty, otherwise done */
+	if (!env.argStack.is_empty ()) return;
     }
 
     if (unlikely (env.in_error ())) return;
@@ -233,15 +233,15 @@
   {
     switch (op) {
       case OpCode_Private:
-        dictval.privateDictInfo.offset = env.argStack.pop_uint ();
-        dictval.privateDictInfo.size = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.privateDictInfo.offset = env.argStack.pop_uint ();
+	dictval.privateDictInfo.size = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
 
       default:
-        SUPER::process_op (op, env);
-        if (!env.argStack.is_empty ())
-          return;
+	SUPER::process_op (op, env);
+	if (!env.argStack.is_empty ())
+	  return;
     }
 
     if (unlikely (env.in_error ())) return;
@@ -274,9 +274,9 @@
     unsigned int size = 0;
     for (unsigned int i = 0; i < DictValues<VAL>::get_count; i++)
       if (DictValues<VAL>::get_value (i).op == OpCode_Subrs)
-        size += OpCode_Size (OpCode_shortint) + 2 + OpCode_Size (OpCode_Subrs);
+	size += OpCode_Size (OpCode_shortint) + 2 + OpCode_Size (OpCode_Subrs);
       else
-        size += DictValues<VAL>::get_value (i).str.len;
+	size += DictValues<VAL>::get_value (i).str.len;
     return size;
   }
 
@@ -307,11 +307,11 @@
   }
 
   inline unsigned int get_ivs (void) const { return ivs; }
-  inline void         set_ivs (unsigned int ivs_) { ivs = ivs_; }
+  inline void	 set_ivs (unsigned int ivs_) { ivs = ivs_; }
 
   protected:
   unsigned int  ivs;
-  bool          seen_vsindex;
+  bool	  seen_vsindex;
 };
 
 struct CFF2PrivateDictOpSet : DictOpSet
@@ -329,33 +329,33 @@
       case OpCode_BlueFuzz:
       case OpCode_ExpansionFactor:
       case OpCode_LanguageGroup:
-        val.single_val = env.argStack.pop_num ();
-        env.clear_args ();
-        break;
+	val.single_val = env.argStack.pop_num ();
+	env.clear_args ();
+	break;
       case OpCode_BlueValues:
       case OpCode_OtherBlues:
       case OpCode_FamilyBlues:
       case OpCode_FamilyOtherBlues:
       case OpCode_StemSnapH:
       case OpCode_StemSnapV:
-        env.clear_args ();
-        break;
+	env.clear_args ();
+	break;
       case OpCode_Subrs:
-        dictval.subrsOffset = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.subrsOffset = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
       case OpCode_vsindexdict:
-        env.process_vsindex ();
-        dictval.ivs = env.get_ivs ();
-        env.clear_args ();
-        break;
+	env.process_vsindex ();
+	dictval.ivs = env.get_ivs ();
+	env.clear_args ();
+	break;
       case OpCode_blenddict:
-        break;
+	break;
 
       default:
-        DictOpSet::process_op (op, env);
-        if (!env.argStack.is_empty ()) return;
-        break;
+	DictOpSet::process_op (op, env);
+	if (!env.argStack.is_empty ()) return;
+	break;
     }
 
     if (unlikely (env.in_error ())) return;
@@ -382,22 +382,22 @@
       case OpCode_StemSnapV:
       case OpCode_LanguageGroup:
       case OpCode_ExpansionFactor:
-        env.clear_args ();
-        break;
+	env.clear_args ();
+	break;
 
       case OpCode_blenddict:
-        env.clear_args ();
-        return;
+	env.clear_args ();
+	return;
 
       case OpCode_Subrs:
-        dictval.subrsOffset = env.argStack.pop_uint ();
-        env.clear_args ();
-        break;
+	dictval.subrsOffset = env.argStack.pop_uint ();
+	env.clear_args ();
+	break;
 
       default:
-        SUPER::process_op (op, env);
-        if (!env.argStack.is_empty ()) return;
-        break;
+	SUPER::process_op (op, env);
+	if (!env.argStack.is_empty ()) return;
+	break;
     }
 
     if (unlikely (env.in_error ())) return;
@@ -420,13 +420,13 @@
 
 struct cff2
 {
-  static const hb_tag_t tableTag        = HB_OT_TAG_cff2;
+  static const hb_tag_t tableTag	= HB_OT_TAG_cff2;
 
   inline bool sanitize (hb_sanitize_context_t *c) const
   {
     TRACE_SANITIZE (this);
     return_trace (c->check_struct (this) &&
-                  likely (version.major == 2));
+		  likely (version.major == 2));
   }
 
   template <typename PRIVOPSET, typename PRIVDICTVAL>
@@ -450,12 +450,12 @@
       { fini (); return; }
 
       { /* parse top dict */
-        ByteStr topDictStr (cff2 + cff2->topDict, cff2->topDictSize);
-        if (unlikely (!topDictStr.sanitize (&sc))) { fini (); return; }
-        CFF2TopDict_Interpreter top_interp;
-        top_interp.env.init (topDictStr);
-        topDict.init ();
-        if (unlikely (!top_interp.interpret (topDict))) { fini (); return; }
+	ByteStr topDictStr (cff2 + cff2->topDict, cff2->topDictSize);
+	if (unlikely (!topDictStr.sanitize (&sc))) { fini (); return; }
+	CFF2TopDict_Interpreter top_interp;
+	top_interp.env.init (topDictStr);
+	topDict.init ();
+	if (unlikely (!top_interp.interpret (topDict))) { fini (); return; }
       }
 
       globalSubrs = &StructAtOffset<CFF2Subrs> (cff2, cff2->topDict + cff2->topDictSize);
@@ -465,9 +465,9 @@
       fdSelect = &StructAtOffsetOrNull<CFF2FDSelect> (cff2, topDict.FDSelectOffset);
 
       if (((varStore != &Null(CFF2VariationStore)) && unlikely (!varStore->sanitize (&sc))) ||
-          (charStrings == &Null(CFF2CharStrings)) || unlikely (!charStrings->sanitize (&sc)) ||
-          (fdArray == &Null(CFF2FDArray)) || unlikely (!fdArray->sanitize (&sc)) ||
-          (((fdSelect != &Null(CFF2FDSelect)) && unlikely (!fdSelect->sanitize (&sc, fdArray->count)))))
+	  (charStrings == &Null(CFF2CharStrings)) || unlikely (!charStrings->sanitize (&sc)) ||
+	  (fdArray == &Null(CFF2FDArray)) || unlikely (!fdArray->sanitize (&sc)) ||
+	  (((fdSelect != &Null(CFF2FDSelect)) && unlikely (!fdSelect->sanitize (&sc, fdArray->count)))))
       { fini (); return; }
 
       num_glyphs = charStrings->count;
@@ -480,26 +480,26 @@
       /* parse font dicts and gather private dicts */
       for (unsigned int i = 0; i < fdCount; i++)
       {
-        const ByteStr fontDictStr = (*fdArray)[i];
-        if (unlikely (!fontDictStr.sanitize (&sc))) { fini (); return; }
-        CFF2FontDictValues  *font;
-        CFF2FontDict_Interpreter font_interp;
-        font_interp.env.init (fontDictStr);
-        font = fontDicts.push ();
-        font->init ();
-        if (unlikely (!font_interp.interpret (*font))) { fini (); return; }
+	const ByteStr fontDictStr = (*fdArray)[i];
+	if (unlikely (!fontDictStr.sanitize (&sc))) { fini (); return; }
+	CFF2FontDictValues  *font;
+	CFF2FontDict_Interpreter font_interp;
+	font_interp.env.init (fontDictStr);
+	font = fontDicts.push ();
+	font->init ();
+	if (unlikely (!font_interp.interpret (*font))) { fini (); return; }
 
-        const ByteStr privDictStr (StructAtOffsetOrNull<UnsizedByteStr> (cff2, font->privateDictInfo.offset), font->privateDictInfo.size);
-        if (unlikely (!privDictStr.sanitize (&sc))) { fini (); return; }
-        DictInterpreter<PRIVOPSET, PRIVDICTVAL, CFF2PrivDictInterpEnv>  priv_interp;
-        priv_interp.env.init(privDictStr);
-        privateDicts[i].init ();
-        if (unlikely (!priv_interp.interpret (privateDicts[i]))) { fini (); return; }
+	const ByteStr privDictStr (StructAtOffsetOrNull<UnsizedByteStr> (cff2, font->privateDictInfo.offset), font->privateDictInfo.size);
+	if (unlikely (!privDictStr.sanitize (&sc))) { fini (); return; }
+	DictInterpreter<PRIVOPSET, PRIVDICTVAL, CFF2PrivDictInterpEnv>  priv_interp;
+	priv_interp.env.init(privDictStr);
+	privateDicts[i].init ();
+	if (unlikely (!priv_interp.interpret (privateDicts[i]))) { fini (); return; }
 
-        privateDicts[i].localSubrs = &StructAtOffsetOrNull<CFF2Subrs> (privDictStr.str, privateDicts[i].subrsOffset);
-        if (privateDicts[i].localSubrs != &Null(CFF2Subrs) &&
-          unlikely (!privateDicts[i].localSubrs->sanitize (&sc)))
-        { fini (); return; }
+	privateDicts[i].localSubrs = &StructAtOffsetOrNull<CFF2Subrs> (privDictStr.str, privateDicts[i].subrsOffset);
+	if (privateDicts[i].localSubrs != &Null(CFF2Subrs) &&
+	  unlikely (!privateDicts[i].localSubrs->sanitize (&sc)))
+	{ fini (); return; }
       }
     }
 
@@ -515,29 +515,29 @@
     inline bool is_valid (void) const { return blob != nullptr; }
 
     protected:
-    hb_blob_t               *blob;
+    hb_blob_t	       *blob;
     hb_sanitize_context_t   sc;
 
     public:
-    CFF2TopDictValues         topDict;
-    const CFF2Subrs           *globalSubrs;
+    CFF2TopDictValues	 topDict;
+    const CFF2Subrs	   *globalSubrs;
     const CFF2VariationStore  *varStore;
     const CFF2CharStrings     *charStrings;
-    const CFF2FDArray         *fdArray;
-    const CFF2FDSelect        *fdSelect;
-    unsigned int              fdCount;
+    const CFF2FDArray	 *fdArray;
+    const CFF2FDSelect	*fdSelect;
+    unsigned int	      fdCount;
 
     hb_vector_t<CFF2FontDictValues>     fontDicts;
     hb_vector_t<PRIVDICTVAL>  privateDicts;
 
-    unsigned int            num_glyphs;
+    unsigned int	    num_glyphs;
   };
 
   struct accelerator_t : accelerator_templ_t<CFF2PrivateDictOpSet, CFF2PrivateDictValues>
   {
     HB_INTERNAL bool get_extents (hb_font_t *font,
-                                  hb_codepoint_t glyph,
-                                  hb_glyph_extents_t *extents) const;
+				  hb_codepoint_t glyph,
+				  hb_glyph_extents_t *extents) const;
   };
 
   typedef accelerator_templ_t<CFF2PrivateDictOpSet_Subset, CFF2PrivateDictValues_Subset> accelerator_subset_t;
@@ -561,9 +561,9 @@
   }
 
   public:
-  FixedVersion<HBUINT8> version;        /* Version of CFF2 table. set to 0x0200u */
+  FixedVersion<HBUINT8> version;	/* Version of CFF2 table. set to 0x0200u */
   OffsetTo<TopDict, HBUINT8, false> topDict;   /* headerSize = Offset to Top DICT. */
-  HBUINT16       topDictSize;           /* Top DICT size */
+  HBUINT16       topDictSize;	   /* Top DICT size */
 
   public:
   DEFINE_SIZE_STATIC (5);
diff --git a/src/hb-subset-cff-common.cc b/src/hb-subset-cff-common.cc
index 0b21009..21501c6 100644
--- a/src/hb-subset-cff-common.cc
+++ b/src/hb-subset-cff-common.cc
@@ -44,13 +44,13 @@
 
 bool
 hb_plan_subset_cff_fdselect (const hb_vector_t<hb_codepoint_t> &glyphs,
-                            unsigned int fdCount,
-                            const FDSelect &src, /* IN */
-                            unsigned int &subset_fd_count /* OUT */,
-                            unsigned int &subset_fdselect_size /* OUT */,
-                            unsigned int &subset_fdselect_format /* OUT */,
-                            hb_vector_t<code_pair> &fdselect_ranges /* OUT */,
-                            Remap &fdmap /* OUT */)
+			    unsigned int fdCount,
+			    const FDSelect &src, /* IN */
+			    unsigned int &subset_fd_count /* OUT */,
+			    unsigned int &subset_fdselect_size /* OUT */,
+			    unsigned int &subset_fdselect_format /* OUT */,
+			    hb_vector_t<code_pair> &fdselect_ranges /* OUT */,
+			    Remap &fdmap /* OUT */)
 {
   subset_fd_count = 0;
   subset_fdselect_size = 0;
@@ -74,10 +74,10 @@
 
       if (fd != prev_fd)
       {
-        num_ranges++;
-        prev_fd = fd;
-        code_pair pair = { fd, i };
-        fdselect_ranges.push (pair);
+	num_ranges++;
+	prev_fd = fd;
+	code_pair pair = { fd, i };
+	fdselect_ranges.push (pair);
       }
     }
 
@@ -93,13 +93,13 @@
       /* create a fdmap */
       if (!fdmap.reset (fdCount))
       {
-        hb_set_destroy (set);
-        return false;
+	hb_set_destroy (set);
+	return false;
       }
 
       hb_codepoint_t  fd = CFF_UNDEF_CODE;
       while (set->next (&fd))
-        fdmap.add (fd);
+	fdmap.add (fd);
       assert (fdmap.get_count () == subset_fd_count);
       hb_set_destroy (set);
     }
@@ -143,10 +143,10 @@
 template <typename FDSELECT3_4>
 static inline bool
 serialize_fdselect_3_4 (hb_serialize_context_t *c,
-                          const unsigned int num_glyphs,
-                          const FDSelect &src,
-                          unsigned int size,
-                          const hb_vector_t<code_pair> &fdselect_ranges)
+			  const unsigned int num_glyphs,
+			  const FDSelect &src,
+			  unsigned int size,
+			  const hb_vector_t<code_pair> &fdselect_ranges)
 {
   TRACE_SERIALIZE (this);
   FDSELECT3_4 *p = c->allocate_size<FDSELECT3_4> (size);
@@ -167,12 +167,12 @@
  **/
 bool
 hb_serialize_cff_fdselect (hb_serialize_context_t *c,
-                          const unsigned int num_glyphs,
-                          const FDSelect &src,
-                          unsigned int fd_count,
-                          unsigned int fdselect_format,
-                          unsigned int size,
-                          const hb_vector_t<code_pair> &fdselect_ranges)
+			  const unsigned int num_glyphs,
+			  const FDSelect &src,
+			  unsigned int fd_count,
+			  unsigned int fdselect_format,
+			  unsigned int size,
+			  const hb_vector_t<code_pair> &fdselect_ranges)
 {
   TRACE_SERIALIZE (this);
   FDSelect  *p = c->allocate_min<FDSelect> ();
@@ -191,12 +191,12 @@
       unsigned int  fd = fdselect_ranges[range_index++].code;
       for (unsigned int i = 0; i < num_glyphs; i++)
       {
-        if ((range_index < fdselect_ranges.len) &&
-            (i >= fdselect_ranges[range_index].glyph))
-        {
-          fd = fdselect_ranges[range_index++].code;
-        }
-        p->fds[i].set (fd);
+	if ((range_index < fdselect_ranges.len) &&
+	    (i >= fdselect_ranges[range_index].glyph))
+	{
+	  fd = fdselect_ranges[range_index++].code;
+	}
+	p->fds[i].set (fd);
       }
       break;
     }
@@ -204,17 +204,17 @@
 
     case 3:
       return serialize_fdselect_3_4<FDSelect3> (c,
-                                                num_glyphs,
-                                                src,
-                                                size,
-                                                fdselect_ranges);
+						num_glyphs,
+						src,
+						size,
+						fdselect_ranges);
 
     case 4:
       return serialize_fdselect_3_4<FDSelect4> (c,
-                                                num_glyphs,
-                                                src,
-                                                size,
-                                                fdselect_ranges);
+						num_glyphs,
+						src,
+						size,
+						fdselect_ranges);
 
     default:
       assert(false);
diff --git a/src/hb-subset-cff-common.hh b/src/hb-subset-cff-common.hh
index b4a9bb7..bc18f1e 100644
--- a/src/hb-subset-cff-common.hh
+++ b/src/hb-subset-cff-common.hh
@@ -57,26 +57,26 @@
     if ((-1131 <= v) && (v <= 1131))
     {
       if ((-107 <= v) && (v <= 107))
-        encode_byte (v + 139);
+	encode_byte (v + 139);
       else if (v > 0)
       {
-        v -= 108;
-        encode_byte ((v >> 8) + OpCode_TwoBytePosInt0);
-        encode_byte (v & 0xFF);
+	v -= 108;
+	encode_byte ((v >> 8) + OpCode_TwoBytePosInt0);
+	encode_byte (v & 0xFF);
       }
       else
       {
-        v = -v - 108;
-        encode_byte ((v >> 8) + OpCode_TwoByteNegInt0);
-        encode_byte (v & 0xFF);
+	v = -v - 108;
+	encode_byte ((v >> 8) + OpCode_TwoByteNegInt0);
+	encode_byte (v & 0xFF);
       }
     }
     else
     {
       if (unlikely (v < -32768))
-        v = -32768;
+	v = -32768;
       else if (unlikely (v > 32767))
-        v = 32767;
+	v = 32767;
       encode_byte (OpCode_shortint);
       encode_byte ((v >> 8) & 0xFF);
       encode_byte (v & 0xFF);
@@ -163,24 +163,24 @@
 struct CFFTopDict_OpSerializer : OpSerializer
 {
   inline bool serialize (hb_serialize_context_t *c,
-                         const OPSTR &opstr,
-                         const CFFSubTableOffsets &offsets) const
+			 const OPSTR &opstr,
+			 const CFFSubTableOffsets &offsets) const
   {
     TRACE_SERIALIZE (this);
 
     switch (opstr.op)
     {
       case OpCode_CharStrings:
-        return_trace (FontDict::serialize_offset4_op(c, opstr.op, offsets.charStringsInfo.offset));
+	return_trace (FontDict::serialize_offset4_op(c, opstr.op, offsets.charStringsInfo.offset));
 
       case OpCode_FDArray:
-        return_trace (FontDict::serialize_offset4_op(c, opstr.op, offsets.FDArrayInfo.offset));
+	return_trace (FontDict::serialize_offset4_op(c, opstr.op, offsets.FDArrayInfo.offset));
 
       case OpCode_FDSelect:
-        return_trace (FontDict::serialize_offset4_op(c, opstr.op, offsets.FDSelectInfo.offset));
+	return_trace (FontDict::serialize_offset4_op(c, opstr.op, offsets.FDSelectInfo.offset));
 
       default:
-        return_trace (copy_opstr (c, opstr));
+	return_trace (copy_opstr (c, opstr));
     }
     return_trace (true);
   }
@@ -192,10 +192,10 @@
       case OpCode_CharStrings:
       case OpCode_FDArray:
       case OpCode_FDSelect:
-        return OpCode_Size (OpCode_longintdict) + 4 + OpCode_Size (opstr.op);
+	return OpCode_Size (OpCode_longintdict) + 4 + OpCode_Size (opstr.op);
 
       default:
-        return opstr.str.len;
+	return opstr.str.len;
     }
   }
 };
@@ -203,8 +203,8 @@
 struct CFFFontDict_OpSerializer : OpSerializer
 {
   inline bool serialize (hb_serialize_context_t *c,
-                         const OpStr &opstr,
-                         const TableInfo &privateDictInfo) const
+			 const OpStr &opstr,
+			 const TableInfo &privateDictInfo) const
   {
     TRACE_SERIALIZE (this);
 
@@ -212,8 +212,8 @@
     {
       /* serialize the private dict size & offset as 2-byte & 4-byte integers */
       if (unlikely (!UnsizedByteStr::serialize_int2 (c, privateDictInfo.size) ||
-                    !UnsizedByteStr::serialize_int4 (c, privateDictInfo.offset)))
-        return_trace (false);
+		    !UnsizedByteStr::serialize_int4 (c, privateDictInfo.offset)))
+	return_trace (false);
 
       /* serialize the opcode */
       HBUINT8 *p = c->allocate_size<HBUINT8> (1);
@@ -246,8 +246,8 @@
     : desubroutinize (desubroutinize_), drop_hints (drop_hints_) {}
 
   inline bool serialize (hb_serialize_context_t *c,
-                         const OpStr &opstr,
-                         const unsigned int subrsOffset) const
+			 const OpStr &opstr,
+			 const unsigned int subrsOffset) const
   {
     TRACE_SERIALIZE (this);
 
@@ -256,25 +256,25 @@
     if (opstr.op == OpCode_Subrs)
     {
       if (desubroutinize || (subrsOffset == 0))
-        return_trace (true);
+	return_trace (true);
       else
-        return_trace (FontDict::serialize_offset2_op (c, opstr.op, subrsOffset));
+	return_trace (FontDict::serialize_offset2_op (c, opstr.op, subrsOffset));
     }
     else
       return_trace (copy_opstr (c, opstr));
   }
 
   inline unsigned int calculate_serialized_size (const OpStr &opstr,
-                                                 bool has_localsubr=true) const
+						 bool has_localsubr=true) const
   {
     if (drop_hints && DictOpSet::is_hint_op (opstr.op))
       return 0;
     if (opstr.op == OpCode_Subrs)
     {
       if (desubroutinize || !has_localsubr)
-        return 0;
+	return 0;
       else
-        return OpCode_Size (OpCode_shortint) + 2 + OpCode_Size (opstr.op);
+	return OpCode_Size (OpCode_shortint) + 2 + OpCode_Size (opstr.op);
     }
     else
       return opstr.str.len;
@@ -288,15 +288,15 @@
 struct FlattenParam
 {
   StrBuff     &flatStr;
-  bool        drop_hints;
+  bool	drop_hints;
 };
 
 template <typename ACC, typename ENV, typename OPSET>
 struct SubrFlattener
 {
   inline SubrFlattener (const ACC &acc_,
-                        const hb_vector_t<hb_codepoint_t> &glyphs_,
-                        bool drop_hints_)
+			const hb_vector_t<hb_codepoint_t> &glyphs_,
+			bool drop_hints_)
     : acc (acc_),
       glyphs (glyphs_),
       drop_hints (drop_hints_)
@@ -317,7 +317,7 @@
       interp.env.init (str, acc, fd);
       FlattenParam  param = { flat_charstrings[i], drop_hints };
       if (unlikely (!interp.interpret (param)))
-        return false;
+	return false;
     }
     return true;
   }
@@ -349,7 +349,7 @@
     {
       local_closures[i] = hb_set_create ();
       if (local_closures[i] == hb_set_get_empty ())
-        valid = false;
+	valid = false;
     }
   }
 
@@ -400,9 +400,9 @@
   unsigned int  subr_num;
 
   protected:
-  bool          drop_flag : 1;
-  bool          keep_flag : 1;
-  bool          skip_flag : 1;
+  bool	  drop_flag : 1;
+  bool	  keep_flag : 1;
+  bool	  skip_flag : 1;
 };
 
 struct ParsedCStr : ParsedValues<ParsedCSOp>
@@ -427,7 +427,7 @@
     {
       unsigned int parsed_len = get_count ();
       if (likely (parsed_len > 0))
-        values[parsed_len-1].set_skip ();
+	values[parsed_len-1].set_skip ();
 
       ParsedCSOp val;
       val.init (subr_num);
@@ -445,7 +445,7 @@
   inline bool at_end (unsigned int pos) const
   {
     return ((pos + 1 >= values.len) /* CFF2 */
-        || (values[pos + 1].op == OpCode_return));
+	|| (values[pos + 1].op == OpCode_return));
   }
 
   inline bool is_parsed (void) const { return parsed; }
@@ -492,9 +492,9 @@
 struct SubrSubsetParam
 {
   inline void init (ParsedCStr *parsed_charstring_,
-                    ParsedCStrs *parsed_global_subrs_, ParsedCStrs *parsed_local_subrs_,
-                    hb_set_t *global_closure_, hb_set_t *local_closure_,
-                    bool drop_hints_)
+		    ParsedCStrs *parsed_global_subrs_, ParsedCStrs *parsed_local_subrs_,
+		    hb_set_t *global_closure_, hb_set_t *local_closure_,
+		    bool drop_hints_)
   {
     parsed_charstring = parsed_charstring_;
     current_parsed_str = parsed_charstring;
@@ -510,17 +510,17 @@
     switch (context.type)
     {
       case CSType_CharString:
-        return parsed_charstring;
+	return parsed_charstring;
 
       case CSType_LocalSubr:
-        if (likely (context.subr_num < parsed_local_subrs->len))
-          return &(*parsed_local_subrs)[context.subr_num];
-        break;
+	if (likely (context.subr_num < parsed_local_subrs->len))
+	  return &(*parsed_local_subrs)[context.subr_num];
+	break;
 
       case CSType_GlobalSubr:
-        if (likely (context.subr_num < parsed_global_subrs->len))
-          return &(*parsed_global_subrs)[context.subr_num];
-        break;
+	if (likely (context.subr_num < parsed_global_subrs->len))
+	  return &(*parsed_global_subrs)[context.subr_num];
+	break;
     }
     return nullptr;
   }
@@ -542,7 +542,7 @@
   ParsedCStrs   *parsed_local_subrs;
   hb_set_t      *global_closure;
   hb_set_t      *local_closure;
-  bool          drop_hints;
+  bool	  drop_hints;
 };
 
 struct SubrRemap : Remap
@@ -556,7 +556,7 @@
     for (hb_codepoint_t old_num = 0; old_num < len; old_num++)
     {
       if (hb_set_has (closure, old_num))
-        add (old_num);
+	add (old_num);
     }
 
     if (get_count () < 1240)
@@ -619,7 +619,7 @@
     local_remaps.fini_deep ();
   }
 
-  SubrRemap               global_remap;
+  SubrRemap	       global_remap;
   hb_vector_t<SubrRemap>  local_remaps;
 };
 
@@ -683,12 +683,12 @@
 
       SubrSubsetParam  param;
       param.init (&parsed_charstrings[i],
-                  &parsed_global_subrs,  &parsed_local_subrs[fd],
-                  closures.global_closure, closures.local_closures[fd],
-                  drop_hints);
+		  &parsed_global_subrs,  &parsed_local_subrs[fd],
+		  closures.global_closure, closures.local_closures[fd],
+		  drop_hints);
 
       if (unlikely (!interp.interpret (param)))
-        return false;
+	return false;
 
       /* finalize parsed string esp. copy CFF1 width or CFF2 vsindex to the parsed charstring for encoding */
       SUBSETTER::finalize_parsed_str (interp.env, param, parsed_charstrings[i]);
@@ -699,33 +699,33 @@
       /* mark hint ops and arguments for drop */
       for (unsigned int i = 0; i < glyphs.len; i++)
       {
-        unsigned int fd = acc.fdSelect->get_fd (glyphs[i]);
-        SubrSubsetParam  param;
-        param.init (&parsed_charstrings[i],
-                    &parsed_global_subrs,  &parsed_local_subrs[fd],
-                    closures.global_closure, closures.local_closures[fd],
-                    drop_hints);
+	unsigned int fd = acc.fdSelect->get_fd (glyphs[i]);
+	SubrSubsetParam  param;
+	param.init (&parsed_charstrings[i],
+		    &parsed_global_subrs,  &parsed_local_subrs[fd],
+		    closures.global_closure, closures.local_closures[fd],
+		    drop_hints);
 
-        DropHintsParam  drop;
-        if (drop_hints_in_str (parsed_charstrings[i], param, drop))
-        {
-          parsed_charstrings[i].set_hint_dropped ();
-          if (drop.vsindex_dropped)
-            parsed_charstrings[i].set_vsindex_dropped ();
-        }
+	DropHintsParam  drop;
+	if (drop_hints_in_str (parsed_charstrings[i], param, drop))
+	{
+	  parsed_charstrings[i].set_hint_dropped ();
+	  if (drop.vsindex_dropped)
+	    parsed_charstrings[i].set_vsindex_dropped ();
+	}
       }
 
       /* after dropping hints recreate closures of actually used subrs */
       closures.reset ();
       for (unsigned int i = 0; i < glyphs.len; i++)
       {
-        unsigned int fd = acc.fdSelect->get_fd (glyphs[i]);
-        SubrSubsetParam  param;
-        param.init (&parsed_charstrings[i],
-                    &parsed_global_subrs,  &parsed_local_subrs[fd],
-                    closures.global_closure, closures.local_closures[fd],
-                    drop_hints);
-        collect_subr_refs_in_str (parsed_charstrings[i], param);
+	unsigned int fd = acc.fdSelect->get_fd (glyphs[i]);
+	SubrSubsetParam  param;
+	param.init (&parsed_charstrings[i],
+		    &parsed_global_subrs,  &parsed_local_subrs[fd],
+		    closures.global_closure, closures.local_closures[fd],
+		    drop_hints);
+	collect_subr_refs_in_str (parsed_charstrings[i], param);
       }
     }
 
@@ -742,7 +742,7 @@
     {
       unsigned int  fd = acc.fdSelect->get_fd (glyphs[i]);
       if (unlikely (!encode_str (parsed_charstrings[i], fd, buffArray[i])))
-        return false;
+	return false;
     }
     return true;
   }
@@ -758,8 +758,8 @@
       hb_codepoint_t new_num = remap[old_num];
       if (new_num != CFF_UNDEF_CODE)
       {
-        if (unlikely (!encode_str (subrs[old_num], fd, buffArray[new_num])))
-          return false;
+	if (unlikely (!encode_str (subrs[old_num], fd, buffArray[new_num])))
+	  return false;
       }
     }
     return true;
@@ -780,8 +780,8 @@
   {
     inline DropHintsParam (void)
       : seen_moveto (false),
-        ends_in_hint (false),
-        vsindex_dropped (false) {}
+	ends_in_hint (false),
+	vsindex_dropped (false) {}
 
     bool  seen_moveto;
     bool  ends_in_hint;
@@ -789,8 +789,8 @@
   };
 
   inline bool drop_hints_in_subr (ParsedCStr &str, unsigned int pos,
-                                 ParsedCStrs &subrs, unsigned int subr_num,
-                                 const SubrSubsetParam &param, DropHintsParam &drop)
+				 ParsedCStrs &subrs, unsigned int subr_num,
+				 const SubrSubsetParam &param, DropHintsParam &drop)
   {
     drop.ends_in_hint = false;
     bool has_hint = drop_hints_in_str (subrs[subr_num], param, drop);
@@ -803,7 +803,7 @@
       /* if this subr call is at the end of the parent subr, propagate the flag
        * otherwise reset the flag */
       if (!str.at_end (pos))
-        drop.ends_in_hint = false;
+	drop.ends_in_hint = false;
     }
 
     return has_hint;
@@ -819,64 +819,64 @@
       bool  has_hint = false;
       switch (str.values[pos].op)
       {
-        case OpCode_callsubr:
-          has_hint = drop_hints_in_subr (str, pos,
-                                        *param.parsed_local_subrs, str.values[pos].subr_num,
-                                        param, drop);
+	case OpCode_callsubr:
+	  has_hint = drop_hints_in_subr (str, pos,
+					*param.parsed_local_subrs, str.values[pos].subr_num,
+					param, drop);
 
-          break;
+	  break;
 
-        case OpCode_callgsubr:
-          has_hint = drop_hints_in_subr (str, pos,
-                                        *param.parsed_global_subrs, str.values[pos].subr_num,
-                                        param, drop);
-          break;
+	case OpCode_callgsubr:
+	  has_hint = drop_hints_in_subr (str, pos,
+					*param.parsed_global_subrs, str.values[pos].subr_num,
+					param, drop);
+	  break;
 
-        case OpCode_rmoveto:
-        case OpCode_hmoveto:
-        case OpCode_vmoveto:
-          drop.seen_moveto = true;
-          break;
+	case OpCode_rmoveto:
+	case OpCode_hmoveto:
+	case OpCode_vmoveto:
+	  drop.seen_moveto = true;
+	  break;
 
-        case OpCode_hintmask:
-        case OpCode_cntrmask:
-          if (drop.seen_moveto)
-          {
-            str.values[pos].set_drop ();
-            break;
-          }
-          HB_FALLTHROUGH;
+	case OpCode_hintmask:
+	case OpCode_cntrmask:
+	  if (drop.seen_moveto)
+	  {
+	    str.values[pos].set_drop ();
+	    break;
+	  }
+	  HB_FALLTHROUGH;
 
-        case OpCode_hstemhm:
-        case OpCode_vstemhm:
-        case OpCode_hstem:
-        case OpCode_vstem:
-          has_hint = true;
-          str.values[pos].set_drop ();
-          if (str.at_end (pos))
-            drop.ends_in_hint = true;
-          break;
+	case OpCode_hstemhm:
+	case OpCode_vstemhm:
+	case OpCode_hstem:
+	case OpCode_vstem:
+	  has_hint = true;
+	  str.values[pos].set_drop ();
+	  if (str.at_end (pos))
+	    drop.ends_in_hint = true;
+	  break;
 
-        case OpCode_dotsection:
-          str.values[pos].set_drop ();
-          break;
+	case OpCode_dotsection:
+	  str.values[pos].set_drop ();
+	  break;
 
-        default:
-          /* NONE */
-          break;
+	default:
+	  /* NONE */
+	  break;
       }
       if (has_hint)
       {
-        for (int i = pos - 1; i >= 0; i--)
-        {
-          ParsedCSOp  &csop = str.values[(unsigned)i];
-          if (csop.for_drop ())
-            break;
-          csop.set_drop ();
-          if (csop.op == OpCode_vsindexcs)
-            drop.vsindex_dropped = true;
-        }
-        seen_hint |= has_hint;
+	for (int i = pos - 1; i >= 0; i--)
+	{
+	  ParsedCSOp  &csop = str.values[(unsigned)i];
+	  if (csop.for_drop ())
+	    break;
+	  csop.set_drop ();
+	  if (csop.op == OpCode_vsindexcs)
+	    drop.vsindex_dropped = true;
+	}
+	seen_hint |= has_hint;
       }
     }
 
@@ -884,9 +884,9 @@
   }
 
   inline void collect_subr_refs_in_subr (ParsedCStr &str, unsigned int pos,
-                                         unsigned int subr_num, ParsedCStrs &subrs,
-                                         hb_set_t *closure,
-                                         const SubrSubsetParam &param)
+					 unsigned int subr_num, ParsedCStrs &subrs,
+					 hb_set_t *closure,
+					 const SubrSubsetParam &param)
   {
     hb_set_add (closure, subr_num);
     collect_subr_refs_in_str (subrs[subr_num], param);
@@ -898,22 +898,22 @@
     {
       if (!str.values[pos].for_drop ())
       {
-        switch (str.values[pos].op)
-        {
-          case OpCode_callsubr:
-            collect_subr_refs_in_subr (str, pos,
-                                       str.values[pos].subr_num, *param.parsed_local_subrs,
-                                       param.local_closure, param);
-            break;
+	switch (str.values[pos].op)
+	{
+	  case OpCode_callsubr:
+	    collect_subr_refs_in_subr (str, pos,
+				       str.values[pos].subr_num, *param.parsed_local_subrs,
+				       param.local_closure, param);
+	    break;
 
-          case OpCode_callgsubr:
-            collect_subr_refs_in_subr (str, pos,
-                                       str.values[pos].subr_num, *param.parsed_global_subrs,
-                                       param.global_closure, param);
-            break;
+	  case OpCode_callgsubr:
+	    collect_subr_refs_in_subr (str, pos,
+				       str.values[pos].subr_num, *param.parsed_global_subrs,
+				       param.global_closure, param);
+	    break;
 
-          default: break;
-        }
+	  default: break;
+	}
       }
     }
   }
@@ -929,42 +929,42 @@
     {
       encoder.encode_num (str.prefix_num ());
       if (str.prefix_op () != OpCode_Invalid)
-        encoder.encode_op (str.prefix_op ());
+	encoder.encode_op (str.prefix_op ());
     }
     for (unsigned int i = 0; i < str.get_count(); i++)
     {
       const ParsedCSOp  &opstr = str.values[i];
       if (!opstr.for_drop () && !opstr.for_skip ())
       {
-        switch (opstr.op)
-        {
-          case OpCode_callsubr:
-            encoder.encode_int (remaps.local_remaps[fd].biased_num (opstr.subr_num));
-            encoder.encode_op (OpCode_callsubr);
-            break;
+	switch (opstr.op)
+	{
+	  case OpCode_callsubr:
+	    encoder.encode_int (remaps.local_remaps[fd].biased_num (opstr.subr_num));
+	    encoder.encode_op (OpCode_callsubr);
+	    break;
 
-          case OpCode_callgsubr:
-            encoder.encode_int (remaps.global_remap.biased_num (opstr.subr_num));
-            encoder.encode_op (OpCode_callgsubr);
-            break;
+	  case OpCode_callgsubr:
+	    encoder.encode_int (remaps.global_remap.biased_num (opstr.subr_num));
+	    encoder.encode_op (OpCode_callgsubr);
+	    break;
 
-          default:
-            encoder.copy_str (opstr.str);
-            break;
-        }
+	  default:
+	    encoder.copy_str (opstr.str);
+	    break;
+	}
       }
     }
     return !encoder.is_error ();
   }
 
   protected:
-  SubrClosures              closures;
+  SubrClosures	      closures;
 
-  ParsedCStrs               parsed_charstrings;
-  ParsedCStrs               parsed_global_subrs;
+  ParsedCStrs	       parsed_charstrings;
+  ParsedCStrs	       parsed_global_subrs;
   hb_vector_t<ParsedCStrs>  parsed_local_subrs;
 
-  SubrRemaps                remaps;
+  SubrRemaps		remaps;
 
   private:
   typedef typename SUBRS::count_type subr_count_type;
@@ -973,21 +973,21 @@
 
 HB_INTERNAL bool
 hb_plan_subset_cff_fdselect (const hb_vector_t<hb_codepoint_t> &glyphs,
-                            unsigned int fdCount,
-                            const CFF::FDSelect &src, /* IN */
-                            unsigned int &subset_fd_count /* OUT */,
-                            unsigned int &subset_fdselect_size /* OUT */,
-                            unsigned int &subset_fdselect_format /* OUT */,
-                            hb_vector_t<CFF::code_pair> &fdselect_ranges /* OUT */,
-                            CFF::Remap &fdmap /* OUT */);
+			    unsigned int fdCount,
+			    const CFF::FDSelect &src, /* IN */
+			    unsigned int &subset_fd_count /* OUT */,
+			    unsigned int &subset_fdselect_size /* OUT */,
+			    unsigned int &subset_fdselect_format /* OUT */,
+			    hb_vector_t<CFF::code_pair> &fdselect_ranges /* OUT */,
+			    CFF::Remap &fdmap /* OUT */);
 
 HB_INTERNAL bool
 hb_serialize_cff_fdselect (hb_serialize_context_t *c,
-                          unsigned int num_glyphs,
-                          const CFF::FDSelect &src,
-                          unsigned int fd_count,
-                          unsigned int fdselect_format,
-                          unsigned int size,
-                          const hb_vector_t<CFF::code_pair> &fdselect_ranges);
+			  unsigned int num_glyphs,
+			  const CFF::FDSelect &src,
+			  unsigned int fd_count,
+			  unsigned int fdselect_format,
+			  unsigned int size,
+			  const hb_vector_t<CFF::code_pair> &fdselect_ranges);
 
 #endif /* HB_SUBSET_CFF_COMMON_HH */
diff --git a/src/hb-subset-cff1.cc b/src/hb-subset-cff1.cc
index dc4d123..53e7b22 100644
--- a/src/hb-subset-cff1.cc
+++ b/src/hb-subset-cff1.cc
@@ -119,20 +119,20 @@
 struct TopDictModifiers
 {
   inline TopDictModifiers (const CFF1SubTableOffsets &offsets_,
-                           const unsigned int (&nameSIDs_)[NameDictValues::ValCount])
+			   const unsigned int (&nameSIDs_)[NameDictValues::ValCount])
     : offsets (offsets_),
       nameSIDs (nameSIDs_)
   {}
 
   const CFF1SubTableOffsets &offsets;
-  const unsigned int        (&nameSIDs)[NameDictValues::ValCount];
+  const unsigned int	(&nameSIDs)[NameDictValues::ValCount];
 };
 
 struct CFF1TopDict_OpSerializer : CFFTopDict_OpSerializer<CFF1TopDictVal>
 {
   inline bool serialize (hb_serialize_context_t *c,
-                         const CFF1TopDictVal &opstr,
-                         const TopDictModifiers &mod) const
+			 const CFF1TopDictVal &opstr,
+			 const TopDictModifiers &mod) const
   {
     TRACE_SERIALIZE (this);
 
@@ -140,22 +140,22 @@
     switch (op)
     {
       case OpCode_charset:
-        return_trace (FontDict::serialize_offset4_op(c, op, mod.offsets.charsetInfo.offset));
+	return_trace (FontDict::serialize_offset4_op(c, op, mod.offsets.charsetInfo.offset));
 
       case OpCode_Encoding:
-        return_trace (FontDict::serialize_offset4_op(c, op, mod.offsets.encodingOffset));
+	return_trace (FontDict::serialize_offset4_op(c, op, mod.offsets.encodingOffset));
 
       case OpCode_Private:
-        {
-          if (unlikely (!UnsizedByteStr::serialize_int2 (c, mod.offsets.privateDictInfo.size)))
-            return_trace (false);
-          if (unlikely (!UnsizedByteStr::serialize_int4 (c, mod.offsets.privateDictInfo.offset)))
-            return_trace (false);
-          HBUINT8 *p = c->allocate_size<HBUINT8> (1);
-          if (unlikely (p == nullptr)) return_trace (false);
-          p->set (OpCode_Private);
-        }
-        break;
+	{
+	  if (unlikely (!UnsizedByteStr::serialize_int2 (c, mod.offsets.privateDictInfo.size)))
+	    return_trace (false);
+	  if (unlikely (!UnsizedByteStr::serialize_int4 (c, mod.offsets.privateDictInfo.offset)))
+	    return_trace (false);
+	  HBUINT8 *p = c->allocate_size<HBUINT8> (1);
+	  if (unlikely (p == nullptr)) return_trace (false);
+	  p->set (OpCode_Private);
+	}
+	break;
 
       case OpCode_version:
       case OpCode_Notice:
@@ -166,23 +166,23 @@
       case OpCode_PostScript:
       case OpCode_BaseFontName:
       case OpCode_FontName:
-        return_trace (FontDict::serialize_offset2_op(c, op, mod.nameSIDs[NameDictValues::name_op_to_index (op)]));
+	return_trace (FontDict::serialize_offset2_op(c, op, mod.nameSIDs[NameDictValues::name_op_to_index (op)]));
 
       case OpCode_ROS:
-        {
-          /* for registry & ordering, reassigned SIDs are serialized
-           * for supplement, the original byte string is copied along with the op code */
-          OpStr supp_op;
-          supp_op.op = op;
-          supp_op.str.str = opstr.str.str + opstr.last_arg_offset;
-          assert (opstr.str.len >= opstr.last_arg_offset + 3);
-          supp_op.str.len = opstr.str.len - opstr.last_arg_offset;
-        return_trace (UnsizedByteStr::serialize_int2 (c, mod.nameSIDs[NameDictValues::registry]) &&
-                      UnsizedByteStr::serialize_int2 (c, mod.nameSIDs[NameDictValues::ordering]) &&
-                      copy_opstr (c, supp_op));
-        }
+	{
+	  /* for registry & ordering, reassigned SIDs are serialized
+	   * for supplement, the original byte string is copied along with the op code */
+	  OpStr supp_op;
+	  supp_op.op = op;
+	  supp_op.str.str = opstr.str.str + opstr.last_arg_offset;
+	  assert (opstr.str.len >= opstr.last_arg_offset + 3);
+	  supp_op.str.len = opstr.str.len - opstr.last_arg_offset;
+	return_trace (UnsizedByteStr::serialize_int2 (c, mod.nameSIDs[NameDictValues::registry]) &&
+		      UnsizedByteStr::serialize_int2 (c, mod.nameSIDs[NameDictValues::ordering]) &&
+		      copy_opstr (c, supp_op));
+	}
       default:
-        return_trace (CFFTopDict_OpSerializer<CFF1TopDictVal>::serialize (c, opstr, mod.offsets));
+	return_trace (CFFTopDict_OpSerializer<CFF1TopDictVal>::serialize (c, opstr, mod.offsets));
     }
     return_trace (true);
   }
@@ -194,10 +194,10 @@
     {
       case OpCode_charset:
       case OpCode_Encoding:
-        return OpCode_Size (OpCode_longintdict) + 4 + OpCode_Size (op);
+	return OpCode_Size (OpCode_longintdict) + 4 + OpCode_Size (op);
 
       case OpCode_Private:
-        return OpCode_Size (OpCode_longintdict) + 4 + OpCode_Size (OpCode_shortint) + 2 + OpCode_Size (OpCode_Private);
+	return OpCode_Size (OpCode_longintdict) + 4 + OpCode_Size (OpCode_shortint) + 2 + OpCode_Size (OpCode_Private);
 
       case OpCode_version:
       case OpCode_Notice:
@@ -208,13 +208,13 @@
       case OpCode_PostScript:
       case OpCode_BaseFontName:
       case OpCode_FontName:
-        return OpCode_Size (OpCode_shortint) + 2 + OpCode_Size (op);
+	return OpCode_Size (OpCode_shortint) + 2 + OpCode_Size (op);
 
       case OpCode_ROS:
-        return ((OpCode_Size (OpCode_shortint) + 2) * 2) + (opstr.str.len - opstr.last_arg_offset)/* supplement + op */;
+	return ((OpCode_Size (OpCode_shortint) + 2) * 2) + (opstr.str.len - opstr.last_arg_offset)/* supplement + op */;
 
       default:
-        return CFFTopDict_OpSerializer<CFF1TopDictVal>::calculate_serialized_size (opstr);
+	return CFFTopDict_OpSerializer<CFF1TopDictVal>::calculate_serialized_size (opstr);
     }
   }
 };
@@ -222,8 +222,8 @@
 struct FontDictValuesMod
 {
   inline void init (const CFF1FontDictValues *base_,
-                    unsigned int fontName_,
-                    const TableInfo &privateDictInfo_)
+		    unsigned int fontName_,
+		    const TableInfo &privateDictInfo_)
   {
     base = base_;
     fontName = fontName_;
@@ -238,15 +238,15 @@
   inline const OpStr &operator [] (unsigned int i) const { return (*base)[i]; }
 
   const CFF1FontDictValues    *base;
-  TableInfo                   privateDictInfo;
-  unsigned int                fontName;
+  TableInfo		   privateDictInfo;
+  unsigned int		fontName;
 };
 
 struct CFF1FontDict_OpSerializer : CFFFontDict_OpSerializer
 {
   inline bool serialize (hb_serialize_context_t *c,
-                         const OpStr &opstr,
-                         const FontDictValuesMod &mod) const
+			 const OpStr &opstr,
+			 const FontDictValuesMod &mod) const
   {
     TRACE_SERIALIZE (this);
 
@@ -284,16 +284,16 @@
       case OpCode_hintmask:
       case OpCode_cntrmask:
       case OpCode_dotsection:
-        if (param.drop_hints)
-        {
-          env.clear_args ();
-          return;
-        }
-        HB_FALLTHROUGH;
+	if (param.drop_hints)
+	{
+	  env.clear_args ();
+	  return;
+	}
+	HB_FALLTHROUGH;
 
       default:
-        SUPER::flush_args_and_op (op, env, param);
-        break;
+	SUPER::flush_args_and_op (op, env, param);
+	break;
     }
   }
   static inline void flush_args (CFF1CSInterpEnv &env, FlattenParam& param)
@@ -324,7 +324,7 @@
     {
       StrEncoder  encoder (param.flatStr);
       for (unsigned int i = 0; i < env.hintmask_size; i++)
-        encoder.encode_byte (env.substr[i]);
+	encoder.encode_byte (env.substr[i]);
     }
   }
 
@@ -343,7 +343,7 @@
       code_pair &pair = (*this)[i - 1];
       unsigned int  nLeft = last_glyph - pair.glyph - 1;
       if (nLeft >= 0x100)
-        two_byte = true;
+	two_byte = true;
       last_glyph = pair.glyph;
       pair.glyph = nLeft;
     }
@@ -358,37 +358,37 @@
     switch (op) {
 
       case OpCode_return:
-        param.current_parsed_str->add_op (op, env.substr);
-        param.current_parsed_str->set_parsed ();
-        env.returnFromSubr ();
-        param.set_current_str (env);
-        break;
+	param.current_parsed_str->add_op (op, env.substr);
+	param.current_parsed_str->set_parsed ();
+	env.returnFromSubr ();
+	param.set_current_str (env);
+	break;
 
       case OpCode_endchar:
-        param.current_parsed_str->add_op (op, env.substr);
-        param.current_parsed_str->set_parsed ();
-        SUPER::process_op (op, env, param);
-        break;
+	param.current_parsed_str->add_op (op, env.substr);
+	param.current_parsed_str->set_parsed ();
+	SUPER::process_op (op, env, param);
+	break;
 
       case OpCode_callsubr:
-        process_call_subr (op, CSType_LocalSubr, env, param, env.localSubrs, param.local_closure);
-        break;
+	process_call_subr (op, CSType_LocalSubr, env, param, env.localSubrs, param.local_closure);
+	break;
 
       case OpCode_callgsubr:
-        process_call_subr (op, CSType_GlobalSubr, env, param, env.globalSubrs, param.global_closure);
-        break;
+	process_call_subr (op, CSType_GlobalSubr, env, param, env.globalSubrs, param.global_closure);
+	break;
 
       default:
-        SUPER::process_op (op, env, param);
-        param.current_parsed_str->add_op (op, env.substr);
-        break;
+	SUPER::process_op (op, env, param);
+	param.current_parsed_str->add_op (op, env.substr);
+	break;
     }
   }
 
   protected:
   static inline void process_call_subr (OpCode op, CSType type,
-                                        CFF1CSInterpEnv &env, SubrSubsetParam& param,
-                                        CFF1BiasedSubrs& subrs, hb_set_t *closure)
+					CFF1CSInterpEnv &env, SubrSubsetParam& param,
+					CFF1BiasedSubrs& subrs, hb_set_t *closure)
   {
     SubByteStr    substr = env.substr;
     env.callSubr (subrs, type);
@@ -417,9 +417,9 @@
     {
       ParsedCStr  *parsed_str = param.get_parsed_str_for_context (env.callStack[i]);
       if (likely (parsed_str != nullptr))
-        parsed_str->set_parsed ();
+	parsed_str->set_parsed ();
       else
-        env.set_error ();
+	env.set_error ();
     }
   }
 };
@@ -487,27 +487,27 @@
       code = acc.glyph_to_code (orig_glyph);
       if (code == CFF_UNDEF_CODE)
       {
-        subset_enc_num_codes = glyph - 1;
-        break;
+	subset_enc_num_codes = glyph - 1;
+	break;
       }
 
       if (code != last_code + 1)
       {
-        code_pair pair = { code, glyph };
-        subset_enc_code_ranges.push (pair);
+	code_pair pair = { code, glyph };
+	subset_enc_code_ranges.push (pair);
       }
       last_code = code;
 
       if (encoding != &Null(Encoding))
       {
-        hb_codepoint_t  sid = acc.glyph_to_sid (orig_glyph);
-        encoding->get_supplement_codes (sid, supp_codes);
-        for (unsigned int i = 0; i < supp_codes.len; i++)
-        {
-          code_pair pair = { supp_codes[i], sid };
-          subset_enc_supp_codes.push (pair);
-        }
-        supp_size += SuppEncoding::static_size * supp_codes.len;
+	hb_codepoint_t  sid = acc.glyph_to_sid (orig_glyph);
+	encoding->get_supplement_codes (sid, supp_codes);
+	for (unsigned int i = 0; i < supp_codes.len; i++)
+	{
+	  code_pair pair = { supp_codes[i], sid };
+	  subset_enc_supp_codes.push (pair);
+	}
+	supp_size += SuppEncoding::static_size * supp_codes.len;
       }
     }
     supp_codes.fini ();
@@ -524,9 +524,9 @@
       subset_enc_format = 1;
 
     return Encoding::calculate_serialized_size (
-                        subset_enc_format,
-                        subset_enc_format? subset_enc_code_ranges.len: subset_enc_num_codes,
-                        subset_enc_supp_codes.len);
+			subset_enc_format,
+			subset_enc_format? subset_enc_code_ranges.len: subset_enc_num_codes,
+			subset_enc_supp_codes.len);
   }
 
   inline unsigned int plan_subset_charset (const OT::cff1::accelerator_subset_t &acc, hb_subset_plan_t *plan)
@@ -542,12 +542,12 @@
       sid = acc.glyph_to_sid (orig_glyph);
 
       if (!acc.is_CID ())
-        sid = sidmap.add (sid);
+	sid = sidmap.add (sid);
 
       if (sid != last_sid + 1)
       {
-        code_pair pair = { sid, glyph };
-        subset_charset_ranges.push (pair);
+	code_pair pair = { sid, glyph };
+	subset_charset_ranges.push (pair);
       }
       last_sid = sid;
     }
@@ -568,8 +568,8 @@
       subset_charset_format = 2;
 
     return Charset::calculate_serialized_size (
-                        subset_charset_format,
-                        subset_charset_format? subset_charset_ranges.len: plan->glyphs.len);
+			subset_charset_format,
+			subset_charset_format? subset_charset_ranges.len: plan->glyphs.len);
   }
 
   inline bool collect_sids_in_dicts (const OT::cff1::accelerator_subset_t &acc)
@@ -582,21 +582,21 @@
       unsigned int sid = acc.topDict.nameSIDs[i];
       if (sid != CFF_UNDEF_SID)
       {
-        (void)sidmap.add (sid);
-        topDictModSIDs[i] = sidmap[sid];
+	(void)sidmap.add (sid);
+	topDictModSIDs[i] = sidmap[sid];
       }
     }
 
     if (acc.fdArray != &Null(CFF1FDArray))
       for (unsigned int i = 0; i < orig_fdcount; i++)
-        if (fdmap.includes (i))
-          (void)sidmap.add (acc.fontDicts[i].fontName);
+	if (fdmap.includes (i))
+	  (void)sidmap.add (acc.fontDicts[i].fontName);
 
     return true;
   }
 
   inline bool create (const OT::cff1::accelerator_subset_t &acc,
-                      hb_subset_plan_t *plan)
+		      hb_subset_plan_t *plan)
   {
      /* make sure notdef is first */
     if ((plan->glyphs.len == 0) || (plan->glyphs[0] != 0)) return false;
@@ -612,8 +612,8 @@
     for (unsigned int glyph = 0; glyph < plan->glyphs.len; glyph++)
     {
       if (plan->glyphs[glyph] != glyph) {
-        gid_renum = true;
-        break;
+	gid_renum = true;
+	break;
       }
     }
 
@@ -635,32 +635,32 @@
       bool need_to_add_set = (subset_charset && !acc.topDict.has_op (OpCode_charset));
       if (need_to_add_enc || need_to_add_set)
       {
-        if (need_to_add_enc)
-          topdict_mod.add_op (OpCode_Encoding);
-        if (need_to_add_set)
-          topdict_mod.add_op (OpCode_charset);
+	if (need_to_add_enc)
+	  topdict_mod.add_op (OpCode_Encoding);
+	if (need_to_add_set)
+	  topdict_mod.add_op (OpCode_charset);
       }
       offsets.topDictInfo.offset = final_size;
       CFF1TopDict_OpSerializer topSzr;
       unsigned int topDictSize = TopDict::calculate_serialized_size (topdict_mod, topSzr);
       offsets.topDictInfo.offSize = calcOffSize(topDictSize);
       final_size += CFF1IndexOf<TopDict>::calculate_serialized_size<CFF1TopDictValuesMod>
-                                                (offsets.topDictInfo.offSize,
-                                                 &topdict_mod, 1, topdict_sizes, topSzr);
+						(offsets.topDictInfo.offSize,
+						 &topdict_mod, 1, topdict_sizes, topSzr);
     }
 
     /* Determine re-mapping of font index as fdmap among other info */
     if (acc.fdSelect != &Null(CFF1FDSelect))
     {
-        if (unlikely (!hb_plan_subset_cff_fdselect (plan->glyphs,
-                                  orig_fdcount,
-                                  *acc.fdSelect,
-                                  subset_fdcount,
-                                  offsets.FDSelectInfo.size,
-                                  subset_fdselect_format,
-                                  subset_fdselect_ranges,
-                                  fdmap)))
-        return false;
+	if (unlikely (!hb_plan_subset_cff_fdselect (plan->glyphs,
+				  orig_fdcount,
+				  *acc.fdSelect,
+				  subset_fdcount,
+				  offsets.FDSelectInfo.size,
+				  subset_fdselect_format,
+				  subset_fdselect_ranges,
+				  fdmap)))
+	return false;
     }
     else
       fdmap.identity (1);
@@ -669,10 +669,10 @@
     {
       /* SIDs for name strings in dicts are added before glyph names so they fit in 16-bit int range */
       if (unlikely (!collect_sids_in_dicts (acc)))
-        return false;
+	return false;
       assert (sidmap.get_count () <= 0x8000);
       if (subset_charset)
-        offsets.charsetInfo.size = plan_subset_charset (acc, plan);
+	offsets.charsetInfo.size = plan_subset_charset (acc, plan);
 
       topdict_mod.reassignSIDs (sidmap);
     }
@@ -688,9 +688,9 @@
     {
       /* Flatten global & local subrs */
       SubrFlattener<const OT::cff1::accelerator_subset_t, CFF1CSInterpEnv, CFF1CSOpSet_Flatten>
-                    flattener(acc, plan->glyphs, plan->drop_hints);
+		    flattener(acc, plan->glyphs, plan->drop_hints);
       if (!flattener.flatten (subset_charstrings))
-        return false;
+	return false;
 
       /* no global/local subroutines */
       offsets.globalSubrsInfo.size = CFF1Subrs::calculate_serialized_size (1, 0, 0);
@@ -699,14 +699,14 @@
     {
       /* Subset subrs: collect used subroutines, leaving all unused ones behind */
       if (!subr_subsetter.subset (acc, plan->glyphs, plan->drop_hints))
-        return false;
+	return false;
 
       /* encode charstrings, global subrs, local subrs with new subroutine numbers */
       if (!subr_subsetter.encode_charstrings (acc, plan->glyphs, subset_charstrings))
-        return false;
+	return false;
 
       if (!subr_subsetter.encode_globalsubrs (subset_globalsubrs))
-        return false;
+	return false;
 
       /* global subrs */
       unsigned int dataSize = subset_globalsubrs.total_size ();
@@ -715,26 +715,26 @@
 
       /* local subrs */
       if (!offsets.localSubrsInfos.resize (orig_fdcount))
-        return false;
+	return false;
       if (!subset_localsubrs.resize (orig_fdcount))
-        return false;
+	return false;
       for (unsigned int fd = 0; fd < orig_fdcount; fd++)
       {
-        subset_localsubrs[fd].init ();
-        offsets.localSubrsInfos[fd].init ();
-        if (fdmap.includes (fd))
-        {
-          if (!subr_subsetter.encode_localsubrs (fd, subset_localsubrs[fd]))
-            return false;
+	subset_localsubrs[fd].init ();
+	offsets.localSubrsInfos[fd].init ();
+	if (fdmap.includes (fd))
+	{
+	  if (!subr_subsetter.encode_localsubrs (fd, subset_localsubrs[fd]))
+	    return false;
 
-          unsigned int dataSize = subset_localsubrs[fd].total_size ();
-          if (dataSize > 0)
-          {
-            offsets.localSubrsInfos[fd].offset = final_size;
-            offsets.localSubrsInfos[fd].offSize = calcOffSize (dataSize);
-            offsets.localSubrsInfos[fd].size = CFF1Subrs::calculate_serialized_size (offsets.localSubrsInfos[fd].offSize, subset_localsubrs[fd].len, dataSize);
-          }
-        }
+	  unsigned int dataSize = subset_localsubrs[fd].total_size ();
+	  if (dataSize > 0)
+	  {
+	    offsets.localSubrsInfos[fd].offset = final_size;
+	    offsets.localSubrsInfos[fd].offSize = calcOffSize (dataSize);
+	    offsets.localSubrsInfos[fd].size = CFF1Subrs::calculate_serialized_size (offsets.localSubrsInfos[fd].offSize, subset_localsubrs[fd].len, dataSize);
+	  }
+	}
       }
     }
 
@@ -771,8 +771,8 @@
       CFF1FontDict_OpSerializer fontSzr;
       unsigned int dictsSize = 0;
       for (unsigned int i = 0; i < acc.fontDicts.len; i++)
-        if (fdmap.includes (i))
-          dictsSize += FontDict::calculate_serialized_size (acc.fontDicts[i], fontSzr);
+	if (fdmap.includes (i))
+	  dictsSize += FontDict::calculate_serialized_size (acc.fontDicts[i], fontSzr);
 
       offsets.FDArrayInfo.offSize = calcOffSize (dictsSize);
       final_size += CFF1Index::calculate_serialized_size (offsets.FDArrayInfo.offSize, subset_fdcount, dictsSize);
@@ -792,23 +792,23 @@
     {
       if (fdmap.includes (i))
       {
-        bool  has_localsubrs = offsets.localSubrsInfos[i].size > 0;
-        CFFPrivateDict_OpSerializer privSzr (desubroutinize, plan->drop_hints);
-        unsigned int  priv_size = PrivateDict::calculate_serialized_size (acc.privateDicts[i], privSzr, has_localsubrs);
-        TableInfo  privInfo = { final_size, priv_size, 0 };
-        FontDictValuesMod fontdict_mod;
-        if (!acc.is_CID ())
-          fontdict_mod.init ( &Null(CFF1FontDictValues), CFF_UNDEF_SID, privInfo );
-        else
-          fontdict_mod.init ( &acc.fontDicts[i], sidmap[acc.fontDicts[i].fontName], privInfo );
-        fontdicts_mod.push (fontdict_mod);
-        final_size += privInfo.size;
+	bool  has_localsubrs = offsets.localSubrsInfos[i].size > 0;
+	CFFPrivateDict_OpSerializer privSzr (desubroutinize, plan->drop_hints);
+	unsigned int  priv_size = PrivateDict::calculate_serialized_size (acc.privateDicts[i], privSzr, has_localsubrs);
+	TableInfo  privInfo = { final_size, priv_size, 0 };
+	FontDictValuesMod fontdict_mod;
+	if (!acc.is_CID ())
+	  fontdict_mod.init ( &Null(CFF1FontDictValues), CFF_UNDEF_SID, privInfo );
+	else
+	  fontdict_mod.init ( &acc.fontDicts[i], sidmap[acc.fontDicts[i].fontName], privInfo );
+	fontdicts_mod.push (fontdict_mod);
+	final_size += privInfo.size;
 
-        if (!plan->desubroutinize && has_localsubrs)
-        {
-          offsets.localSubrsInfos[i].offset = final_size;
-          final_size += offsets.localSubrsInfos[i].size;
-        }
+	if (!plan->desubroutinize && has_localsubrs)
+	{
+	  offsets.localSubrsInfos[i].offset = final_size;
+	  final_size += offsets.localSubrsInfos[i].size;
+	}
       }
     }
 
@@ -816,12 +816,12 @@
       offsets.privateDictInfo = fontdicts_mod[0].privateDictInfo;
 
     return ((subset_charstrings.len == plan->glyphs.len)
-           && (fontdicts_mod.len == subset_fdcount));
+	   && (fontdicts_mod.len == subset_fdcount));
   }
 
   inline unsigned int get_final_size (void) const  { return final_size; }
 
-  unsigned int              final_size;
+  unsigned int	      final_size;
   hb_vector_t<unsigned int> topdict_sizes;
   CFF1TopDictValuesMod      topdict_mod;
   CFF1SubTableOffsets       offsets;
@@ -836,36 +836,36 @@
    * set to CFF_UNDEF_CODE if excluded from subset */
   Remap   fdmap;
 
-  StrBuffArray            subset_charstrings;
-  StrBuffArray            subset_globalsubrs;
+  StrBuffArray	    subset_charstrings;
+  StrBuffArray	    subset_globalsubrs;
   hb_vector_t<StrBuffArray> subset_localsubrs;
   hb_vector_t<FontDictValuesMod>  fontdicts_mod;
 
-  bool                    drop_hints;
+  bool		    drop_hints;
 
-  bool                    gid_renum;
-  bool                    subset_encoding;
-  uint8_t                 subset_enc_format;
-  unsigned int            subset_enc_num_codes;
-  RangeList               subset_enc_code_ranges;
+  bool		    gid_renum;
+  bool		    subset_encoding;
+  uint8_t		 subset_enc_format;
+  unsigned int	    subset_enc_num_codes;
+  RangeList	       subset_enc_code_ranges;
   hb_vector_t<code_pair>  subset_enc_supp_codes;
 
-  uint8_t                 subset_charset_format;
-  RangeList               subset_charset_ranges;
-  bool                    subset_charset;
+  uint8_t		 subset_charset_format;
+  RangeList	       subset_charset_ranges;
+  bool		    subset_charset;
 
-  RemapSID                sidmap;
-  unsigned int            topDictModSIDs[NameDictValues::ValCount];
+  RemapSID		sidmap;
+  unsigned int	    topDictModSIDs[NameDictValues::ValCount];
 
-  bool                    desubroutinize;
+  bool		    desubroutinize;
   CFF1SubrSubsetter       subr_subsetter;
 };
 
 static inline bool _write_cff1 (const cff_subset_plan &plan,
-                                const OT::cff1::accelerator_subset_t  &acc,
-                                const hb_vector_t<hb_codepoint_t>& glyphs,
-                                unsigned int dest_sz,
-                                void *dest)
+				const OT::cff1::accelerator_subset_t  &acc,
+				const hb_vector_t<hb_codepoint_t>& glyphs,
+				unsigned int dest_sz,
+				void *dest)
 {
   hb_serialize_context_t c (dest, dest_sz);
 
@@ -902,8 +902,8 @@
     CFF1TopDict_OpSerializer topSzr;
     TopDictModifiers  modifier (plan.offsets, plan.topDictModSIDs);
     if (unlikely (!dest->serialize (&c, plan.offsets.topDictInfo.offSize,
-                                    &plan.topdict_mod, 1,
-                                    plan.topdict_sizes, topSzr, modifier)))
+				    &plan.topdict_mod, 1,
+				    plan.topdict_sizes, topSzr, modifier)))
     {
       DEBUG_MSG (SUBSET, nullptr, "failed to serialize CFF top dict");
       return false;
@@ -943,10 +943,10 @@
     Encoding *dest = c.start_embed<Encoding> ();
     if (unlikely (dest == nullptr)) return false;
     if (unlikely (!dest->serialize (&c,
-                                    plan.subset_enc_format,
-                                    plan.subset_enc_num_codes,
-                                    plan.subset_enc_code_ranges,
-                                    plan.subset_enc_supp_codes)))
+				    plan.subset_enc_format,
+				    plan.subset_enc_num_codes,
+				    plan.subset_enc_code_ranges,
+				    plan.subset_enc_supp_codes)))
     {
       DEBUG_MSG (SUBSET, nullptr, "failed to serialize Encoding");
       return false;
@@ -960,9 +960,9 @@
     Charset *dest = c.start_embed<Charset> ();
     if (unlikely (dest == nullptr)) return false;
     if (unlikely (!dest->serialize (&c,
-                                    plan.subset_charset_format,
-                                    plan.num_glyphs,
-                                    plan.subset_charset_ranges)))
+				    plan.subset_charset_format,
+				    plan.num_glyphs,
+				    plan.subset_charset_ranges)))
     {
       DEBUG_MSG (SUBSET, nullptr, "failed to serialize Charset");
       return false;
@@ -975,8 +975,8 @@
     assert (plan.offsets.FDSelectInfo.offset == c.head - c.start);
 
     if (unlikely (!hb_serialize_cff_fdselect (&c, glyphs.len, *acc.fdSelect, acc.fdCount,
-                                              plan.subset_fdselect_format, plan.offsets.FDSelectInfo.size,
-                                              plan.subset_fdselect_ranges)))
+					      plan.subset_fdselect_format, plan.offsets.FDSelectInfo.size,
+					      plan.subset_fdselect_ranges)))
     {
       DEBUG_MSG (SUBSET, nullptr, "failed to serialize CFF subset FDSelect");
       return false;
@@ -991,8 +991,8 @@
     if (unlikely (fda == nullptr)) return false;
     CFF1FontDict_OpSerializer  fontSzr;
     if (unlikely (!fda->serialize (&c, plan.offsets.FDArrayInfo.offSize,
-                                   plan.fontdicts_mod,
-                                   fontSzr)))
+				   plan.fontdicts_mod,
+				   fontSzr)))
     {
       DEBUG_MSG (SUBSET, nullptr, "failed to serialize CFF FDArray");
       return false;
@@ -1027,18 +1027,18 @@
       result = pd->serialize (&c, acc.privateDicts[i], privSzr, subroffset);
       if (unlikely (!result))
       {
-        DEBUG_MSG (SUBSET, nullptr, "failed to serialize CFF Private Dict[%d]", i);
-        return false;
+	DEBUG_MSG (SUBSET, nullptr, "failed to serialize CFF Private Dict[%d]", i);
+	return false;
       }
       if (plan.offsets.localSubrsInfos[i].size > 0)
       {
-        CFF1Subrs *dest = c.start_embed <CFF1Subrs> ();
-        if (unlikely (dest == nullptr)) return false;
-        if (unlikely (!dest->serialize (&c, plan.offsets.localSubrsInfos[i].offSize, plan.subset_localsubrs[i])))
-        {
-          DEBUG_MSG (SUBSET, nullptr, "failed to serialize local subroutines");
-          return false;
-        }
+	CFF1Subrs *dest = c.start_embed <CFF1Subrs> ();
+	if (unlikely (dest == nullptr)) return false;
+	if (unlikely (!dest->serialize (&c, plan.offsets.localSubrsInfos[i].offSize, plan.subset_localsubrs[i])))
+	{
+	  DEBUG_MSG (SUBSET, nullptr, "failed to serialize local subroutines");
+	  return false;
+	}
       }
     }
   }
@@ -1051,9 +1051,9 @@
 
 static bool
 _hb_subset_cff1 (const OT::cff1::accelerator_subset_t  &acc,
-                const char                      *data,
-                hb_subset_plan_t                *plan,
-                hb_blob_t                       **prime /* OUT */)
+		const char		      *data,
+		hb_subset_plan_t		*plan,
+		hb_blob_t		       **prime /* OUT */)
 {
   cff_subset_plan cff_plan;
 
@@ -1067,17 +1067,17 @@
   char *cff_prime_data = (char *) calloc (1, cff_prime_size);
 
   if (unlikely (!_write_cff1 (cff_plan, acc, plan->glyphs,
-                              cff_prime_size, cff_prime_data))) {
+			      cff_prime_size, cff_prime_data))) {
     DEBUG_MSG(SUBSET, nullptr, "Failed to write a subset cff.");
     free (cff_prime_data);
     return false;
   }
 
   *prime = hb_blob_create (cff_prime_data,
-                           cff_prime_size,
-                           HB_MEMORY_MODE_READONLY,
-                           cff_prime_data,
-                           free);
+			   cff_prime_size,
+			   HB_MEMORY_MODE_READONLY,
+			   cff_prime_data,
+			   free);
   return true;
 }
 
@@ -1089,7 +1089,7 @@
  **/
 bool
 hb_subset_cff1 (hb_subset_plan_t *plan,
-                hb_blob_t       **prime /* OUT */)
+		hb_blob_t       **prime /* OUT */)
 {
   hb_blob_t *cff_blob = hb_sanitize_context_t().reference_table<CFF::cff1> (plan->source);
   const char *data = hb_blob_get_data(cff_blob, nullptr);
@@ -1097,7 +1097,7 @@
   OT::cff1::accelerator_subset_t acc;
   acc.init(plan->source);
   bool result = likely (acc.is_valid ()) &&
-                        _hb_subset_cff1 (acc, data, plan, prime);
+			_hb_subset_cff1 (acc, data, plan, prime);
   hb_blob_destroy (cff_blob);
   acc.fini ();
 
diff --git a/src/hb-subset-cff1.hh b/src/hb-subset-cff1.hh
index 33a6638..1ec8678 100644
--- a/src/hb-subset-cff1.hh
+++ b/src/hb-subset-cff1.hh
@@ -33,6 +33,6 @@
 
 HB_INTERNAL bool
 hb_subset_cff1 (hb_subset_plan_t *plan,
-               hb_blob_t        **cff_prime /* OUT */);
+	       hb_blob_t	**cff_prime /* OUT */);
 
 #endif /* HB_SUBSET_CFF1_HH */
diff --git a/src/hb-subset-cff2.cc b/src/hb-subset-cff2.cc
index 64c5a24..463ca2b 100644
--- a/src/hb-subset-cff2.cc
+++ b/src/hb-subset-cff2.cc
@@ -47,18 +47,18 @@
 struct CFF2TopDict_OpSerializer : CFFTopDict_OpSerializer<>
 {
   inline bool serialize (hb_serialize_context_t *c,
-                         const OpStr &opstr,
-                         const CFF2SubTableOffsets &offsets) const
+			 const OpStr &opstr,
+			 const CFF2SubTableOffsets &offsets) const
   {
     TRACE_SERIALIZE (this);
 
     switch (opstr.op)
     {
       case OpCode_vstore:
-        return_trace (FontDict::serialize_offset4_op(c, opstr.op, offsets.varStoreOffset));
+	return_trace (FontDict::serialize_offset4_op(c, opstr.op, offsets.varStoreOffset));
 
       default:
-        return_trace (CFFTopDict_OpSerializer<>::serialize (c, opstr, offsets));
+	return_trace (CFFTopDict_OpSerializer<>::serialize (c, opstr, offsets));
     }
   }
 
@@ -67,10 +67,10 @@
     switch (opstr.op)
     {
       case OpCode_vstore:
-        return OpCode_Size (OpCode_longintdict) + 4 + OpCode_Size (opstr.op);
+	return OpCode_Size (OpCode_longintdict) + 4 + OpCode_Size (opstr.op);
 
       default:
-        return CFFTopDict_OpSerializer<>::calculate_serialized_size (opstr);
+	return CFFTopDict_OpSerializer<>::calculate_serialized_size (opstr);
     }
   }
 };
@@ -83,8 +83,8 @@
     {
       case OpCode_return:
       case OpCode_endchar:
-        /* dummy opcodes in CFF2. ignore */
-        break;
+	/* dummy opcodes in CFF2. ignore */
+	break;
 
       case OpCode_hstem:
       case OpCode_hstemhm:
@@ -92,16 +92,16 @@
       case OpCode_vstemhm:
       case OpCode_hintmask:
       case OpCode_cntrmask:
-        if (param.drop_hints)
-        {
-          env.clear_args ();
-          return;
-        }
-        HB_FALLTHROUGH;
+	if (param.drop_hints)
+	{
+	  env.clear_args ();
+	  return;
+	}
+	HB_FALLTHROUGH;
 
       default:
-        SUPER::flush_args_and_op (op, env, param);
-        break;
+	SUPER::flush_args_and_op (op, env, param);
+	break;
     }
   }
 
@@ -112,15 +112,15 @@
       const BlendArg &arg = env.argStack[i];
       if (arg.blending ())
       {
-        assert ((arg.numValues > 0) && (env.argStack.get_count () >= arg.numValues));
-        flatten_blends (arg, i, env, param);
-        i += arg.numValues;
+	assert ((arg.numValues > 0) && (env.argStack.get_count () >= arg.numValues));
+	flatten_blends (arg, i, env, param);
+	i += arg.numValues;
       }
       else
       {
-        StrEncoder  encoder (param.flatStr);
-        encoder.encode_num (arg);
-        i++;
+	StrEncoder  encoder (param.flatStr);
+	encoder.encode_num (arg);
+	i++;
       }
     }
     SUPER::flush_args (env, param);
@@ -134,7 +134,7 @@
     {
       const BlendArg &arg1 = env.argStack[i + j];
       assert (arg1.blending () && (arg.numValues == arg1.numValues) && (arg1.valueIndex == j) &&
-              (arg1.deltas.len == env.get_region_count ()));
+	      (arg1.deltas.len == env.get_region_count ()));
       encoder.encode_num (arg1);
     }
     /* flatten deltas for each value */
@@ -142,7 +142,7 @@
     {
       const BlendArg &arg1 = env.argStack[i + j];
       for (unsigned int k = 0; k < arg1.deltas.len; k++)
-        encoder.encode_num (arg1.deltas[k]);
+	encoder.encode_num (arg1.deltas[k]);
     }
     /* flatten the number of values followed by blend operator */
     encoder.encode_int (arg.numValues);
@@ -155,10 +155,10 @@
     {
       case OpCode_return:
       case OpCode_endchar:
-        return;
+	return;
       default:
-        StrEncoder  encoder (param.flatStr);
-        encoder.encode_op (op);
+	StrEncoder  encoder (param.flatStr);
+	encoder.encode_op (op);
     }
   }
 
@@ -174,35 +174,35 @@
     switch (op) {
 
       case OpCode_return:
-        param.current_parsed_str->set_parsed ();
-        env.returnFromSubr ();
-        param.set_current_str (env);
-        break;
+	param.current_parsed_str->set_parsed ();
+	env.returnFromSubr ();
+	param.set_current_str (env);
+	break;
 
       case OpCode_endchar:
-        param.current_parsed_str->set_parsed ();
-        SUPER::process_op (op, env, param);
-        break;
+	param.current_parsed_str->set_parsed ();
+	SUPER::process_op (op, env, param);
+	break;
 
       case OpCode_callsubr:
-        process_call_subr (op, CSType_LocalSubr, env, param, env.localSubrs, param.local_closure);
-        break;
+	process_call_subr (op, CSType_LocalSubr, env, param, env.localSubrs, param.local_closure);
+	break;
 
       case OpCode_callgsubr:
-        process_call_subr (op, CSType_GlobalSubr, env, param, env.globalSubrs, param.global_closure);
-        break;
+	process_call_subr (op, CSType_GlobalSubr, env, param, env.globalSubrs, param.global_closure);
+	break;
 
       default:
-        SUPER::process_op (op, env, param);
-        param.current_parsed_str->add_op (op, env.substr);
-        break;
+	SUPER::process_op (op, env, param);
+	param.current_parsed_str->add_op (op, env.substr);
+	break;
     }
   }
 
   protected:
   static inline void process_call_subr (OpCode op, CSType type,
-                                        CFF2CSInterpEnv &env, SubrSubsetParam& param,
-                                        CFF2BiasedSubrs& subrs, hb_set_t *closure)
+					CFF2CSInterpEnv &env, SubrSubsetParam& param,
+					CFF2BiasedSubrs& subrs, hb_set_t *closure)
   {
     SubByteStr    substr = env.substr;
     env.callSubr (subrs, type);
@@ -257,7 +257,7 @@
   }
 
   inline bool create (const OT::cff2::accelerator_subset_t &acc,
-              hb_subset_plan_t *plan)
+	      hb_subset_plan_t *plan)
   {
     final_size = 0;
     orig_fdcount = acc.fdArray->count;
@@ -279,9 +279,9 @@
     {
       /* Flatten global & local subrs */
       SubrFlattener<const OT::cff2::accelerator_subset_t, CFF2CSInterpEnv, CFF2CSOpSet_Flatten>
-                    flattener(acc, plan->glyphs, plan->drop_hints);
+		    flattener(acc, plan->glyphs, plan->drop_hints);
       if (!flattener.flatten (subset_charstrings))
-        return false;
+	return false;
 
       /* no global/local subroutines */
       offsets.globalSubrsInfo.size = CFF2Subrs::calculate_serialized_size (1, 0, 0);
@@ -290,14 +290,14 @@
     {
       /* Subset subrs: collect used subroutines, leaving all unused ones behind */
       if (!subr_subsetter.subset (acc, plan->glyphs, plan->drop_hints))
-        return false;
+	return false;
 
       /* encode charstrings, global subrs, local subrs with new subroutine numbers */
       if (!subr_subsetter.encode_charstrings (acc, plan->glyphs, subset_charstrings))
-        return false;
+	return false;
 
       if (!subr_subsetter.encode_globalsubrs (subset_globalsubrs))
-        return false;
+	return false;
 
       /* global subrs */
       unsigned int dataSize = subset_globalsubrs.total_size ();
@@ -306,26 +306,26 @@
 
       /* local subrs */
       if (!offsets.localSubrsInfos.resize (orig_fdcount))
-        return false;
+	return false;
       if (!subset_localsubrs.resize (orig_fdcount))
-        return false;
+	return false;
       for (unsigned int fd = 0; fd < orig_fdcount; fd++)
       {
-        subset_localsubrs[fd].init ();
-        offsets.localSubrsInfos[fd].init ();
-        if (fdmap.includes (fd))
-        {
-          if (!subr_subsetter.encode_localsubrs (fd, subset_localsubrs[fd]))
-            return false;
+	subset_localsubrs[fd].init ();
+	offsets.localSubrsInfos[fd].init ();
+	if (fdmap.includes (fd))
+	{
+	  if (!subr_subsetter.encode_localsubrs (fd, subset_localsubrs[fd]))
+	    return false;
 
-          unsigned int dataSize = subset_localsubrs[fd].total_size ();
-          if (dataSize > 0)
-          {
-            offsets.localSubrsInfos[fd].offset = final_size;
-            offsets.localSubrsInfos[fd].offSize = calcOffSize (dataSize);
-            offsets.localSubrsInfos[fd].size = CFF2Subrs::calculate_serialized_size (offsets.localSubrsInfos[fd].offSize, subset_localsubrs[fd].len, dataSize);
-          }
-        }
+	  unsigned int dataSize = subset_localsubrs[fd].total_size ();
+	  if (dataSize > 0)
+	  {
+	    offsets.localSubrsInfos[fd].offset = final_size;
+	    offsets.localSubrsInfos[fd].offSize = calcOffSize (dataSize);
+	    offsets.localSubrsInfos[fd].size = CFF2Subrs::calculate_serialized_size (offsets.localSubrsInfos[fd].offSize, subset_localsubrs[fd].len, dataSize);
+	  }
+	}
       }
     }
 
@@ -345,14 +345,14 @@
     {
       offsets.FDSelectInfo.offset = final_size;
       if (unlikely (!hb_plan_subset_cff_fdselect (plan->glyphs,
-                                  orig_fdcount,
-                                  *(const FDSelect *)acc.fdSelect,
-                                  subset_fdcount,
-                                  offsets.FDSelectInfo.size,
-                                  subset_fdselect_format,
-                                  subset_fdselect_ranges,
-                                  fdmap)))
-        return false;
+				  orig_fdcount,
+				  *(const FDSelect *)acc.fdSelect,
+				  subset_fdcount,
+				  offsets.FDSelectInfo.size,
+				  subset_fdselect_format,
+				  subset_fdselect_ranges,
+				  fdmap)))
+	return false;
 
       final_size += offsets.FDSelectInfo.size;
     }
@@ -365,8 +365,8 @@
       CFFFontDict_OpSerializer fontSzr;
       unsigned int dictsSize = 0;
       for (unsigned int i = 0; i < acc.fontDicts.len; i++)
-        if (fdmap.includes (i))
-          dictsSize += FontDict::calculate_serialized_size (acc.fontDicts[i], fontSzr);
+	if (fdmap.includes (i))
+	  dictsSize += FontDict::calculate_serialized_size (acc.fontDicts[i], fontSzr);
 
       offsets.FDArrayInfo.offSize = calcOffSize (dictsSize);
       final_size += CFF2Index::calculate_serialized_size (offsets.FDArrayInfo.offSize, subset_fdcount, dictsSize);
@@ -386,18 +386,18 @@
     {
       if (fdmap.includes (i))
       {
-        bool  has_localsubrs = offsets.localSubrsInfos[i].size > 0;
-        CFFPrivateDict_OpSerializer privSzr (desubroutinize, drop_hints);
-        unsigned int  priv_size = PrivateDict::calculate_serialized_size (acc.privateDicts[i], privSzr, has_localsubrs);
-        TableInfo  privInfo = { final_size, priv_size, 0 };
-        privateDictInfos.push (privInfo);
-        final_size += privInfo.size;
+	bool  has_localsubrs = offsets.localSubrsInfos[i].size > 0;
+	CFFPrivateDict_OpSerializer privSzr (desubroutinize, drop_hints);
+	unsigned int  priv_size = PrivateDict::calculate_serialized_size (acc.privateDicts[i], privSzr, has_localsubrs);
+	TableInfo  privInfo = { final_size, priv_size, 0 };
+	privateDictInfos.push (privInfo);
+	final_size += privInfo.size;
 
-        if (!plan->desubroutinize && has_localsubrs)
-        {
-          offsets.localSubrsInfos[i].offset = final_size;
-          final_size += offsets.localSubrsInfos[i].size;
-        }
+	if (!plan->desubroutinize && has_localsubrs)
+	{
+	  offsets.localSubrsInfos[i].offset = final_size;
+	  final_size += offsets.localSubrsInfos[i].size;
+	}
       }
     }
 
@@ -406,7 +406,7 @@
 
   inline unsigned int get_final_size (void) const  { return final_size; }
 
-  unsigned int        final_size;
+  unsigned int	final_size;
   CFF2SubTableOffsets offsets;
 
   unsigned int    orig_fdcount;
@@ -416,21 +416,21 @@
 
   Remap   fdmap;
 
-  StrBuffArray            subset_charstrings;
-  StrBuffArray            subset_globalsubrs;
+  StrBuffArray	    subset_charstrings;
+  StrBuffArray	    subset_globalsubrs;
   hb_vector_t<StrBuffArray> subset_localsubrs;
   hb_vector_t<TableInfo>  privateDictInfos;
 
-  bool            drop_hints;
-  bool            desubroutinize;
+  bool	    drop_hints;
+  bool	    desubroutinize;
   CFF2SubrSubsetter       subr_subsetter;
 };
 
 static inline bool _write_cff2 (const cff2_subset_plan &plan,
-                                const OT::cff2::accelerator_subset_t  &acc,
-                                const hb_vector_t<hb_codepoint_t>& glyphs,
-                                unsigned int dest_sz,
-                                void *dest)
+				const OT::cff2::accelerator_subset_t  &acc,
+				const hb_vector_t<hb_codepoint_t>& glyphs,
+				unsigned int dest_sz,
+				void *dest)
 {
   hb_serialize_context_t c (dest, dest_sz);
 
@@ -486,8 +486,8 @@
     assert (plan.offsets.FDSelectInfo.offset == c.head - c.start);
 
     if (unlikely (!hb_serialize_cff_fdselect (&c, glyphs.len, *(const FDSelect *)acc.fdSelect, acc.fdArray->count,
-                                              plan.subset_fdselect_format, plan.offsets.FDSelectInfo.size,
-                                              plan.subset_fdselect_ranges)))
+					      plan.subset_fdselect_format, plan.offsets.FDSelectInfo.size,
+					      plan.subset_fdselect_ranges)))
     {
       DEBUG_MSG (SUBSET, nullptr, "failed to serialize CFF2 subset FDSelect");
       return false;
@@ -501,8 +501,8 @@
     if (unlikely (fda == nullptr)) return false;
     CFFFontDict_OpSerializer  fontSzr;
     if (unlikely (!fda->serialize (&c, plan.offsets.FDArrayInfo.offSize,
-                                   acc.fontDicts, plan.subset_fdcount, plan.fdmap,
-                                   fontSzr, plan.privateDictInfos)))
+				   acc.fontDicts, plan.subset_fdcount, plan.fdmap,
+				   fontSzr, plan.privateDictInfos)))
     {
       DEBUG_MSG (SUBSET, nullptr, "failed to serialize CFF2 FDArray");
       return false;
@@ -537,18 +537,18 @@
       result = pd->serialize (&c, acc.privateDicts[i], privSzr, subroffset);
       if (unlikely (!result))
       {
-        DEBUG_MSG (SUBSET, nullptr, "failed to serialize CFF Private Dict[%d]", i);
-        return false;
+	DEBUG_MSG (SUBSET, nullptr, "failed to serialize CFF Private Dict[%d]", i);
+	return false;
       }
       if (plan.offsets.localSubrsInfos[i].size > 0)
       {
-        CFF2Subrs *dest = c.start_embed <CFF2Subrs> ();
-        if (unlikely (dest == nullptr)) return false;
-        if (unlikely (!dest->serialize (&c, plan.offsets.localSubrsInfos[i].offSize, plan.subset_localsubrs[i])))
-        {
-          DEBUG_MSG (SUBSET, nullptr, "failed to serialize local subroutines");
-          return false;
-        }
+	CFF2Subrs *dest = c.start_embed <CFF2Subrs> ();
+	if (unlikely (dest == nullptr)) return false;
+	if (unlikely (!dest->serialize (&c, plan.offsets.localSubrsInfos[i].offSize, plan.subset_localsubrs[i])))
+	{
+	  DEBUG_MSG (SUBSET, nullptr, "failed to serialize local subroutines");
+	  return false;
+	}
       }
     }
   }
@@ -561,9 +561,9 @@
 
 static bool
 _hb_subset_cff2 (const OT::cff2::accelerator_subset_t  &acc,
-                const char                      *data,
-                hb_subset_plan_t                *plan,
-                hb_blob_t                       **prime /* OUT */)
+		const char		      *data,
+		hb_subset_plan_t		*plan,
+		hb_blob_t		       **prime /* OUT */)
 {
   cff2_subset_plan cff2_plan;
 
@@ -577,17 +577,17 @@
   char *cff2_prime_data = (char *) calloc (1, cff2_prime_size);
 
   if (unlikely (!_write_cff2 (cff2_plan, acc, plan->glyphs,
-                              cff2_prime_size, cff2_prime_data))) {
+			      cff2_prime_size, cff2_prime_data))) {
     DEBUG_MSG(SUBSET, nullptr, "Failed to write a subset cff2.");
     free (cff2_prime_data);
     return false;
   }
 
   *prime = hb_blob_create (cff2_prime_data,
-                                cff2_prime_size,
-                                HB_MEMORY_MODE_READONLY,
-                                cff2_prime_data,
-                                free);
+				cff2_prime_size,
+				HB_MEMORY_MODE_READONLY,
+				cff2_prime_data,
+				free);
   return true;
 }
 
@@ -599,7 +599,7 @@
  **/
 bool
 hb_subset_cff2 (hb_subset_plan_t *plan,
-                hb_blob_t       **prime /* OUT */)
+		hb_blob_t       **prime /* OUT */)
 {
   hb_blob_t *cff2_blob = hb_sanitize_context_t().reference_table<CFF::cff2> (plan->source);
   const char *data = hb_blob_get_data(cff2_blob, nullptr);
@@ -607,7 +607,7 @@
   OT::cff2::accelerator_subset_t acc;
   acc.init(plan->source);
   bool result = likely (acc.is_valid ()) &&
-                _hb_subset_cff2 (acc, data, plan, prime);
+		_hb_subset_cff2 (acc, data, plan, prime);
 
   hb_blob_destroy (cff2_blob);
   acc.fini ();
diff --git a/src/hb-subset-cff2.hh b/src/hb-subset-cff2.hh
index baac1a9..a07dc29 100644
--- a/src/hb-subset-cff2.hh
+++ b/src/hb-subset-cff2.hh
@@ -33,6 +33,6 @@
 
 HB_INTERNAL bool
 hb_subset_cff2 (hb_subset_plan_t *plan,
-               hb_blob_t       **cff2_prime /* OUT */);
+	       hb_blob_t       **cff2_prime /* OUT */);
 
 #endif /* HB_SUBSET_CFF2_HH */