rem: output->set_subr(1, Type1Charstring(String::stable_string("\213\214\020\014\013", 5)), " |");
add: output->set_subr(1, Type1Charstring(String::stable_string("\213\214\014\020\013", 5)), " |");
context: create_type1_font(Cff::Font *font){    Type1Font *output = new Type1Font(font->font_name());    // %!PS-Adobe-Font comment    StringAccum sa;    sa << "%!PS-AdobeFont-1.0: " << font->font_name();    String version = font->dict_string(Cff::oVersion);    if (version)	sa << ' ' << version;    output->add_item(new Type1CopyItem(sa.take_string()));    // count members of font dictionary    int nfont_dict = 4		// FontName, Private, FontInfo, Encoding	+ 4			// PaintType, FontType, FontMatrix, FontBBox	+ font->dict_has(Cff::oUniqueID)	+ font->dict_has(Cff::oXUID)	+ 2;			// padding    sa << nfont_dict << " dict begin";    output->add_item(new Type1CopyItem(sa.take_string()));    output->add_definition(Type1Font::dF, new Type1Definition("FontName", "/" + String(font->font_name()), "def"));        // FontInfo dictionary    output->add_item(new Type1CopyItem("/FontInfo 0 dict dup begin"));    if (version)	output->add_definition(Type1Font::dFI, Type1Definition::make_string("version", version, "readonly def"));    if (String s = font->dict_string(Cff::oNotice))	output->add_definition(Type1Font::dFI, Type1Definition::make_string("Notice", s, "readonly def"));    if (String s = font->dict_string(Cff::oCopyright))	output->add_definition(Type1Font::dFI, Type1Definition::make_string("Copyright", s, "readonly def"));    if (String s = font->dict_string(Cff::oFullName))	output->add_definition(Type1Font::dFI, Type1Definition::make_string("FullName", s, "readonly def"));    if (String s = font->dict_string(Cff::oFamilyName))	output->add_definition(Type1Font::dFI, Type1Definition::make_string("FamilyName", s, "readonly def"));    if (String s = font->dict_string(Cff::oWeight))	output->add_definition(Type1Font::dFI, Type1Definition::make_string("Weight", s, "readonly def"));    double v;    if (font->dict_value(Cff::oIsFixedPitch, 0, &v))	output->add_definition(Type1Font::dFI, Type1Definition::make_literal("isFixedPitch", (v ? "true" : "false"), "def"));    add_number_def(output, Type1Font::dFI, "ItalicAngle", font, Cff::oItalicAngle);    add_number_def(output, Type1Font::dFI, "UnderlinePosition", font, Cff::oUnderlinePosition);    add_number_def(output, Type1Font::dFI, "UnderlineThickness", font, Cff::oUnderlineThickness);    if (output->first_dict_item(Type1Font::dFI) >= 0)	output->add_item(new Type1CopyItem("end readonly def"));    else {	int i = output->nitems() - 1;	output->set_item(i, new Type1CopyItem("% no FontInfo dict"));    }        // Encoding    output->add_item(font->type1_encoding_copy());    // other font dictionary entries    font->dict_value(Cff::oPaintType, 0, &v);    output->add_definition(Type1Font::dF, Type1Definition::make("PaintType", v, "def"));    output->add_definition(Type1Font::dF, Type1Definition::make("FontType", 1.0, "def"));    Vector<double> vec;    if (font->dict_value(Cff::oFontMatrix, vec) && vec.size() == 6) {	sa << '[' << vec[0] << ' ' << vec[1] << ' ' << vec[2] << ' ' << vec[3] << ' ' << vec[4] << ' ' << vec[5] << ']';	output->add_definition(Type1Font::dF, Type1Definition::make_literal("FontMatrix", sa.take_string(), "readonly def"));    } else	output->add_definition(Type1Font::dF, Type1Definition::make_literal("FontMatrix", "[0.001 0 0 0.001 0 0]", "readonly def"));    add_number_def(output, Type1Font::dF, "StrokeWidth", font, Cff::oStrokeWidth);    add_number_def(output, Type1Font::dF, "UniqueID", font, Cff::oUniqueID);    if (font->dict_value(Cff::oXUID, vec) && vec.size()) {	for (int i = 0; i < vec.size(); i++)	    sa << (i ? ' ' : '[') << vec[i];	sa << ']';	output->add_definition(Type1Font::dF, Type1Definition::make_literal("XUID", sa.take_string(), "readonly def"));    }    if (font->dict_value(Cff::oFontBBox, vec) && vec.size() == 4) {	sa << '{' << vec[0] << ' ' << vec[1] << ' ' << vec[2] << ' ' << vec[3] << '}';	output->add_definition(Type1Font::dF, Type1Definition::make_literal("FontBBox", sa.take_string(), "readonly def"));    } else	output->add_definition(Type1Font::dF, Type1Definition::make_literal("FontBBox", "{0 0 0 0}", "readonly def"));    // switch to eexec    output->add_item(new Type1CopyItem("currentdict end"));    output->add_item(new Type1CopyItem("currentfile eexec"));    output->add_item(new Type1EexecItem(true));    // Private dictionary    output->add_item(new Type1CopyItem("dup /Private 0 dict dup begin"));    output->add_definition(Type1Font::dP, Type1Definition::make_literal("-|", "{string currentfile exch readstring pop}", "executeonly def"));    output->set_charstring_definer(" -| ");    output->add_definition(Type1Font::dP, Type1Definition::make_literal("|-", "{noaccess def}", "executeonly def"));    output->add_definition(Type1Font::dP, Type1Definition::make_literal("|", "{noaccess put}", "executeonly def"));    add_delta_def(output, Type1Font::dP, "BlueValues", font, Cff::oBlueValues);    add_delta_def(output, Type1Font::dP, "OtherBlues", font, Cff::oOtherBlues);    add_delta_def(output, Type1Font::dP, "FamilyBlues", font, Cff::oFamilyBlues);    add_delta_def(output, Type1Font::dP, "FamilyOtherBlues", font, Cff::oFamilyOtherBlues);    add_number_def(output, Type1Font::dP, "BlueScale", font, Cff::oBlueScale);    add_number_def(output, Type1Font::dP, "BlueShift", font, Cff::oBlueShift);    add_number_def(output, Type1Font::dP, "BlueFuzz", font, Cff::oBlueFuzz);    if (font->dict_value(Cff::oStdHW, 0, &v))	output->add_definition(Type1Font::dP, Type1Definition::make_literal("StdHW", String("[") + String(v) + "]", "|-"));    if (font->dict_value(Cff::oStdVW, 0, &v))	output->add_definition(Type1Font::dP, Type1Definition::make_literal("StdVW", String("[") + String(v) + "]", "|-"));    add_delta_def(output, Type1Font::dP, "StemSnapH", font, Cff::oStemSnapH);    add_delta_def(output, Type1Font::dP, "StemSnapV", font, Cff::oStemSnapV);    if (font->dict_value(Cff::oForceBold, 0, &v))	output->add_definition(Type1Font::dP, Type1Definition::make_literal("ForceBold", (v ? "true" : "false"), "def"));    add_number_def(output, Type1Font::dP, "LanguageGroup", font, Cff::oLanguageGroup);    add_number_def(output, Type1Font::dP, "ExpansionFactor", font, Cff::oExpansionFactor);    add_number_def(output, Type1Font::dP, "UniqueID", font, Cff::oUniqueID);    output->add_definition(Type1Font::dP, Type1Definition::make_literal("MinFeature", "{16 16}", "|-"));    output->add_definition(Type1Font::dP, Type1Definition::make_literal("password", "5839", "def"));    output->add_definition(Type1Font::dP, Type1Definition::make_literal("lenIV", "0", "def"));    output->add_item(new Type1CopyItem(othersubrs_code));    // Subrs    sa << "/Subrs 4 array";    output->add_item(new Type1SubrGroupItem(output, true, sa.take_string()));    output->add_item(new Type1CopyItem("|-"));    // - first four Subrs have fixed definitions    // - 0: "3 0 callothersubr pop pop setcurrentpoint return"    output->set_subr(0, Type1Charstring(String::stable_string("\216\213\014\020\014\021\014\021\014\041\013", 11)), " |");    // - 1: "0 1 callothersubr return"    output->set_subr(1, Type1Charstring(String::stable_string("\213\214\020\014\013", 5)), " |");    // - 2: "0 2 callothersubr return"    output->set_subr(2, Type1Charstring(String::stable_string("\213\215\020\014\013", 5)), " |");    // - 3: "return"    output->set_subr(3, Type1Charstring(String::stable_string("\013", 1)), " |");    // - 4: "1 3 callothersubr pop callsubr return"    output->set_subr(4, Type1Charstring(String::stable_string("\214\216\014\020\014\021\012\013", 8)), " |");        // CharStrings    sa << "2 index /CharStrings " << font->nglyphs() << " dict dup begin";    output->add_item(new Type1SubrGroupItem(output, false, sa.take_string()));    // completion    output->add_item(new Type1CopyItem("end\n\end\n\readonly put\n\noaccess put\n\dup /FontName get exch definefont pop\n\mark currentfile closefile"));    output->add_item(new Type1EexecItem(false));    output->add_item(new Type1CopyItem("\0000000000000000000000000000000000000000000000000000000000000000\n\0000000000000000000000000000000000000000000000000000000000000000\n\0000000000000000000000000000000000000000000000000000000000000000\n\0000000000000000000000000000000000000000000000000000000000000000\n\0000000000000000000000000000000000000000000000000000000000000000\n\0000000000000000000000000000000000000000000000000000000000000000\n\0000000000000000000000000000000000000000000000000000000000000000\n\0000000000000000000000000000000000000000000000000000000000000000\n\cleartomark"));    // account for extra Private dict items: OtherSubrs, Subrs, CharStrings    output->add_dict_size(Type1Font::dPrivate, 3);    // add glyphs    MakeType1CharstringInterp maker(font, 5);    maker.run(output, " |-");        return output;}