makefont/cp1255.map000064400000010312150212222260007755 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+20AC Euro !82 U+201A quotesinglbase !83 U+0192 florin !84 U+201E quotedblbase !85 U+2026 ellipsis !86 U+2020 dagger !87 U+2021 daggerdbl !88 U+02C6 circumflex !89 U+2030 perthousand !8B U+2039 guilsinglleft !91 U+2018 quoteleft !92 U+2019 quoteright !93 U+201C quotedblleft !94 U+201D quotedblright !95 U+2022 bullet !96 U+2013 endash !97 U+2014 emdash !98 U+02DC tilde !99 U+2122 trademark !9B U+203A guilsinglright !A0 U+00A0 space !A1 U+00A1 exclamdown !A2 U+00A2 cent !A3 U+00A3 sterling !A4 U+20AA afii57636 !A5 U+00A5 yen !A6 U+00A6 brokenbar !A7 U+00A7 section !A8 U+00A8 dieresis !A9 U+00A9 copyright !AA U+00D7 multiply !AB U+00AB guillemotleft !AC U+00AC logicalnot !AD U+00AD sfthyphen !AE U+00AE registered !AF U+00AF macron !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+00B2 twosuperior !B3 U+00B3 threesuperior !B4 U+00B4 acute !B5 U+00B5 mu !B6 U+00B6 paragraph !B7 U+00B7 middot !B8 U+00B8 cedilla !B9 U+00B9 onesuperior !BA U+00F7 divide !BB U+00BB guillemotright !BC U+00BC onequarter !BD U+00BD onehalf !BE U+00BE threequarters !BF U+00BF questiondown !C0 U+05B0 afii57799 !C1 U+05B1 afii57801 !C2 U+05B2 afii57800 !C3 U+05B3 afii57802 !C4 U+05B4 afii57793 !C5 U+05B5 afii57794 !C6 U+05B6 afii57795 !C7 U+05B7 afii57798 !C8 U+05B8 afii57797 !C9 U+05B9 afii57806 !CB U+05BB afii57796 !CC U+05BC afii57807 !CD U+05BD afii57839 !CE U+05BE afii57645 !CF U+05BF afii57841 !D0 U+05C0 afii57842 !D1 U+05C1 afii57804 !D2 U+05C2 afii57803 !D3 U+05C3 afii57658 !D4 U+05F0 afii57716 !D5 U+05F1 afii57717 !D6 U+05F2 afii57718 !D7 U+05F3 gereshhebrew !D8 U+05F4 gershayimhebrew !E0 U+05D0 afii57664 !E1 U+05D1 afii57665 !E2 U+05D2 afii57666 !E3 U+05D3 afii57667 !E4 U+05D4 afii57668 !E5 U+05D5 afii57669 !E6 U+05D6 afii57670 !E7 U+05D7 afii57671 !E8 U+05D8 afii57672 !E9 U+05D9 afii57673 !EA U+05DA afii57674 !EB U+05DB afii57675 !EC U+05DC afii57676 !ED U+05DD afii57677 !EE U+05DE afii57678 !EF U+05DF afii57679 !F0 U+05E0 afii57680 !F1 U+05E1 afii57681 !F2 U+05E2 afii57682 !F3 U+05E3 afii57683 !F4 U+05E4 afii57684 !F5 U+05E5 afii57685 !F6 U+05E6 afii57686 !F7 U+05E7 afii57687 !F8 U+05E8 afii57688 !F9 U+05E9 afii57689 !FA U+05EA afii57690 !FD U+200E afii299 !FE U+200F afii300 makefont/iso-8859-11.map000064400000011121150212222260010461 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+0080 .notdef !81 U+0081 .notdef !82 U+0082 .notdef !83 U+0083 .notdef !84 U+0084 .notdef !85 U+0085 .notdef !86 U+0086 .notdef !87 U+0087 .notdef !88 U+0088 .notdef !89 U+0089 .notdef !8A U+008A .notdef !8B U+008B .notdef !8C U+008C .notdef !8D U+008D .notdef !8E U+008E .notdef !8F U+008F .notdef !90 U+0090 .notdef !91 U+0091 .notdef !92 U+0092 .notdef !93 U+0093 .notdef !94 U+0094 .notdef !95 U+0095 .notdef !96 U+0096 .notdef !97 U+0097 .notdef !98 U+0098 .notdef !99 U+0099 .notdef !9A U+009A .notdef !9B U+009B .notdef !9C U+009C .notdef !9D U+009D .notdef !9E U+009E .notdef !9F U+009F .notdef !A0 U+00A0 space !A1 U+0E01 kokaithai !A2 U+0E02 khokhaithai !A3 U+0E03 khokhuatthai !A4 U+0E04 khokhwaithai !A5 U+0E05 khokhonthai !A6 U+0E06 khorakhangthai !A7 U+0E07 ngonguthai !A8 U+0E08 chochanthai !A9 U+0E09 chochingthai !AA U+0E0A chochangthai !AB U+0E0B sosothai !AC U+0E0C chochoethai !AD U+0E0D yoyingthai !AE U+0E0E dochadathai !AF U+0E0F topatakthai !B0 U+0E10 thothanthai !B1 U+0E11 thonangmonthothai !B2 U+0E12 thophuthaothai !B3 U+0E13 nonenthai !B4 U+0E14 dodekthai !B5 U+0E15 totaothai !B6 U+0E16 thothungthai !B7 U+0E17 thothahanthai !B8 U+0E18 thothongthai !B9 U+0E19 nonuthai !BA U+0E1A bobaimaithai !BB U+0E1B poplathai !BC U+0E1C phophungthai !BD U+0E1D fofathai !BE U+0E1E phophanthai !BF U+0E1F fofanthai !C0 U+0E20 phosamphaothai !C1 U+0E21 momathai !C2 U+0E22 yoyakthai !C3 U+0E23 roruathai !C4 U+0E24 ruthai !C5 U+0E25 lolingthai !C6 U+0E26 luthai !C7 U+0E27 wowaenthai !C8 U+0E28 sosalathai !C9 U+0E29 sorusithai !CA U+0E2A sosuathai !CB U+0E2B hohipthai !CC U+0E2C lochulathai !CD U+0E2D oangthai !CE U+0E2E honokhukthai !CF U+0E2F paiyannoithai !D0 U+0E30 saraathai !D1 U+0E31 maihanakatthai !D2 U+0E32 saraaathai !D3 U+0E33 saraamthai !D4 U+0E34 saraithai !D5 U+0E35 saraiithai !D6 U+0E36 sarauethai !D7 U+0E37 saraueethai !D8 U+0E38 sarauthai !D9 U+0E39 sarauuthai !DA U+0E3A phinthuthai !DF U+0E3F bahtthai !E0 U+0E40 saraethai !E1 U+0E41 saraaethai !E2 U+0E42 saraothai !E3 U+0E43 saraaimaimuanthai !E4 U+0E44 saraaimaimalaithai !E5 U+0E45 lakkhangyaothai !E6 U+0E46 maiyamokthai !E7 U+0E47 maitaikhuthai !E8 U+0E48 maiekthai !E9 U+0E49 maithothai !EA U+0E4A maitrithai !EB U+0E4B maichattawathai !EC U+0E4C thanthakhatthai !ED U+0E4D nikhahitthai !EE U+0E4E yamakkanthai !EF U+0E4F fongmanthai !F0 U+0E50 zerothai !F1 U+0E51 onethai !F2 U+0E52 twothai !F3 U+0E53 threethai !F4 U+0E54 fourthai !F5 U+0E55 fivethai !F6 U+0E56 sixthai !F7 U+0E57 seventhai !F8 U+0E58 eightthai !F9 U+0E59 ninethai !FA U+0E5A angkhankhuthai !FB U+0E5B khomutthai makefont/ttfparser.php000064400000042201150212222260011064 0ustar00f = fopen($file, 'rb'); if(!$this->f) $this->Error('Can\'t open file: '.$file); } function __destruct() { if(is_resource($this->f)) fclose($this->f); } function Parse() { $this->ParseOffsetTable(); $this->ParseHead(); $this->ParseHhea(); $this->ParseMaxp(); $this->ParseHmtx(); $this->ParseLoca(); $this->ParseGlyf(); $this->ParseCmap(); $this->ParseName(); $this->ParseOS2(); $this->ParsePost(); } function ParseOffsetTable() { $version = $this->Read(4); if($version=='OTTO') $this->Error('OpenType fonts based on PostScript outlines are not supported'); if($version!="\x00\x01\x00\x00") $this->Error('Unrecognized file format'); $numTables = $this->ReadUShort(); $this->Skip(3*2); // searchRange, entrySelector, rangeShift $this->tables = array(); for($i=0;$i<$numTables;$i++) { $tag = $this->Read(4); $checkSum = $this->Read(4); $offset = $this->ReadULong(); $length = $this->ReadULong(4); $this->tables[$tag] = array('offset'=>$offset, 'length'=>$length, 'checkSum'=>$checkSum); } } function ParseHead() { $this->Seek('head'); $this->Skip(3*4); // version, fontRevision, checkSumAdjustment $magicNumber = $this->ReadULong(); if($magicNumber!=0x5F0F3CF5) $this->Error('Incorrect magic number'); $this->Skip(2); // flags $this->unitsPerEm = $this->ReadUShort(); $this->Skip(2*8); // created, modified $this->xMin = $this->ReadShort(); $this->yMin = $this->ReadShort(); $this->xMax = $this->ReadShort(); $this->yMax = $this->ReadShort(); $this->Skip(3*2); // macStyle, lowestRecPPEM, fontDirectionHint $this->indexToLocFormat = $this->ReadShort(); } function ParseHhea() { $this->Seek('hhea'); $this->Skip(4+15*2); $this->numberOfHMetrics = $this->ReadUShort(); } function ParseMaxp() { $this->Seek('maxp'); $this->Skip(4); $this->numGlyphs = $this->ReadUShort(); } function ParseHmtx() { $this->Seek('hmtx'); $this->glyphs = array(); for($i=0;$i<$this->numberOfHMetrics;$i++) { $advanceWidth = $this->ReadUShort(); $lsb = $this->ReadShort(); $this->glyphs[$i] = array('w'=>$advanceWidth, 'lsb'=>$lsb); } for($i=$this->numberOfHMetrics;$i<$this->numGlyphs;$i++) { $lsb = $this->ReadShort(); $this->glyphs[$i] = array('w'=>$advanceWidth, 'lsb'=>$lsb); } } function ParseLoca() { $this->Seek('loca'); $offsets = array(); if($this->indexToLocFormat==0) { // Short format for($i=0;$i<=$this->numGlyphs;$i++) $offsets[] = 2*$this->ReadUShort(); } else { // Long format for($i=0;$i<=$this->numGlyphs;$i++) $offsets[] = $this->ReadULong(); } for($i=0;$i<$this->numGlyphs;$i++) { $this->glyphs[$i]['offset'] = $offsets[$i]; $this->glyphs[$i]['length'] = $offsets[$i+1] - $offsets[$i]; } } function ParseGlyf() { $tableOffset = $this->tables['glyf']['offset']; foreach($this->glyphs as &$glyph) { if($glyph['length']>0) { fseek($this->f, $tableOffset+$glyph['offset'], SEEK_SET); if($this->ReadShort()<0) { // Composite glyph $this->Skip(4*2); // xMin, yMin, xMax, yMax $offset = 5*2; $a = array(); do { $flags = $this->ReadUShort(); $index = $this->ReadUShort(); $a[$offset+2] = $index; if($flags & 1) // ARG_1_AND_2_ARE_WORDS $skip = 2*2; else $skip = 2; if($flags & 8) // WE_HAVE_A_SCALE $skip += 2; elseif($flags & 64) // WE_HAVE_AN_X_AND_Y_SCALE $skip += 2*2; elseif($flags & 128) // WE_HAVE_A_TWO_BY_TWO $skip += 4*2; $this->Skip($skip); $offset += 2*2 + $skip; } while($flags & 32); // MORE_COMPONENTS $glyph['components'] = $a; } } } } function ParseCmap() { $this->Seek('cmap'); $this->Skip(2); // version $numTables = $this->ReadUShort(); $offset31 = 0; for($i=0;$i<$numTables;$i++) { $platformID = $this->ReadUShort(); $encodingID = $this->ReadUShort(); $offset = $this->ReadULong(); if($platformID==3 && $encodingID==1) $offset31 = $offset; } if($offset31==0) $this->Error('No Unicode encoding found'); $startCount = array(); $endCount = array(); $idDelta = array(); $idRangeOffset = array(); $this->chars = array(); fseek($this->f, $this->tables['cmap']['offset']+$offset31, SEEK_SET); $format = $this->ReadUShort(); if($format!=4) $this->Error('Unexpected subtable format: '.$format); $this->Skip(2*2); // length, language $segCount = $this->ReadUShort()/2; $this->Skip(3*2); // searchRange, entrySelector, rangeShift for($i=0;$i<$segCount;$i++) $endCount[$i] = $this->ReadUShort(); $this->Skip(2); // reservedPad for($i=0;$i<$segCount;$i++) $startCount[$i] = $this->ReadUShort(); for($i=0;$i<$segCount;$i++) $idDelta[$i] = $this->ReadShort(); $offset = ftell($this->f); for($i=0;$i<$segCount;$i++) $idRangeOffset[$i] = $this->ReadUShort(); for($i=0;$i<$segCount;$i++) { $c1 = $startCount[$i]; $c2 = $endCount[$i]; $d = $idDelta[$i]; $ro = $idRangeOffset[$i]; if($ro>0) fseek($this->f, $offset+2*$i+$ro, SEEK_SET); for($c=$c1;$c<=$c2;$c++) { if($c==0xFFFF) break; if($ro>0) { $gid = $this->ReadUShort(); if($gid>0) $gid += $d; } else $gid = $c+$d; if($gid>=65536) $gid -= 65536; if($gid>0) $this->chars[$c] = $gid; } } } function ParseName() { $this->Seek('name'); $tableOffset = $this->tables['name']['offset']; $this->postScriptName = ''; $this->Skip(2); // format $count = $this->ReadUShort(); $stringOffset = $this->ReadUShort(); for($i=0;$i<$count;$i++) { $this->Skip(3*2); // platformID, encodingID, languageID $nameID = $this->ReadUShort(); $length = $this->ReadUShort(); $offset = $this->ReadUShort(); if($nameID==6) { // PostScript name fseek($this->f, $tableOffset+$stringOffset+$offset, SEEK_SET); $s = $this->Read($length); $s = str_replace(chr(0), '', $s); $s = preg_replace('|[ \[\](){}<>/%]|', '', $s); $this->postScriptName = $s; break; } } if($this->postScriptName=='') $this->Error('PostScript name not found'); } function ParseOS2() { $this->Seek('OS/2'); $version = $this->ReadUShort(); $this->Skip(3*2); // xAvgCharWidth, usWeightClass, usWidthClass $fsType = $this->ReadUShort(); $this->embeddable = ($fsType!=2) && ($fsType & 0x200)==0; $this->Skip(11*2+10+4*4+4); $fsSelection = $this->ReadUShort(); $this->bold = ($fsSelection & 32)!=0; $this->Skip(2*2); // usFirstCharIndex, usLastCharIndex $this->typoAscender = $this->ReadShort(); $this->typoDescender = $this->ReadShort(); if($version>=2) { $this->Skip(3*2+2*4+2); $this->capHeight = $this->ReadShort(); } else $this->capHeight = 0; } function ParsePost() { $this->Seek('post'); $version = $this->ReadULong(); $this->italicAngle = $this->ReadShort(); $this->Skip(2); // Skip decimal part $this->underlinePosition = $this->ReadShort(); $this->underlineThickness = $this->ReadShort(); $this->isFixedPitch = ($this->ReadULong()!=0); if($version==0x20000) { // Extract glyph names $this->Skip(4*4); // min/max usage $this->Skip(2); // numberOfGlyphs $glyphNameIndex = array(); $names = array(); $numNames = 0; for($i=0;$i<$this->numGlyphs;$i++) { $index = $this->ReadUShort(); $glyphNameIndex[] = $index; if($index>=258 && $index-257>$numNames) $numNames = $index-257; } for($i=0;$i<$numNames;$i++) { $len = ord($this->Read(1)); $names[] = $this->Read($len); } foreach($glyphNameIndex as $i=>$index) { if($index>=258) $this->glyphs[$i]['name'] = $names[$index-258]; else $this->glyphs[$i]['name'] = $index; } $this->glyphNames = true; } else $this->glyphNames = false; } function Subset($chars) { /* $chars = array_keys($this->chars); $this->subsettedChars = $chars; $this->subsettedGlyphs = array(); for($i=0;$i<$this->numGlyphs;$i++) { $this->subsettedGlyphs[] = $i; $this->glyphs[$i]['ssid'] = $i; }*/ $this->AddGlyph(0); $this->subsettedChars = array(); foreach($chars as $char) { if(isset($this->chars[$char])) { $this->subsettedChars[] = $char; $this->AddGlyph($this->chars[$char]); } } } function AddGlyph($id) { if(!isset($this->glyphs[$id]['ssid'])) { $this->glyphs[$id]['ssid'] = count($this->subsettedGlyphs); $this->subsettedGlyphs[] = $id; if(isset($this->glyphs[$id]['components'])) { foreach($this->glyphs[$id]['components'] as $cid) $this->AddGlyph($cid); } } } function Build() { $this->BuildCmap(); $this->BuildHhea(); $this->BuildHmtx(); $this->BuildLoca(); $this->BuildGlyf(); $this->BuildMaxp(); $this->BuildPost(); return $this->BuildFont(); } function BuildCmap() { if(!isset($this->subsettedChars)) return; // Divide charset in contiguous segments $chars = $this->subsettedChars; sort($chars); $segments = array(); $segment = array($chars[0], $chars[0]); for($i=1;$i$segment[1]+1) { $segments[] = $segment; $segment = array($chars[$i], $chars[$i]); } else $segment[1]++; } $segments[] = $segment; $segments[] = array(0xFFFF, 0xFFFF); $segCount = count($segments); // Build a Format 4 subtable $startCount = array(); $endCount = array(); $idDelta = array(); $idRangeOffset = array(); $glyphIdArray = ''; for($i=0;$i<$segCount;$i++) { list($start, $end) = $segments[$i]; $startCount[] = $start; $endCount[] = $end; if($start!=$end) { // Segment with multiple chars $idDelta[] = 0; $idRangeOffset[] = strlen($glyphIdArray) + ($segCount-$i)*2; for($c=$start;$c<=$end;$c++) { $ssid = $this->glyphs[$this->chars[$c]]['ssid']; $glyphIdArray .= pack('n', $ssid); } } else { // Segment with a single char if($start<0xFFFF) $ssid = $this->glyphs[$this->chars[$start]]['ssid']; else $ssid = 0; $idDelta[] = $ssid - $start; $idRangeOffset[] = 0; } } $entrySelector = 0; $n = $segCount; while($n!=1) { $n = $n>>1; $entrySelector++; } $searchRange = (1<<$entrySelector)*2; $rangeShift = 2*$segCount - $searchRange; $cmap = pack('nnnn', 2*$segCount, $searchRange, $entrySelector, $rangeShift); foreach($endCount as $val) $cmap .= pack('n', $val); $cmap .= pack('n', 0); // reservedPad foreach($startCount as $val) $cmap .= pack('n', $val); foreach($idDelta as $val) $cmap .= pack('n', $val); foreach($idRangeOffset as $val) $cmap .= pack('n', $val); $cmap .= $glyphIdArray; $data = pack('nn', 0, 1); // version, numTables $data .= pack('nnN', 3, 1, 12); // platformID, encodingID, offset $data .= pack('nnn', 4, 6+strlen($cmap), 0); // format, length, language $data .= $cmap; $this->SetTable('cmap', $data); } function BuildHhea() { $this->LoadTable('hhea'); $numberOfHMetrics = count($this->subsettedGlyphs); $data = substr_replace($this->tables['hhea']['data'], pack('n',$numberOfHMetrics), 4+15*2, 2); $this->SetTable('hhea', $data); } function BuildHmtx() { $data = ''; foreach($this->subsettedGlyphs as $id) { $glyph = $this->glyphs[$id]; $data .= pack('nn', $glyph['w'], $glyph['lsb']); } $this->SetTable('hmtx', $data); } function BuildLoca() { $data = ''; $offset = 0; foreach($this->subsettedGlyphs as $id) { if($this->indexToLocFormat==0) $data .= pack('n', $offset/2); else $data .= pack('N', $offset); $offset += $this->glyphs[$id]['length']; } if($this->indexToLocFormat==0) $data .= pack('n', $offset/2); else $data .= pack('N', $offset); $this->SetTable('loca', $data); } function BuildGlyf() { $tableOffset = $this->tables['glyf']['offset']; $data = ''; foreach($this->subsettedGlyphs as $id) { $glyph = $this->glyphs[$id]; fseek($this->f, $tableOffset+$glyph['offset'], SEEK_SET); $glyph_data = $this->Read($glyph['length']); if(isset($glyph['components'])) { // Composite glyph foreach($glyph['components'] as $offset=>$cid) { $ssid = $this->glyphs[$cid]['ssid']; $glyph_data = substr_replace($glyph_data, pack('n',$ssid), $offset, 2); } } $data .= $glyph_data; } $this->SetTable('glyf', $data); } function BuildMaxp() { $this->LoadTable('maxp'); $numGlyphs = count($this->subsettedGlyphs); $data = substr_replace($this->tables['maxp']['data'], pack('n',$numGlyphs), 4, 2); $this->SetTable('maxp', $data); } function BuildPost() { $this->Seek('post'); if($this->glyphNames) { // Version 2.0 $numberOfGlyphs = count($this->subsettedGlyphs); $numNames = 0; $names = ''; $data = $this->Read(2*4+2*2+5*4); $data .= pack('n', $numberOfGlyphs); foreach($this->subsettedGlyphs as $id) { $name = $this->glyphs[$id]['name']; if(is_string($name)) { $data .= pack('n', 258+$numNames); $names .= chr(strlen($name)).$name; $numNames++; } else $data .= pack('n', $name); } $data .= $names; } else { // Version 3.0 $this->Skip(4); $data = "\x00\x03\x00\x00"; $data .= $this->Read(4+2*2+5*4); } $this->SetTable('post', $data); } function BuildFont() { $tags = array(); foreach(array('cmap', 'cvt ', 'fpgm', 'glyf', 'head', 'hhea', 'hmtx', 'loca', 'maxp', 'name', 'post', 'prep') as $tag) { if(isset($this->tables[$tag])) $tags[] = $tag; } $numTables = count($tags); $offset = 12 + 16*$numTables; foreach($tags as $tag) { if(!isset($this->tables[$tag]['data'])) $this->LoadTable($tag); $this->tables[$tag]['offset'] = $offset; $offset += strlen($this->tables[$tag]['data']); } // $this->tables['head']['data'] = substr_replace($this->tables['head']['data'], "\x00\x00\x00\x00", 8, 4); // Build offset table $entrySelector = 0; $n = $numTables; while($n!=1) { $n = $n>>1; $entrySelector++; } $searchRange = 16*(1<<$entrySelector); $rangeShift = 16*$numTables - $searchRange; $offsetTable = pack('nnnnnn', 1, 0, $numTables, $searchRange, $entrySelector, $rangeShift); foreach($tags as $tag) { $table = $this->tables[$tag]; $offsetTable .= $tag.$table['checkSum'].pack('NN', $table['offset'], $table['length']); } // Compute checkSumAdjustment (0xB1B0AFBA - font checkSum) $s = $this->CheckSum($offsetTable); foreach($tags as $tag) $s .= $this->tables[$tag]['checkSum']; $a = unpack('n2', $this->CheckSum($s)); $high = 0xB1B0 + ($a[1]^0xFFFF); $low = 0xAFBA + ($a[2]^0xFFFF) + 1; $checkSumAdjustment = pack('nn', $high+($low>>16), $low); $this->tables['head']['data'] = substr_replace($this->tables['head']['data'], $checkSumAdjustment, 8, 4); $font = $offsetTable; foreach($tags as $tag) $font .= $this->tables[$tag]['data']; return $font; } function LoadTable($tag) { $this->Seek($tag); $length = $this->tables[$tag]['length']; $n = $length % 4; if($n>0) $length += 4 - $n; $this->tables[$tag]['data'] = $this->Read($length); } function SetTable($tag, $data) { $length = strlen($data); $n = $length % 4; if($n>0) $data = str_pad($data, $length+4-$n, "\x00"); $this->tables[$tag]['data'] = $data; $this->tables[$tag]['length'] = $length; $this->tables[$tag]['checkSum'] = $this->CheckSum($data); } function Seek($tag) { if(!isset($this->tables[$tag])) $this->Error('Table not found: '.$tag); fseek($this->f, $this->tables[$tag]['offset'], SEEK_SET); } function Skip($n) { fseek($this->f, $n, SEEK_CUR); } function Read($n) { return $n>0 ? fread($this->f, $n) : ''; } function ReadUShort() { $a = unpack('nn', fread($this->f,2)); return $a['n']; } function ReadShort() { $a = unpack('nn', fread($this->f,2)); $v = $a['n']; if($v>=0x8000) $v -= 65536; return $v; } function ReadULong() { $a = unpack('NN', fread($this->f,4)); return $a['N']; } function CheckSum($s) { $n = strlen($s); $high = 0; $low = 0; for($i=0;$i<$n;$i+=4) { $high += (ord($s[$i])<<8) + ord($s[$i+1]); $low += (ord($s[$i+2])<<8) + ord($s[$i+3]); } return pack('nn', $high+($low>>16), $low); } function Error($msg) { throw new Exception($msg); } } ?> makefont/iso-8859-7.map000064400000010516150212222260010415 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+0080 .notdef !81 U+0081 .notdef !82 U+0082 .notdef !83 U+0083 .notdef !84 U+0084 .notdef !85 U+0085 .notdef !86 U+0086 .notdef !87 U+0087 .notdef !88 U+0088 .notdef !89 U+0089 .notdef !8A U+008A .notdef !8B U+008B .notdef !8C U+008C .notdef !8D U+008D .notdef !8E U+008E .notdef !8F U+008F .notdef !90 U+0090 .notdef !91 U+0091 .notdef !92 U+0092 .notdef !93 U+0093 .notdef !94 U+0094 .notdef !95 U+0095 .notdef !96 U+0096 .notdef !97 U+0097 .notdef !98 U+0098 .notdef !99 U+0099 .notdef !9A U+009A .notdef !9B U+009B .notdef !9C U+009C .notdef !9D U+009D .notdef !9E U+009E .notdef !9F U+009F .notdef !A0 U+00A0 space !A1 U+2018 quoteleft !A2 U+2019 quoteright !A3 U+00A3 sterling !A6 U+00A6 brokenbar !A7 U+00A7 section !A8 U+00A8 dieresis !A9 U+00A9 copyright !AB U+00AB guillemotleft !AC U+00AC logicalnot !AD U+00AD hyphen !AF U+2015 afii00208 !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+00B2 twosuperior !B3 U+00B3 threesuperior !B4 U+0384 tonos !B5 U+0385 dieresistonos !B6 U+0386 Alphatonos !B7 U+00B7 periodcentered !B8 U+0388 Epsilontonos !B9 U+0389 Etatonos !BA U+038A Iotatonos !BB U+00BB guillemotright !BC U+038C Omicrontonos !BD U+00BD onehalf !BE U+038E Upsilontonos !BF U+038F Omegatonos !C0 U+0390 iotadieresistonos !C1 U+0391 Alpha !C2 U+0392 Beta !C3 U+0393 Gamma !C4 U+0394 Delta !C5 U+0395 Epsilon !C6 U+0396 Zeta !C7 U+0397 Eta !C8 U+0398 Theta !C9 U+0399 Iota !CA U+039A Kappa !CB U+039B Lambda !CC U+039C Mu !CD U+039D Nu !CE U+039E Xi !CF U+039F Omicron !D0 U+03A0 Pi !D1 U+03A1 Rho !D3 U+03A3 Sigma !D4 U+03A4 Tau !D5 U+03A5 Upsilon !D6 U+03A6 Phi !D7 U+03A7 Chi !D8 U+03A8 Psi !D9 U+03A9 Omega !DA U+03AA Iotadieresis !DB U+03AB Upsilondieresis !DC U+03AC alphatonos !DD U+03AD epsilontonos !DE U+03AE etatonos !DF U+03AF iotatonos !E0 U+03B0 upsilondieresistonos !E1 U+03B1 alpha !E2 U+03B2 beta !E3 U+03B3 gamma !E4 U+03B4 delta !E5 U+03B5 epsilon !E6 U+03B6 zeta !E7 U+03B7 eta !E8 U+03B8 theta !E9 U+03B9 iota !EA U+03BA kappa !EB U+03BB lambda !EC U+03BC mu !ED U+03BD nu !EE U+03BE xi !EF U+03BF omicron !F0 U+03C0 pi !F1 U+03C1 rho !F2 U+03C2 sigma1 !F3 U+03C3 sigma !F4 U+03C4 tau !F5 U+03C5 upsilon !F6 U+03C6 phi !F7 U+03C7 chi !F8 U+03C8 psi !F9 U+03C9 omega !FA U+03CA iotadieresis !FB U+03CB upsilondieresis !FC U+03CC omicrontonos !FD U+03CD upsilontonos !FE U+03CE omegatonos makefont/iso-8859-15.map000064400000010743150212222260010476 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+0080 .notdef !81 U+0081 .notdef !82 U+0082 .notdef !83 U+0083 .notdef !84 U+0084 .notdef !85 U+0085 .notdef !86 U+0086 .notdef !87 U+0087 .notdef !88 U+0088 .notdef !89 U+0089 .notdef !8A U+008A .notdef !8B U+008B .notdef !8C U+008C .notdef !8D U+008D .notdef !8E U+008E .notdef !8F U+008F .notdef !90 U+0090 .notdef !91 U+0091 .notdef !92 U+0092 .notdef !93 U+0093 .notdef !94 U+0094 .notdef !95 U+0095 .notdef !96 U+0096 .notdef !97 U+0097 .notdef !98 U+0098 .notdef !99 U+0099 .notdef !9A U+009A .notdef !9B U+009B .notdef !9C U+009C .notdef !9D U+009D .notdef !9E U+009E .notdef !9F U+009F .notdef !A0 U+00A0 space !A1 U+00A1 exclamdown !A2 U+00A2 cent !A3 U+00A3 sterling !A4 U+20AC Euro !A5 U+00A5 yen !A6 U+0160 Scaron !A7 U+00A7 section !A8 U+0161 scaron !A9 U+00A9 copyright !AA U+00AA ordfeminine !AB U+00AB guillemotleft !AC U+00AC logicalnot !AD U+00AD hyphen !AE U+00AE registered !AF U+00AF macron !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+00B2 twosuperior !B3 U+00B3 threesuperior !B4 U+017D Zcaron !B5 U+00B5 mu !B6 U+00B6 paragraph !B7 U+00B7 periodcentered !B8 U+017E zcaron !B9 U+00B9 onesuperior !BA U+00BA ordmasculine !BB U+00BB guillemotright !BC U+0152 OE !BD U+0153 oe !BE U+0178 Ydieresis !BF U+00BF questiondown !C0 U+00C0 Agrave !C1 U+00C1 Aacute !C2 U+00C2 Acircumflex !C3 U+00C3 Atilde !C4 U+00C4 Adieresis !C5 U+00C5 Aring !C6 U+00C6 AE !C7 U+00C7 Ccedilla !C8 U+00C8 Egrave !C9 U+00C9 Eacute !CA U+00CA Ecircumflex !CB U+00CB Edieresis !CC U+00CC Igrave !CD U+00CD Iacute !CE U+00CE Icircumflex !CF U+00CF Idieresis !D0 U+00D0 Eth !D1 U+00D1 Ntilde !D2 U+00D2 Ograve !D3 U+00D3 Oacute !D4 U+00D4 Ocircumflex !D5 U+00D5 Otilde !D6 U+00D6 Odieresis !D7 U+00D7 multiply !D8 U+00D8 Oslash !D9 U+00D9 Ugrave !DA U+00DA Uacute !DB U+00DB Ucircumflex !DC U+00DC Udieresis !DD U+00DD Yacute !DE U+00DE Thorn !DF U+00DF germandbls !E0 U+00E0 agrave !E1 U+00E1 aacute !E2 U+00E2 acircumflex !E3 U+00E3 atilde !E4 U+00E4 adieresis !E5 U+00E5 aring !E6 U+00E6 ae !E7 U+00E7 ccedilla !E8 U+00E8 egrave !E9 U+00E9 eacute !EA U+00EA ecircumflex !EB U+00EB edieresis !EC U+00EC igrave !ED U+00ED iacute !EE U+00EE icircumflex !EF U+00EF idieresis !F0 U+00F0 eth !F1 U+00F1 ntilde !F2 U+00F2 ograve !F3 U+00F3 oacute !F4 U+00F4 ocircumflex !F5 U+00F5 otilde !F6 U+00F6 odieresis !F7 U+00F7 divide !F8 U+00F8 oslash !F9 U+00F9 ugrave !FA U+00FA uacute !FB U+00FB ucircumflex !FC U+00FC udieresis !FD U+00FD yacute !FE U+00FE thorn !FF U+00FF ydieresis makefont/iso-8859-1.map000064400000010775150212222260010416 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+0080 .notdef !81 U+0081 .notdef !82 U+0082 .notdef !83 U+0083 .notdef !84 U+0084 .notdef !85 U+0085 .notdef !86 U+0086 .notdef !87 U+0087 .notdef !88 U+0088 .notdef !89 U+0089 .notdef !8A U+008A .notdef !8B U+008B .notdef !8C U+008C .notdef !8D U+008D .notdef !8E U+008E .notdef !8F U+008F .notdef !90 U+0090 .notdef !91 U+0091 .notdef !92 U+0092 .notdef !93 U+0093 .notdef !94 U+0094 .notdef !95 U+0095 .notdef !96 U+0096 .notdef !97 U+0097 .notdef !98 U+0098 .notdef !99 U+0099 .notdef !9A U+009A .notdef !9B U+009B .notdef !9C U+009C .notdef !9D U+009D .notdef !9E U+009E .notdef !9F U+009F .notdef !A0 U+00A0 space !A1 U+00A1 exclamdown !A2 U+00A2 cent !A3 U+00A3 sterling !A4 U+00A4 currency !A5 U+00A5 yen !A6 U+00A6 brokenbar !A7 U+00A7 section !A8 U+00A8 dieresis !A9 U+00A9 copyright !AA U+00AA ordfeminine !AB U+00AB guillemotleft !AC U+00AC logicalnot !AD U+00AD hyphen !AE U+00AE registered !AF U+00AF macron !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+00B2 twosuperior !B3 U+00B3 threesuperior !B4 U+00B4 acute !B5 U+00B5 mu !B6 U+00B6 paragraph !B7 U+00B7 periodcentered !B8 U+00B8 cedilla !B9 U+00B9 onesuperior !BA U+00BA ordmasculine !BB U+00BB guillemotright !BC U+00BC onequarter !BD U+00BD onehalf !BE U+00BE threequarters !BF U+00BF questiondown !C0 U+00C0 Agrave !C1 U+00C1 Aacute !C2 U+00C2 Acircumflex !C3 U+00C3 Atilde !C4 U+00C4 Adieresis !C5 U+00C5 Aring !C6 U+00C6 AE !C7 U+00C7 Ccedilla !C8 U+00C8 Egrave !C9 U+00C9 Eacute !CA U+00CA Ecircumflex !CB U+00CB Edieresis !CC U+00CC Igrave !CD U+00CD Iacute !CE U+00CE Icircumflex !CF U+00CF Idieresis !D0 U+00D0 Eth !D1 U+00D1 Ntilde !D2 U+00D2 Ograve !D3 U+00D3 Oacute !D4 U+00D4 Ocircumflex !D5 U+00D5 Otilde !D6 U+00D6 Odieresis !D7 U+00D7 multiply !D8 U+00D8 Oslash !D9 U+00D9 Ugrave !DA U+00DA Uacute !DB U+00DB Ucircumflex !DC U+00DC Udieresis !DD U+00DD Yacute !DE U+00DE Thorn !DF U+00DF germandbls !E0 U+00E0 agrave !E1 U+00E1 aacute !E2 U+00E2 acircumflex !E3 U+00E3 atilde !E4 U+00E4 adieresis !E5 U+00E5 aring !E6 U+00E6 ae !E7 U+00E7 ccedilla !E8 U+00E8 egrave !E9 U+00E9 eacute !EA U+00EA ecircumflex !EB U+00EB edieresis !EC U+00EC igrave !ED U+00ED iacute !EE U+00EE icircumflex !EF U+00EF idieresis !F0 U+00F0 eth !F1 U+00F1 ntilde !F2 U+00F2 ograve !F3 U+00F3 oacute !F4 U+00F4 ocircumflex !F5 U+00F5 otilde !F6 U+00F6 odieresis !F7 U+00F7 divide !F8 U+00F8 oslash !F9 U+00F9 ugrave !FA U+00FA uacute !FB U+00FB ucircumflex !FC U+00FC udieresis !FD U+00FD yacute !FE U+00FE thorn !FF U+00FF ydieresis makefont/makefont.php000064400000024272150212222260010666 0ustar00$severity: "; echo "$txt
"; } } function Notice($txt) { Message($txt, 'Notice'); } function Warning($txt) { Message($txt, 'Warning'); } function Error($txt) { Message($txt, 'Error'); exit; } function LoadMap($enc) { $file = dirname(__FILE__).'/'.strtolower($enc).'.map'; $a = file($file); if(empty($a)) Error('Encoding not found: '.$enc); $map = array_fill(0, 256, array('uv'=>-1, 'name'=>'.notdef')); foreach($a as $line) { $e = explode(' ', rtrim($line)); $c = hexdec(substr($e[0],1)); $uv = hexdec(substr($e[1],2)); $name = $e[2]; $map[$c] = array('uv'=>$uv, 'name'=>$name); } return $map; } function GetInfoFromTrueType($file, $embed, $subset, $map) { // Return information from a TrueType font try { $ttf = new TTFParser($file); $ttf->Parse(); } catch(Exception $e) { Error($e->getMessage()); } if($embed) { if(!$ttf->embeddable) Error('Font license does not allow embedding'); if($subset) { $chars = array(); foreach($map as $v) { if($v['name']!='.notdef') $chars[] = $v['uv']; } $ttf->Subset($chars); $info['Data'] = $ttf->Build(); } else $info['Data'] = file_get_contents($file); $info['OriginalSize'] = strlen($info['Data']); } $k = 1000/$ttf->unitsPerEm; $info['FontName'] = $ttf->postScriptName; $info['Bold'] = $ttf->bold; $info['ItalicAngle'] = $ttf->italicAngle; $info['IsFixedPitch'] = $ttf->isFixedPitch; $info['Ascender'] = round($k*$ttf->typoAscender); $info['Descender'] = round($k*$ttf->typoDescender); $info['UnderlineThickness'] = round($k*$ttf->underlineThickness); $info['UnderlinePosition'] = round($k*$ttf->underlinePosition); $info['FontBBox'] = array(round($k*$ttf->xMin), round($k*$ttf->yMin), round($k*$ttf->xMax), round($k*$ttf->yMax)); $info['CapHeight'] = round($k*$ttf->capHeight); $info['MissingWidth'] = round($k*$ttf->glyphs[0]['w']); $widths = array_fill(0, 256, $info['MissingWidth']); foreach($map as $c=>$v) { if($v['name']!='.notdef') { if(isset($ttf->chars[$v['uv']])) { $id = $ttf->chars[$v['uv']]; $w = $ttf->glyphs[$id]['w']; $widths[$c] = round($k*$w); } else Warning('Character '.$v['name'].' is missing'); } } $info['Widths'] = $widths; return $info; } function GetInfoFromType1($file, $embed, $map) { // Return information from a Type1 font if($embed) { $f = fopen($file, 'rb'); if(!$f) Error('Can\'t open font file'); // Read first segment $a = unpack('Cmarker/Ctype/Vsize', fread($f,6)); if($a['marker']!=128) Error('Font file is not a valid binary Type1'); $size1 = $a['size']; $data = fread($f, $size1); // Read second segment $a = unpack('Cmarker/Ctype/Vsize', fread($f,6)); if($a['marker']!=128) Error('Font file is not a valid binary Type1'); $size2 = $a['size']; $data .= fread($f, $size2); fclose($f); $info['Data'] = $data; $info['Size1'] = $size1; $info['Size2'] = $size2; } $afm = substr($file, 0, -3).'afm'; if(!file_exists($afm)) Error('AFM font file not found: '.$afm); $a = file($afm); if(empty($a)) Error('AFM file empty or not readable'); foreach($a as $line) { $e = explode(' ', rtrim($line)); if(count($e)<2) continue; $entry = $e[0]; if($entry=='C') { $w = $e[4]; $name = $e[7]; $cw[$name] = $w; } elseif($entry=='FontName') $info['FontName'] = $e[1]; elseif($entry=='Weight') $info['Weight'] = $e[1]; elseif($entry=='ItalicAngle') $info['ItalicAngle'] = (int)$e[1]; elseif($entry=='Ascender') $info['Ascender'] = (int)$e[1]; elseif($entry=='Descender') $info['Descender'] = (int)$e[1]; elseif($entry=='UnderlineThickness') $info['UnderlineThickness'] = (int)$e[1]; elseif($entry=='UnderlinePosition') $info['UnderlinePosition'] = (int)$e[1]; elseif($entry=='IsFixedPitch') $info['IsFixedPitch'] = ($e[1]=='true'); elseif($entry=='FontBBox') $info['FontBBox'] = array((int)$e[1], (int)$e[2], (int)$e[3], (int)$e[4]); elseif($entry=='CapHeight') $info['CapHeight'] = (int)$e[1]; elseif($entry=='StdVW') $info['StdVW'] = (int)$e[1]; } if(!isset($info['FontName'])) Error('FontName missing in AFM file'); if(!isset($info['Ascender'])) $info['Ascender'] = $info['FontBBox'][3]; if(!isset($info['Descender'])) $info['Descender'] = $info['FontBBox'][1]; $info['Bold'] = isset($info['Weight']) && preg_match('/bold|black/i', $info['Weight']); if(isset($cw['.notdef'])) $info['MissingWidth'] = $cw['.notdef']; else $info['MissingWidth'] = 0; $widths = array_fill(0, 256, $info['MissingWidth']); foreach($map as $c=>$v) { if($v['name']!='.notdef') { if(isset($cw[$v['name']])) $widths[$c] = $cw[$v['name']]; else Warning('Character '.$v['name'].' is missing'); } } $info['Widths'] = $widths; return $info; } function MakeFontDescriptor($info) { // Ascent $fd = "array('Ascent'=>".$info['Ascender']; // Descent $fd .= ",'Descent'=>".$info['Descender']; // CapHeight if(!empty($info['CapHeight'])) $fd .= ",'CapHeight'=>".$info['CapHeight']; else $fd .= ",'CapHeight'=>".$info['Ascender']; // Flags $flags = 0; if($info['IsFixedPitch']) $flags += 1<<0; $flags += 1<<5; if($info['ItalicAngle']!=0) $flags += 1<<6; $fd .= ",'Flags'=>".$flags; // FontBBox $fbb = $info['FontBBox']; $fd .= ",'FontBBox'=>'[".$fbb[0].' '.$fbb[1].' '.$fbb[2].' '.$fbb[3]."]'"; // ItalicAngle $fd .= ",'ItalicAngle'=>".$info['ItalicAngle']; // StemV if(isset($info['StdVW'])) $stemv = $info['StdVW']; elseif($info['Bold']) $stemv = 120; else $stemv = 70; $fd .= ",'StemV'=>".$stemv; // MissingWidth $fd .= ",'MissingWidth'=>".$info['MissingWidth'].')'; return $fd; } function MakeWidthArray($widths) { $s = "array(\n\t"; for($c=0;$c<=255;$c++) { if(chr($c)=="'") $s .= "'\\''"; elseif(chr($c)=="\\") $s .= "'\\\\'"; elseif($c>=32 && $c<=126) $s .= "'".chr($c)."'"; else $s .= "chr($c)"; $s .= '=>'.$widths[$c]; if($c<255) $s .= ','; if(($c+1)%22==0) $s .= "\n\t"; } $s .= ')'; return $s; } function MakeFontEncoding($map) { // Build differences from reference encoding $ref = LoadMap('cp1252'); $s = ''; $last = 0; for($c=32;$c<=255;$c++) { if($map[$c]['name']!=$ref[$c]['name']) { if($c!=$last+1) $s .= $c.' '; $last = $c; $s .= '/'.$map[$c]['name'].' '; } } return rtrim($s); } function MakeUnicodeArray($map) { // Build mapping to Unicode values $ranges = array(); foreach($map as $c=>$v) { $uv = $v['uv']; if($uv!=-1) { if(isset($range)) { if($c==$range[1]+1 && $uv==$range[3]+1) { $range[1]++; $range[3]++; } else { $ranges[] = $range; $range = array($c, $c, $uv, $uv); } } else $range = array($c, $c, $uv, $uv); } } $ranges[] = $range; foreach($ranges as $range) { if(isset($s)) $s .= ','; else $s = 'array('; $s .= $range[0].'=>'; $nb = $range[1]-$range[0]+1; if($nb>1) $s .= 'array('.$range[2].','.$nb.')'; else $s .= $range[2]; } $s .= ')'; return $s; } function SaveToFile($file, $s, $mode) { $f = fopen($file, 'w'.$mode); if(!$f) Error('Can\'t write to file '.$file); fwrite($f, $s); fclose($f); } function MakeDefinitionFile($file, $type, $enc, $embed, $subset, $map, $info) { $s = "\n"; SaveToFile($file, $s, 't'); } function MakeFont($fontfile, $enc='cp1252', $embed=true, $subset=true) { // Generate a font definition file if(!file_exists($fontfile)) Error('Font file not found: '.$fontfile); $ext = strtolower(substr($fontfile,-3)); if($ext=='ttf' || $ext=='otf') $type = 'TrueType'; elseif($ext=='pfb') $type = 'Type1'; else Error('Unrecognized font file extension: '.$ext); $map = LoadMap($enc); if($type=='TrueType') $info = GetInfoFromTrueType($fontfile, $embed, $subset, $map); else $info = GetInfoFromType1($fontfile, $embed, $map); $basename = substr(basename($fontfile), 0, -4); if($embed) { if(function_exists('gzcompress')) { $file = $basename.'.z'; SaveToFile($file, gzcompress($info['Data']), 'b'); $info['File'] = $file; Message('Font file compressed: '.$file); } else { $info['File'] = basename($fontfile); $subset = false; Notice('Font file could not be compressed (zlib extension not available)'); } } MakeDefinitionFile($basename.'.php', $type, $enc, $embed, $subset, $map, $info); Message('Font definition file generated: '.$basename.'.php'); } if(PHP_SAPI=='cli') { // Command-line interface ini_set('log_errors', '0'); if($argc==1) die("Usage: php makefont.php fontfile [encoding] [embed] [subset]\n"); $fontfile = $argv[1]; if($argc>=3) $enc = $argv[2]; else $enc = 'cp1252'; if($argc>=4) $embed = ($argv[3]=='true' || $argv[3]=='1'); else $embed = true; if($argc>=5) $subset = ($argv[4]=='true' || $argv[4]=='1'); else $subset = true; MakeFont($fontfile, $enc, $embed, $subset); } ?> makefont/iso-8859-4.map000064400000010754150212222260010416 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+0080 .notdef !81 U+0081 .notdef !82 U+0082 .notdef !83 U+0083 .notdef !84 U+0084 .notdef !85 U+0085 .notdef !86 U+0086 .notdef !87 U+0087 .notdef !88 U+0088 .notdef !89 U+0089 .notdef !8A U+008A .notdef !8B U+008B .notdef !8C U+008C .notdef !8D U+008D .notdef !8E U+008E .notdef !8F U+008F .notdef !90 U+0090 .notdef !91 U+0091 .notdef !92 U+0092 .notdef !93 U+0093 .notdef !94 U+0094 .notdef !95 U+0095 .notdef !96 U+0096 .notdef !97 U+0097 .notdef !98 U+0098 .notdef !99 U+0099 .notdef !9A U+009A .notdef !9B U+009B .notdef !9C U+009C .notdef !9D U+009D .notdef !9E U+009E .notdef !9F U+009F .notdef !A0 U+00A0 space !A1 U+0104 Aogonek !A2 U+0138 kgreenlandic !A3 U+0156 Rcommaaccent !A4 U+00A4 currency !A5 U+0128 Itilde !A6 U+013B Lcommaaccent !A7 U+00A7 section !A8 U+00A8 dieresis !A9 U+0160 Scaron !AA U+0112 Emacron !AB U+0122 Gcommaaccent !AC U+0166 Tbar !AD U+00AD hyphen !AE U+017D Zcaron !AF U+00AF macron !B0 U+00B0 degree !B1 U+0105 aogonek !B2 U+02DB ogonek !B3 U+0157 rcommaaccent !B4 U+00B4 acute !B5 U+0129 itilde !B6 U+013C lcommaaccent !B7 U+02C7 caron !B8 U+00B8 cedilla !B9 U+0161 scaron !BA U+0113 emacron !BB U+0123 gcommaaccent !BC U+0167 tbar !BD U+014A Eng !BE U+017E zcaron !BF U+014B eng !C0 U+0100 Amacron !C1 U+00C1 Aacute !C2 U+00C2 Acircumflex !C3 U+00C3 Atilde !C4 U+00C4 Adieresis !C5 U+00C5 Aring !C6 U+00C6 AE !C7 U+012E Iogonek !C8 U+010C Ccaron !C9 U+00C9 Eacute !CA U+0118 Eogonek !CB U+00CB Edieresis !CC U+0116 Edotaccent !CD U+00CD Iacute !CE U+00CE Icircumflex !CF U+012A Imacron !D0 U+0110 Dcroat !D1 U+0145 Ncommaaccent !D2 U+014C Omacron !D3 U+0136 Kcommaaccent !D4 U+00D4 Ocircumflex !D5 U+00D5 Otilde !D6 U+00D6 Odieresis !D7 U+00D7 multiply !D8 U+00D8 Oslash !D9 U+0172 Uogonek !DA U+00DA Uacute !DB U+00DB Ucircumflex !DC U+00DC Udieresis !DD U+0168 Utilde !DE U+016A Umacron !DF U+00DF germandbls !E0 U+0101 amacron !E1 U+00E1 aacute !E2 U+00E2 acircumflex !E3 U+00E3 atilde !E4 U+00E4 adieresis !E5 U+00E5 aring !E6 U+00E6 ae !E7 U+012F iogonek !E8 U+010D ccaron !E9 U+00E9 eacute !EA U+0119 eogonek !EB U+00EB edieresis !EC U+0117 edotaccent !ED U+00ED iacute !EE U+00EE icircumflex !EF U+012B imacron !F0 U+0111 dcroat !F1 U+0146 ncommaaccent !F2 U+014D omacron !F3 U+0137 kcommaaccent !F4 U+00F4 ocircumflex !F5 U+00F5 otilde !F6 U+00F6 odieresis !F7 U+00F7 divide !F8 U+00F8 oslash !F9 U+0173 uogonek !FA U+00FA uacute !FB U+00FB ucircumflex !FC U+00FC udieresis !FD U+0169 utilde !FE U+016B umacron !FF U+02D9 dotaccent makefont/cp1257.map000064400000010522150212222260007762 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+20AC Euro !82 U+201A quotesinglbase !84 U+201E quotedblbase !85 U+2026 ellipsis !86 U+2020 dagger !87 U+2021 daggerdbl !89 U+2030 perthousand !8B U+2039 guilsinglleft !8D U+00A8 dieresis !8E U+02C7 caron !8F U+00B8 cedilla !91 U+2018 quoteleft !92 U+2019 quoteright !93 U+201C quotedblleft !94 U+201D quotedblright !95 U+2022 bullet !96 U+2013 endash !97 U+2014 emdash !99 U+2122 trademark !9B U+203A guilsinglright !9D U+00AF macron !9E U+02DB ogonek !A0 U+00A0 space !A2 U+00A2 cent !A3 U+00A3 sterling !A4 U+00A4 currency !A6 U+00A6 brokenbar !A7 U+00A7 section !A8 U+00D8 Oslash !A9 U+00A9 copyright !AA U+0156 Rcommaaccent !AB U+00AB guillemotleft !AC U+00AC logicalnot !AD U+00AD hyphen !AE U+00AE registered !AF U+00C6 AE !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+00B2 twosuperior !B3 U+00B3 threesuperior !B4 U+00B4 acute !B5 U+00B5 mu !B6 U+00B6 paragraph !B7 U+00B7 periodcentered !B8 U+00F8 oslash !B9 U+00B9 onesuperior !BA U+0157 rcommaaccent !BB U+00BB guillemotright !BC U+00BC onequarter !BD U+00BD onehalf !BE U+00BE threequarters !BF U+00E6 ae !C0 U+0104 Aogonek !C1 U+012E Iogonek !C2 U+0100 Amacron !C3 U+0106 Cacute !C4 U+00C4 Adieresis !C5 U+00C5 Aring !C6 U+0118 Eogonek !C7 U+0112 Emacron !C8 U+010C Ccaron !C9 U+00C9 Eacute !CA U+0179 Zacute !CB U+0116 Edotaccent !CC U+0122 Gcommaaccent !CD U+0136 Kcommaaccent !CE U+012A Imacron !CF U+013B Lcommaaccent !D0 U+0160 Scaron !D1 U+0143 Nacute !D2 U+0145 Ncommaaccent !D3 U+00D3 Oacute !D4 U+014C Omacron !D5 U+00D5 Otilde !D6 U+00D6 Odieresis !D7 U+00D7 multiply !D8 U+0172 Uogonek !D9 U+0141 Lslash !DA U+015A Sacute !DB U+016A Umacron !DC U+00DC Udieresis !DD U+017B Zdotaccent !DE U+017D Zcaron !DF U+00DF germandbls !E0 U+0105 aogonek !E1 U+012F iogonek !E2 U+0101 amacron !E3 U+0107 cacute !E4 U+00E4 adieresis !E5 U+00E5 aring !E6 U+0119 eogonek !E7 U+0113 emacron !E8 U+010D ccaron !E9 U+00E9 eacute !EA U+017A zacute !EB U+0117 edotaccent !EC U+0123 gcommaaccent !ED U+0137 kcommaaccent !EE U+012B imacron !EF U+013C lcommaaccent !F0 U+0161 scaron !F1 U+0144 nacute !F2 U+0146 ncommaaccent !F3 U+00F3 oacute !F4 U+014D omacron !F5 U+00F5 otilde !F6 U+00F6 odieresis !F7 U+00F7 divide !F8 U+0173 uogonek !F9 U+0142 lslash !FA U+015B sacute !FB U+016B umacron !FC U+00FC udieresis !FD U+017C zdotaccent !FE U+017E zcaron !FF U+02D9 dotaccent makefont/cp1251.map000064400000011250150212222260007753 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+0402 afii10051 !81 U+0403 afii10052 !82 U+201A quotesinglbase !83 U+0453 afii10100 !84 U+201E quotedblbase !85 U+2026 ellipsis !86 U+2020 dagger !87 U+2021 daggerdbl !88 U+20AC Euro !89 U+2030 perthousand !8A U+0409 afii10058 !8B U+2039 guilsinglleft !8C U+040A afii10059 !8D U+040C afii10061 !8E U+040B afii10060 !8F U+040F afii10145 !90 U+0452 afii10099 !91 U+2018 quoteleft !92 U+2019 quoteright !93 U+201C quotedblleft !94 U+201D quotedblright !95 U+2022 bullet !96 U+2013 endash !97 U+2014 emdash !99 U+2122 trademark !9A U+0459 afii10106 !9B U+203A guilsinglright !9C U+045A afii10107 !9D U+045C afii10109 !9E U+045B afii10108 !9F U+045F afii10193 !A0 U+00A0 space !A1 U+040E afii10062 !A2 U+045E afii10110 !A3 U+0408 afii10057 !A4 U+00A4 currency !A5 U+0490 afii10050 !A6 U+00A6 brokenbar !A7 U+00A7 section !A8 U+0401 afii10023 !A9 U+00A9 copyright !AA U+0404 afii10053 !AB U+00AB guillemotleft !AC U+00AC logicalnot !AD U+00AD hyphen !AE U+00AE registered !AF U+0407 afii10056 !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+0406 afii10055 !B3 U+0456 afii10103 !B4 U+0491 afii10098 !B5 U+00B5 mu !B6 U+00B6 paragraph !B7 U+00B7 periodcentered !B8 U+0451 afii10071 !B9 U+2116 afii61352 !BA U+0454 afii10101 !BB U+00BB guillemotright !BC U+0458 afii10105 !BD U+0405 afii10054 !BE U+0455 afii10102 !BF U+0457 afii10104 !C0 U+0410 afii10017 !C1 U+0411 afii10018 !C2 U+0412 afii10019 !C3 U+0413 afii10020 !C4 U+0414 afii10021 !C5 U+0415 afii10022 !C6 U+0416 afii10024 !C7 U+0417 afii10025 !C8 U+0418 afii10026 !C9 U+0419 afii10027 !CA U+041A afii10028 !CB U+041B afii10029 !CC U+041C afii10030 !CD U+041D afii10031 !CE U+041E afii10032 !CF U+041F afii10033 !D0 U+0420 afii10034 !D1 U+0421 afii10035 !D2 U+0422 afii10036 !D3 U+0423 afii10037 !D4 U+0424 afii10038 !D5 U+0425 afii10039 !D6 U+0426 afii10040 !D7 U+0427 afii10041 !D8 U+0428 afii10042 !D9 U+0429 afii10043 !DA U+042A afii10044 !DB U+042B afii10045 !DC U+042C afii10046 !DD U+042D afii10047 !DE U+042E afii10048 !DF U+042F afii10049 !E0 U+0430 afii10065 !E1 U+0431 afii10066 !E2 U+0432 afii10067 !E3 U+0433 afii10068 !E4 U+0434 afii10069 !E5 U+0435 afii10070 !E6 U+0436 afii10072 !E7 U+0437 afii10073 !E8 U+0438 afii10074 !E9 U+0439 afii10075 !EA U+043A afii10076 !EB U+043B afii10077 !EC U+043C afii10078 !ED U+043D afii10079 !EE U+043E afii10080 !EF U+043F afii10081 !F0 U+0440 afii10082 !F1 U+0441 afii10083 !F2 U+0442 afii10084 !F3 U+0443 afii10085 !F4 U+0444 afii10086 !F5 U+0445 afii10087 !F6 U+0446 afii10088 !F7 U+0447 afii10089 !F8 U+0448 afii10090 !F9 U+0449 afii10091 !FA U+044A afii10092 !FB U+044B afii10093 !FC U+044C afii10094 !FD U+044D afii10095 !FE U+044E afii10096 !FF U+044F afii10097 makefont/koi8-u.map000064400000011203150212222260010152 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+2500 SF100000 !81 U+2502 SF110000 !82 U+250C SF010000 !83 U+2510 SF030000 !84 U+2514 SF020000 !85 U+2518 SF040000 !86 U+251C SF080000 !87 U+2524 SF090000 !88 U+252C SF060000 !89 U+2534 SF070000 !8A U+253C SF050000 !8B U+2580 upblock !8C U+2584 dnblock !8D U+2588 block !8E U+258C lfblock !8F U+2590 rtblock !90 U+2591 ltshade !91 U+2592 shade !92 U+2593 dkshade !93 U+2320 integraltp !94 U+25A0 filledbox !95 U+2022 bullet !96 U+221A radical !97 U+2248 approxequal !98 U+2264 lessequal !99 U+2265 greaterequal !9A U+00A0 space !9B U+2321 integralbt !9C U+00B0 degree !9D U+00B2 twosuperior !9E U+00B7 periodcentered !9F U+00F7 divide !A0 U+2550 SF430000 !A1 U+2551 SF240000 !A2 U+2552 SF510000 !A3 U+0451 afii10071 !A4 U+0454 afii10101 !A5 U+2554 SF390000 !A6 U+0456 afii10103 !A7 U+0457 afii10104 !A8 U+2557 SF250000 !A9 U+2558 SF500000 !AA U+2559 SF490000 !AB U+255A SF380000 !AC U+255B SF280000 !AD U+0491 afii10098 !AE U+255D SF260000 !AF U+255E SF360000 !B0 U+255F SF370000 !B1 U+2560 SF420000 !B2 U+2561 SF190000 !B3 U+0401 afii10023 !B4 U+0404 afii10053 !B5 U+2563 SF230000 !B6 U+0406 afii10055 !B7 U+0407 afii10056 !B8 U+2566 SF410000 !B9 U+2567 SF450000 !BA U+2568 SF460000 !BB U+2569 SF400000 !BC U+256A SF540000 !BD U+0490 afii10050 !BE U+256C SF440000 !BF U+00A9 copyright !C0 U+044E afii10096 !C1 U+0430 afii10065 !C2 U+0431 afii10066 !C3 U+0446 afii10088 !C4 U+0434 afii10069 !C5 U+0435 afii10070 !C6 U+0444 afii10086 !C7 U+0433 afii10068 !C8 U+0445 afii10087 !C9 U+0438 afii10074 !CA U+0439 afii10075 !CB U+043A afii10076 !CC U+043B afii10077 !CD U+043C afii10078 !CE U+043D afii10079 !CF U+043E afii10080 !D0 U+043F afii10081 !D1 U+044F afii10097 !D2 U+0440 afii10082 !D3 U+0441 afii10083 !D4 U+0442 afii10084 !D5 U+0443 afii10085 !D6 U+0436 afii10072 !D7 U+0432 afii10067 !D8 U+044C afii10094 !D9 U+044B afii10093 !DA U+0437 afii10073 !DB U+0448 afii10090 !DC U+044D afii10095 !DD U+0449 afii10091 !DE U+0447 afii10089 !DF U+044A afii10092 !E0 U+042E afii10048 !E1 U+0410 afii10017 !E2 U+0411 afii10018 !E3 U+0426 afii10040 !E4 U+0414 afii10021 !E5 U+0415 afii10022 !E6 U+0424 afii10038 !E7 U+0413 afii10020 !E8 U+0425 afii10039 !E9 U+0418 afii10026 !EA U+0419 afii10027 !EB U+041A afii10028 !EC U+041B afii10029 !ED U+041C afii10030 !EE U+041D afii10031 !EF U+041E afii10032 !F0 U+041F afii10033 !F1 U+042F afii10049 !F2 U+0420 afii10034 !F3 U+0421 afii10035 !F4 U+0422 afii10036 !F5 U+0423 afii10037 !F6 U+0416 afii10024 !F7 U+0412 afii10019 !F8 U+042C afii10046 !F9 U+042B afii10045 !FA U+0417 afii10025 !FB U+0428 afii10042 !FC U+042D afii10047 !FD U+0429 afii10043 !FE U+0427 afii10041 !FF U+042A afii10044 makefont/koi8-r.map000064400000011203150212222260010147 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+2500 SF100000 !81 U+2502 SF110000 !82 U+250C SF010000 !83 U+2510 SF030000 !84 U+2514 SF020000 !85 U+2518 SF040000 !86 U+251C SF080000 !87 U+2524 SF090000 !88 U+252C SF060000 !89 U+2534 SF070000 !8A U+253C SF050000 !8B U+2580 upblock !8C U+2584 dnblock !8D U+2588 block !8E U+258C lfblock !8F U+2590 rtblock !90 U+2591 ltshade !91 U+2592 shade !92 U+2593 dkshade !93 U+2320 integraltp !94 U+25A0 filledbox !95 U+2219 periodcentered !96 U+221A radical !97 U+2248 approxequal !98 U+2264 lessequal !99 U+2265 greaterequal !9A U+00A0 space !9B U+2321 integralbt !9C U+00B0 degree !9D U+00B2 twosuperior !9E U+00B7 periodcentered !9F U+00F7 divide !A0 U+2550 SF430000 !A1 U+2551 SF240000 !A2 U+2552 SF510000 !A3 U+0451 afii10071 !A4 U+2553 SF520000 !A5 U+2554 SF390000 !A6 U+2555 SF220000 !A7 U+2556 SF210000 !A8 U+2557 SF250000 !A9 U+2558 SF500000 !AA U+2559 SF490000 !AB U+255A SF380000 !AC U+255B SF280000 !AD U+255C SF270000 !AE U+255D SF260000 !AF U+255E SF360000 !B0 U+255F SF370000 !B1 U+2560 SF420000 !B2 U+2561 SF190000 !B3 U+0401 afii10023 !B4 U+2562 SF200000 !B5 U+2563 SF230000 !B6 U+2564 SF470000 !B7 U+2565 SF480000 !B8 U+2566 SF410000 !B9 U+2567 SF450000 !BA U+2568 SF460000 !BB U+2569 SF400000 !BC U+256A SF540000 !BD U+256B SF530000 !BE U+256C SF440000 !BF U+00A9 copyright !C0 U+044E afii10096 !C1 U+0430 afii10065 !C2 U+0431 afii10066 !C3 U+0446 afii10088 !C4 U+0434 afii10069 !C5 U+0435 afii10070 !C6 U+0444 afii10086 !C7 U+0433 afii10068 !C8 U+0445 afii10087 !C9 U+0438 afii10074 !CA U+0439 afii10075 !CB U+043A afii10076 !CC U+043B afii10077 !CD U+043C afii10078 !CE U+043D afii10079 !CF U+043E afii10080 !D0 U+043F afii10081 !D1 U+044F afii10097 !D2 U+0440 afii10082 !D3 U+0441 afii10083 !D4 U+0442 afii10084 !D5 U+0443 afii10085 !D6 U+0436 afii10072 !D7 U+0432 afii10067 !D8 U+044C afii10094 !D9 U+044B afii10093 !DA U+0437 afii10073 !DB U+0448 afii10090 !DC U+044D afii10095 !DD U+0449 afii10091 !DE U+0447 afii10089 !DF U+044A afii10092 !E0 U+042E afii10048 !E1 U+0410 afii10017 !E2 U+0411 afii10018 !E3 U+0426 afii10040 !E4 U+0414 afii10021 !E5 U+0415 afii10022 !E6 U+0424 afii10038 !E7 U+0413 afii10020 !E8 U+0425 afii10039 !E9 U+0418 afii10026 !EA U+0419 afii10027 !EB U+041A afii10028 !EC U+041B afii10029 !ED U+041C afii10030 !EE U+041D afii10031 !EF U+041E afii10032 !F0 U+041F afii10033 !F1 U+042F afii10049 !F2 U+0420 afii10034 !F3 U+0421 afii10035 !F4 U+0422 afii10036 !F5 U+0423 afii10037 !F6 U+0416 afii10024 !F7 U+0412 afii10019 !F8 U+042C afii10046 !F9 U+042B afii10045 !FA U+0417 afii10025 !FB U+0428 afii10042 !FC U+042D afii10047 !FD U+0429 afii10043 !FE U+0427 afii10041 !FF U+042A afii10044 makefont/cp1252.map000064400000010675150212222260007766 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+20AC Euro !82 U+201A quotesinglbase !83 U+0192 florin !84 U+201E quotedblbase !85 U+2026 ellipsis !86 U+2020 dagger !87 U+2021 daggerdbl !88 U+02C6 circumflex !89 U+2030 perthousand !8A U+0160 Scaron !8B U+2039 guilsinglleft !8C U+0152 OE !8E U+017D Zcaron !91 U+2018 quoteleft !92 U+2019 quoteright !93 U+201C quotedblleft !94 U+201D quotedblright !95 U+2022 bullet !96 U+2013 endash !97 U+2014 emdash !98 U+02DC tilde !99 U+2122 trademark !9A U+0161 scaron !9B U+203A guilsinglright !9C U+0153 oe !9E U+017E zcaron !9F U+0178 Ydieresis !A0 U+00A0 space !A1 U+00A1 exclamdown !A2 U+00A2 cent !A3 U+00A3 sterling !A4 U+00A4 currency !A5 U+00A5 yen !A6 U+00A6 brokenbar !A7 U+00A7 section !A8 U+00A8 dieresis !A9 U+00A9 copyright !AA U+00AA ordfeminine !AB U+00AB guillemotleft !AC U+00AC logicalnot !AD U+00AD hyphen !AE U+00AE registered !AF U+00AF macron !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+00B2 twosuperior !B3 U+00B3 threesuperior !B4 U+00B4 acute !B5 U+00B5 mu !B6 U+00B6 paragraph !B7 U+00B7 periodcentered !B8 U+00B8 cedilla !B9 U+00B9 onesuperior !BA U+00BA ordmasculine !BB U+00BB guillemotright !BC U+00BC onequarter !BD U+00BD onehalf !BE U+00BE threequarters !BF U+00BF questiondown !C0 U+00C0 Agrave !C1 U+00C1 Aacute !C2 U+00C2 Acircumflex !C3 U+00C3 Atilde !C4 U+00C4 Adieresis !C5 U+00C5 Aring !C6 U+00C6 AE !C7 U+00C7 Ccedilla !C8 U+00C8 Egrave !C9 U+00C9 Eacute !CA U+00CA Ecircumflex !CB U+00CB Edieresis !CC U+00CC Igrave !CD U+00CD Iacute !CE U+00CE Icircumflex !CF U+00CF Idieresis !D0 U+00D0 Eth !D1 U+00D1 Ntilde !D2 U+00D2 Ograve !D3 U+00D3 Oacute !D4 U+00D4 Ocircumflex !D5 U+00D5 Otilde !D6 U+00D6 Odieresis !D7 U+00D7 multiply !D8 U+00D8 Oslash !D9 U+00D9 Ugrave !DA U+00DA Uacute !DB U+00DB Ucircumflex !DC U+00DC Udieresis !DD U+00DD Yacute !DE U+00DE Thorn !DF U+00DF germandbls !E0 U+00E0 agrave !E1 U+00E1 aacute !E2 U+00E2 acircumflex !E3 U+00E3 atilde !E4 U+00E4 adieresis !E5 U+00E5 aring !E6 U+00E6 ae !E7 U+00E7 ccedilla !E8 U+00E8 egrave !E9 U+00E9 eacute !EA U+00EA ecircumflex !EB U+00EB edieresis !EC U+00EC igrave !ED U+00ED iacute !EE U+00EE icircumflex !EF U+00EF idieresis !F0 U+00F0 eth !F1 U+00F1 ntilde !F2 U+00F2 ograve !F3 U+00F3 oacute !F4 U+00F4 ocircumflex !F5 U+00F5 otilde !F6 U+00F6 odieresis !F7 U+00F7 divide !F8 U+00F8 oslash !F9 U+00F9 ugrave !FA U+00FA uacute !FB U+00FB ucircumflex !FC U+00FC udieresis !FD U+00FD yacute !FE U+00FE thorn !FF U+00FF ydieresis makefont/iso-8859-16.map000064400000011021150212222260010465 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+0080 .notdef !81 U+0081 .notdef !82 U+0082 .notdef !83 U+0083 .notdef !84 U+0084 .notdef !85 U+0085 .notdef !86 U+0086 .notdef !87 U+0087 .notdef !88 U+0088 .notdef !89 U+0089 .notdef !8A U+008A .notdef !8B U+008B .notdef !8C U+008C .notdef !8D U+008D .notdef !8E U+008E .notdef !8F U+008F .notdef !90 U+0090 .notdef !91 U+0091 .notdef !92 U+0092 .notdef !93 U+0093 .notdef !94 U+0094 .notdef !95 U+0095 .notdef !96 U+0096 .notdef !97 U+0097 .notdef !98 U+0098 .notdef !99 U+0099 .notdef !9A U+009A .notdef !9B U+009B .notdef !9C U+009C .notdef !9D U+009D .notdef !9E U+009E .notdef !9F U+009F .notdef !A0 U+00A0 space !A1 U+0104 Aogonek !A2 U+0105 aogonek !A3 U+0141 Lslash !A4 U+20AC Euro !A5 U+201E quotedblbase !A6 U+0160 Scaron !A7 U+00A7 section !A8 U+0161 scaron !A9 U+00A9 copyright !AA U+0218 Scommaaccent !AB U+00AB guillemotleft !AC U+0179 Zacute !AD U+00AD hyphen !AE U+017A zacute !AF U+017B Zdotaccent !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+010C Ccaron !B3 U+0142 lslash !B4 U+017D Zcaron !B5 U+201D quotedblright !B6 U+00B6 paragraph !B7 U+00B7 periodcentered !B8 U+017E zcaron !B9 U+010D ccaron !BA U+0219 scommaaccent !BB U+00BB guillemotright !BC U+0152 OE !BD U+0153 oe !BE U+0178 Ydieresis !BF U+017C zdotaccent !C0 U+00C0 Agrave !C1 U+00C1 Aacute !C2 U+00C2 Acircumflex !C3 U+0102 Abreve !C4 U+00C4 Adieresis !C5 U+0106 Cacute !C6 U+00C6 AE !C7 U+00C7 Ccedilla !C8 U+00C8 Egrave !C9 U+00C9 Eacute !CA U+00CA Ecircumflex !CB U+00CB Edieresis !CC U+00CC Igrave !CD U+00CD Iacute !CE U+00CE Icircumflex !CF U+00CF Idieresis !D0 U+0110 Dcroat !D1 U+0143 Nacute !D2 U+00D2 Ograve !D3 U+00D3 Oacute !D4 U+00D4 Ocircumflex !D5 U+0150 Ohungarumlaut !D6 U+00D6 Odieresis !D7 U+015A Sacute !D8 U+0170 Uhungarumlaut !D9 U+00D9 Ugrave !DA U+00DA Uacute !DB U+00DB Ucircumflex !DC U+00DC Udieresis !DD U+0118 Eogonek !DE U+021A Tcommaaccent !DF U+00DF germandbls !E0 U+00E0 agrave !E1 U+00E1 aacute !E2 U+00E2 acircumflex !E3 U+0103 abreve !E4 U+00E4 adieresis !E5 U+0107 cacute !E6 U+00E6 ae !E7 U+00E7 ccedilla !E8 U+00E8 egrave !E9 U+00E9 eacute !EA U+00EA ecircumflex !EB U+00EB edieresis !EC U+00EC igrave !ED U+00ED iacute !EE U+00EE icircumflex !EF U+00EF idieresis !F0 U+0111 dcroat !F1 U+0144 nacute !F2 U+00F2 ograve !F3 U+00F3 oacute !F4 U+00F4 ocircumflex !F5 U+0151 ohungarumlaut !F6 U+00F6 odieresis !F7 U+015B sacute !F8 U+0171 uhungarumlaut !F9 U+00F9 ugrave !FA U+00FA uacute !FB U+00FB ucircumflex !FC U+00FC udieresis !FD U+0119 eogonek !FE U+021B tcommaaccent !FF U+00FF ydieresis makefont/cp1250.map000064400000010702150212222260007753 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+20AC Euro !82 U+201A quotesinglbase !84 U+201E quotedblbase !85 U+2026 ellipsis !86 U+2020 dagger !87 U+2021 daggerdbl !89 U+2030 perthousand !8A U+0160 Scaron !8B U+2039 guilsinglleft !8C U+015A Sacute !8D U+0164 Tcaron !8E U+017D Zcaron !8F U+0179 Zacute !91 U+2018 quoteleft !92 U+2019 quoteright !93 U+201C quotedblleft !94 U+201D quotedblright !95 U+2022 bullet !96 U+2013 endash !97 U+2014 emdash !99 U+2122 trademark !9A U+0161 scaron !9B U+203A guilsinglright !9C U+015B sacute !9D U+0165 tcaron !9E U+017E zcaron !9F U+017A zacute !A0 U+00A0 space !A1 U+02C7 caron !A2 U+02D8 breve !A3 U+0141 Lslash !A4 U+00A4 currency !A5 U+0104 Aogonek !A6 U+00A6 brokenbar !A7 U+00A7 section !A8 U+00A8 dieresis !A9 U+00A9 copyright !AA U+015E Scedilla !AB U+00AB guillemotleft !AC U+00AC logicalnot !AD U+00AD hyphen !AE U+00AE registered !AF U+017B Zdotaccent !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+02DB ogonek !B3 U+0142 lslash !B4 U+00B4 acute !B5 U+00B5 mu !B6 U+00B6 paragraph !B7 U+00B7 periodcentered !B8 U+00B8 cedilla !B9 U+0105 aogonek !BA U+015F scedilla !BB U+00BB guillemotright !BC U+013D Lcaron !BD U+02DD hungarumlaut !BE U+013E lcaron !BF U+017C zdotaccent !C0 U+0154 Racute !C1 U+00C1 Aacute !C2 U+00C2 Acircumflex !C3 U+0102 Abreve !C4 U+00C4 Adieresis !C5 U+0139 Lacute !C6 U+0106 Cacute !C7 U+00C7 Ccedilla !C8 U+010C Ccaron !C9 U+00C9 Eacute !CA U+0118 Eogonek !CB U+00CB Edieresis !CC U+011A Ecaron !CD U+00CD Iacute !CE U+00CE Icircumflex !CF U+010E Dcaron !D0 U+0110 Dcroat !D1 U+0143 Nacute !D2 U+0147 Ncaron !D3 U+00D3 Oacute !D4 U+00D4 Ocircumflex !D5 U+0150 Ohungarumlaut !D6 U+00D6 Odieresis !D7 U+00D7 multiply !D8 U+0158 Rcaron !D9 U+016E Uring !DA U+00DA Uacute !DB U+0170 Uhungarumlaut !DC U+00DC Udieresis !DD U+00DD Yacute !DE U+0162 Tcommaaccent !DF U+00DF germandbls !E0 U+0155 racute !E1 U+00E1 aacute !E2 U+00E2 acircumflex !E3 U+0103 abreve !E4 U+00E4 adieresis !E5 U+013A lacute !E6 U+0107 cacute !E7 U+00E7 ccedilla !E8 U+010D ccaron !E9 U+00E9 eacute !EA U+0119 eogonek !EB U+00EB edieresis !EC U+011B ecaron !ED U+00ED iacute !EE U+00EE icircumflex !EF U+010F dcaron !F0 U+0111 dcroat !F1 U+0144 nacute !F2 U+0148 ncaron !F3 U+00F3 oacute !F4 U+00F4 ocircumflex !F5 U+0151 ohungarumlaut !F6 U+00F6 odieresis !F7 U+00F7 divide !F8 U+0159 rcaron !F9 U+016F uring !FA U+00FA uacute !FB U+0171 uhungarumlaut !FC U+00FC udieresis !FD U+00FD yacute !FE U+0163 tcommaaccent !FF U+02D9 dotaccent makefont/iso-8859-9.map000064400000011017150212222260010414 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+0080 .notdef !81 U+0081 .notdef !82 U+0082 .notdef !83 U+0083 .notdef !84 U+0084 .notdef !85 U+0085 .notdef !86 U+0086 .notdef !87 U+0087 .notdef !88 U+0088 .notdef !89 U+0089 .notdef !8A U+008A .notdef !8B U+008B .notdef !8C U+008C .notdef !8D U+008D .notdef !8E U+008E .notdef !8F U+008F .notdef !90 U+0090 .notdef !91 U+0091 .notdef !92 U+0092 .notdef !93 U+0093 .notdef !94 U+0094 .notdef !95 U+0095 .notdef !96 U+0096 .notdef !97 U+0097 .notdef !98 U+0098 .notdef !99 U+0099 .notdef !9A U+009A .notdef !9B U+009B .notdef !9C U+009C .notdef !9D U+009D .notdef !9E U+009E .notdef !9F U+009F .notdef !A0 U+00A0 space !A1 U+00A1 exclamdown !A2 U+00A2 cent !A3 U+00A3 sterling !A4 U+00A4 currency !A5 U+00A5 yen !A6 U+00A6 brokenbar !A7 U+00A7 section !A8 U+00A8 dieresis !A9 U+00A9 copyright !AA U+00AA ordfeminine !AB U+00AB guillemotleft !AC U+00AC logicalnot !AD U+00AD hyphen !AE U+00AE registered !AF U+00AF macron !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+00B2 twosuperior !B3 U+00B3 threesuperior !B4 U+00B4 acute !B5 U+00B5 mu !B6 U+00B6 paragraph !B7 U+00B7 periodcentered !B8 U+00B8 cedilla !B9 U+00B9 onesuperior !BA U+00BA ordmasculine !BB U+00BB guillemotright !BC U+00BC onequarter !BD U+00BD onehalf !BE U+00BE threequarters !BF U+00BF questiondown !C0 U+00C0 Agrave !C1 U+00C1 Aacute !C2 U+00C2 Acircumflex !C3 U+00C3 Atilde !C4 U+00C4 Adieresis !C5 U+00C5 Aring !C6 U+00C6 AE !C7 U+00C7 Ccedilla !C8 U+00C8 Egrave !C9 U+00C9 Eacute !CA U+00CA Ecircumflex !CB U+00CB Edieresis !CC U+00CC Igrave !CD U+00CD Iacute !CE U+00CE Icircumflex !CF U+00CF Idieresis !D0 U+011E Gbreve !D1 U+00D1 Ntilde !D2 U+00D2 Ograve !D3 U+00D3 Oacute !D4 U+00D4 Ocircumflex !D5 U+00D5 Otilde !D6 U+00D6 Odieresis !D7 U+00D7 multiply !D8 U+00D8 Oslash !D9 U+00D9 Ugrave !DA U+00DA Uacute !DB U+00DB Ucircumflex !DC U+00DC Udieresis !DD U+0130 Idotaccent !DE U+015E Scedilla !DF U+00DF germandbls !E0 U+00E0 agrave !E1 U+00E1 aacute !E2 U+00E2 acircumflex !E3 U+00E3 atilde !E4 U+00E4 adieresis !E5 U+00E5 aring !E6 U+00E6 ae !E7 U+00E7 ccedilla !E8 U+00E8 egrave !E9 U+00E9 eacute !EA U+00EA ecircumflex !EB U+00EB edieresis !EC U+00EC igrave !ED U+00ED iacute !EE U+00EE icircumflex !EF U+00EF idieresis !F0 U+011F gbreve !F1 U+00F1 ntilde !F2 U+00F2 ograve !F3 U+00F3 oacute !F4 U+00F4 ocircumflex !F5 U+00F5 otilde !F6 U+00F6 odieresis !F7 U+00F7 divide !F8 U+00F8 oslash !F9 U+00F9 ugrave !FA U+00FA uacute !FB U+00FB ucircumflex !FC U+00FC udieresis !FD U+0131 dotlessi !FE U+015F scedilla !FF U+00FF ydieresis makefont/cp1254.map000064400000010653150212222260007764 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+20AC Euro !82 U+201A quotesinglbase !83 U+0192 florin !84 U+201E quotedblbase !85 U+2026 ellipsis !86 U+2020 dagger !87 U+2021 daggerdbl !88 U+02C6 circumflex !89 U+2030 perthousand !8A U+0160 Scaron !8B U+2039 guilsinglleft !8C U+0152 OE !91 U+2018 quoteleft !92 U+2019 quoteright !93 U+201C quotedblleft !94 U+201D quotedblright !95 U+2022 bullet !96 U+2013 endash !97 U+2014 emdash !98 U+02DC tilde !99 U+2122 trademark !9A U+0161 scaron !9B U+203A guilsinglright !9C U+0153 oe !9F U+0178 Ydieresis !A0 U+00A0 space !A1 U+00A1 exclamdown !A2 U+00A2 cent !A3 U+00A3 sterling !A4 U+00A4 currency !A5 U+00A5 yen !A6 U+00A6 brokenbar !A7 U+00A7 section !A8 U+00A8 dieresis !A9 U+00A9 copyright !AA U+00AA ordfeminine !AB U+00AB guillemotleft !AC U+00AC logicalnot !AD U+00AD hyphen !AE U+00AE registered !AF U+00AF macron !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+00B2 twosuperior !B3 U+00B3 threesuperior !B4 U+00B4 acute !B5 U+00B5 mu !B6 U+00B6 paragraph !B7 U+00B7 periodcentered !B8 U+00B8 cedilla !B9 U+00B9 onesuperior !BA U+00BA ordmasculine !BB U+00BB guillemotright !BC U+00BC onequarter !BD U+00BD onehalf !BE U+00BE threequarters !BF U+00BF questiondown !C0 U+00C0 Agrave !C1 U+00C1 Aacute !C2 U+00C2 Acircumflex !C3 U+00C3 Atilde !C4 U+00C4 Adieresis !C5 U+00C5 Aring !C6 U+00C6 AE !C7 U+00C7 Ccedilla !C8 U+00C8 Egrave !C9 U+00C9 Eacute !CA U+00CA Ecircumflex !CB U+00CB Edieresis !CC U+00CC Igrave !CD U+00CD Iacute !CE U+00CE Icircumflex !CF U+00CF Idieresis !D0 U+011E Gbreve !D1 U+00D1 Ntilde !D2 U+00D2 Ograve !D3 U+00D3 Oacute !D4 U+00D4 Ocircumflex !D5 U+00D5 Otilde !D6 U+00D6 Odieresis !D7 U+00D7 multiply !D8 U+00D8 Oslash !D9 U+00D9 Ugrave !DA U+00DA Uacute !DB U+00DB Ucircumflex !DC U+00DC Udieresis !DD U+0130 Idotaccent !DE U+015E Scedilla !DF U+00DF germandbls !E0 U+00E0 agrave !E1 U+00E1 aacute !E2 U+00E2 acircumflex !E3 U+00E3 atilde !E4 U+00E4 adieresis !E5 U+00E5 aring !E6 U+00E6 ae !E7 U+00E7 ccedilla !E8 U+00E8 egrave !E9 U+00E9 eacute !EA U+00EA ecircumflex !EB U+00EB edieresis !EC U+00EC igrave !ED U+00ED iacute !EE U+00EE icircumflex !EF U+00EF idieresis !F0 U+011F gbreve !F1 U+00F1 ntilde !F2 U+00F2 ograve !F3 U+00F3 oacute !F4 U+00F4 ocircumflex !F5 U+00F5 otilde !F6 U+00F6 odieresis !F7 U+00F7 divide !F8 U+00F8 oslash !F9 U+00F9 ugrave !FA U+00FA uacute !FB U+00FB ucircumflex !FC U+00FC udieresis !FD U+0131 dotlessi !FE U+015F scedilla !FF U+00FF ydieresis makefont/cp1253.map000064400000010237150212222260007761 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+20AC Euro !82 U+201A quotesinglbase !83 U+0192 florin !84 U+201E quotedblbase !85 U+2026 ellipsis !86 U+2020 dagger !87 U+2021 daggerdbl !89 U+2030 perthousand !8B U+2039 guilsinglleft !91 U+2018 quoteleft !92 U+2019 quoteright !93 U+201C quotedblleft !94 U+201D quotedblright !95 U+2022 bullet !96 U+2013 endash !97 U+2014 emdash !99 U+2122 trademark !9B U+203A guilsinglright !A0 U+00A0 space !A1 U+0385 dieresistonos !A2 U+0386 Alphatonos !A3 U+00A3 sterling !A4 U+00A4 currency !A5 U+00A5 yen !A6 U+00A6 brokenbar !A7 U+00A7 section !A8 U+00A8 dieresis !A9 U+00A9 copyright !AB U+00AB guillemotleft !AC U+00AC logicalnot !AD U+00AD hyphen !AE U+00AE registered !AF U+2015 afii00208 !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+00B2 twosuperior !B3 U+00B3 threesuperior !B4 U+0384 tonos !B5 U+00B5 mu !B6 U+00B6 paragraph !B7 U+00B7 periodcentered !B8 U+0388 Epsilontonos !B9 U+0389 Etatonos !BA U+038A Iotatonos !BB U+00BB guillemotright !BC U+038C Omicrontonos !BD U+00BD onehalf !BE U+038E Upsilontonos !BF U+038F Omegatonos !C0 U+0390 iotadieresistonos !C1 U+0391 Alpha !C2 U+0392 Beta !C3 U+0393 Gamma !C4 U+0394 Delta !C5 U+0395 Epsilon !C6 U+0396 Zeta !C7 U+0397 Eta !C8 U+0398 Theta !C9 U+0399 Iota !CA U+039A Kappa !CB U+039B Lambda !CC U+039C Mu !CD U+039D Nu !CE U+039E Xi !CF U+039F Omicron !D0 U+03A0 Pi !D1 U+03A1 Rho !D3 U+03A3 Sigma !D4 U+03A4 Tau !D5 U+03A5 Upsilon !D6 U+03A6 Phi !D7 U+03A7 Chi !D8 U+03A8 Psi !D9 U+03A9 Omega !DA U+03AA Iotadieresis !DB U+03AB Upsilondieresis !DC U+03AC alphatonos !DD U+03AD epsilontonos !DE U+03AE etatonos !DF U+03AF iotatonos !E0 U+03B0 upsilondieresistonos !E1 U+03B1 alpha !E2 U+03B2 beta !E3 U+03B3 gamma !E4 U+03B4 delta !E5 U+03B5 epsilon !E6 U+03B6 zeta !E7 U+03B7 eta !E8 U+03B8 theta !E9 U+03B9 iota !EA U+03BA kappa !EB U+03BB lambda !EC U+03BC mu !ED U+03BD nu !EE U+03BE xi !EF U+03BF omicron !F0 U+03C0 pi !F1 U+03C1 rho !F2 U+03C2 sigma1 !F3 U+03C3 sigma !F4 U+03C4 tau !F5 U+03C5 upsilon !F6 U+03C6 phi !F7 U+03C7 chi !F8 U+03C8 psi !F9 U+03C9 omega !FA U+03CA iotadieresis !FB U+03CB upsilondieresis !FC U+03CC omicrontonos !FD U+03CD upsilontonos !FE U+03CE omegatonos makefont/cp874.map000064400000010247150212222260007712 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+20AC Euro !85 U+2026 ellipsis !91 U+2018 quoteleft !92 U+2019 quoteright !93 U+201C quotedblleft !94 U+201D quotedblright !95 U+2022 bullet !96 U+2013 endash !97 U+2014 emdash !A0 U+00A0 space !A1 U+0E01 kokaithai !A2 U+0E02 khokhaithai !A3 U+0E03 khokhuatthai !A4 U+0E04 khokhwaithai !A5 U+0E05 khokhonthai !A6 U+0E06 khorakhangthai !A7 U+0E07 ngonguthai !A8 U+0E08 chochanthai !A9 U+0E09 chochingthai !AA U+0E0A chochangthai !AB U+0E0B sosothai !AC U+0E0C chochoethai !AD U+0E0D yoyingthai !AE U+0E0E dochadathai !AF U+0E0F topatakthai !B0 U+0E10 thothanthai !B1 U+0E11 thonangmonthothai !B2 U+0E12 thophuthaothai !B3 U+0E13 nonenthai !B4 U+0E14 dodekthai !B5 U+0E15 totaothai !B6 U+0E16 thothungthai !B7 U+0E17 thothahanthai !B8 U+0E18 thothongthai !B9 U+0E19 nonuthai !BA U+0E1A bobaimaithai !BB U+0E1B poplathai !BC U+0E1C phophungthai !BD U+0E1D fofathai !BE U+0E1E phophanthai !BF U+0E1F fofanthai !C0 U+0E20 phosamphaothai !C1 U+0E21 momathai !C2 U+0E22 yoyakthai !C3 U+0E23 roruathai !C4 U+0E24 ruthai !C5 U+0E25 lolingthai !C6 U+0E26 luthai !C7 U+0E27 wowaenthai !C8 U+0E28 sosalathai !C9 U+0E29 sorusithai !CA U+0E2A sosuathai !CB U+0E2B hohipthai !CC U+0E2C lochulathai !CD U+0E2D oangthai !CE U+0E2E honokhukthai !CF U+0E2F paiyannoithai !D0 U+0E30 saraathai !D1 U+0E31 maihanakatthai !D2 U+0E32 saraaathai !D3 U+0E33 saraamthai !D4 U+0E34 saraithai !D5 U+0E35 saraiithai !D6 U+0E36 sarauethai !D7 U+0E37 saraueethai !D8 U+0E38 sarauthai !D9 U+0E39 sarauuthai !DA U+0E3A phinthuthai !DF U+0E3F bahtthai !E0 U+0E40 saraethai !E1 U+0E41 saraaethai !E2 U+0E42 saraothai !E3 U+0E43 saraaimaimuanthai !E4 U+0E44 saraaimaimalaithai !E5 U+0E45 lakkhangyaothai !E6 U+0E46 maiyamokthai !E7 U+0E47 maitaikhuthai !E8 U+0E48 maiekthai !E9 U+0E49 maithothai !EA U+0E4A maitrithai !EB U+0E4B maichattawathai !EC U+0E4C thanthakhatthai !ED U+0E4D nikhahitthai !EE U+0E4E yamakkanthai !EF U+0E4F fongmanthai !F0 U+0E50 zerothai !F1 U+0E51 onethai !F2 U+0E52 twothai !F3 U+0E53 threethai !F4 U+0E54 fourthai !F5 U+0E55 fivethai !F6 U+0E56 sixthai !F7 U+0E57 seventhai !F8 U+0E58 eightthai !F9 U+0E59 ninethai !FA U+0E5A angkhankhuthai !FB U+0E5B khomutthai makefont/iso-8859-5.map000064400000011157150212222260010415 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+0080 .notdef !81 U+0081 .notdef !82 U+0082 .notdef !83 U+0083 .notdef !84 U+0084 .notdef !85 U+0085 .notdef !86 U+0086 .notdef !87 U+0087 .notdef !88 U+0088 .notdef !89 U+0089 .notdef !8A U+008A .notdef !8B U+008B .notdef !8C U+008C .notdef !8D U+008D .notdef !8E U+008E .notdef !8F U+008F .notdef !90 U+0090 .notdef !91 U+0091 .notdef !92 U+0092 .notdef !93 U+0093 .notdef !94 U+0094 .notdef !95 U+0095 .notdef !96 U+0096 .notdef !97 U+0097 .notdef !98 U+0098 .notdef !99 U+0099 .notdef !9A U+009A .notdef !9B U+009B .notdef !9C U+009C .notdef !9D U+009D .notdef !9E U+009E .notdef !9F U+009F .notdef !A0 U+00A0 space !A1 U+0401 afii10023 !A2 U+0402 afii10051 !A3 U+0403 afii10052 !A4 U+0404 afii10053 !A5 U+0405 afii10054 !A6 U+0406 afii10055 !A7 U+0407 afii10056 !A8 U+0408 afii10057 !A9 U+0409 afii10058 !AA U+040A afii10059 !AB U+040B afii10060 !AC U+040C afii10061 !AD U+00AD hyphen !AE U+040E afii10062 !AF U+040F afii10145 !B0 U+0410 afii10017 !B1 U+0411 afii10018 !B2 U+0412 afii10019 !B3 U+0413 afii10020 !B4 U+0414 afii10021 !B5 U+0415 afii10022 !B6 U+0416 afii10024 !B7 U+0417 afii10025 !B8 U+0418 afii10026 !B9 U+0419 afii10027 !BA U+041A afii10028 !BB U+041B afii10029 !BC U+041C afii10030 !BD U+041D afii10031 !BE U+041E afii10032 !BF U+041F afii10033 !C0 U+0420 afii10034 !C1 U+0421 afii10035 !C2 U+0422 afii10036 !C3 U+0423 afii10037 !C4 U+0424 afii10038 !C5 U+0425 afii10039 !C6 U+0426 afii10040 !C7 U+0427 afii10041 !C8 U+0428 afii10042 !C9 U+0429 afii10043 !CA U+042A afii10044 !CB U+042B afii10045 !CC U+042C afii10046 !CD U+042D afii10047 !CE U+042E afii10048 !CF U+042F afii10049 !D0 U+0430 afii10065 !D1 U+0431 afii10066 !D2 U+0432 afii10067 !D3 U+0433 afii10068 !D4 U+0434 afii10069 !D5 U+0435 afii10070 !D6 U+0436 afii10072 !D7 U+0437 afii10073 !D8 U+0438 afii10074 !D9 U+0439 afii10075 !DA U+043A afii10076 !DB U+043B afii10077 !DC U+043C afii10078 !DD U+043D afii10079 !DE U+043E afii10080 !DF U+043F afii10081 !E0 U+0440 afii10082 !E1 U+0441 afii10083 !E2 U+0442 afii10084 !E3 U+0443 afii10085 !E4 U+0444 afii10086 !E5 U+0445 afii10087 !E6 U+0446 afii10088 !E7 U+0447 afii10089 !E8 U+0448 afii10090 !E9 U+0449 afii10091 !EA U+044A afii10092 !EB U+044B afii10093 !EC U+044C afii10094 !ED U+044D afii10095 !EE U+044E afii10096 !EF U+044F afii10097 !F0 U+2116 afii61352 !F1 U+0451 afii10071 !F2 U+0452 afii10099 !F3 U+0453 afii10100 !F4 U+0454 afii10101 !F5 U+0455 afii10102 !F6 U+0456 afii10103 !F7 U+0457 afii10104 !F8 U+0458 afii10105 !F9 U+0459 afii10106 !FA U+045A afii10107 !FB U+045B afii10108 !FC U+045C afii10109 !FD U+00A7 section !FE U+045E afii10110 !FF U+045F afii10193 makefont/iso-8859-2.map000064400000010731150212222260010407 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+0080 .notdef !81 U+0081 .notdef !82 U+0082 .notdef !83 U+0083 .notdef !84 U+0084 .notdef !85 U+0085 .notdef !86 U+0086 .notdef !87 U+0087 .notdef !88 U+0088 .notdef !89 U+0089 .notdef !8A U+008A .notdef !8B U+008B .notdef !8C U+008C .notdef !8D U+008D .notdef !8E U+008E .notdef !8F U+008F .notdef !90 U+0090 .notdef !91 U+0091 .notdef !92 U+0092 .notdef !93 U+0093 .notdef !94 U+0094 .notdef !95 U+0095 .notdef !96 U+0096 .notdef !97 U+0097 .notdef !98 U+0098 .notdef !99 U+0099 .notdef !9A U+009A .notdef !9B U+009B .notdef !9C U+009C .notdef !9D U+009D .notdef !9E U+009E .notdef !9F U+009F .notdef !A0 U+00A0 space !A1 U+0104 Aogonek !A2 U+02D8 breve !A3 U+0141 Lslash !A4 U+00A4 currency !A5 U+013D Lcaron !A6 U+015A Sacute !A7 U+00A7 section !A8 U+00A8 dieresis !A9 U+0160 Scaron !AA U+015E Scedilla !AB U+0164 Tcaron !AC U+0179 Zacute !AD U+00AD hyphen !AE U+017D Zcaron !AF U+017B Zdotaccent !B0 U+00B0 degree !B1 U+0105 aogonek !B2 U+02DB ogonek !B3 U+0142 lslash !B4 U+00B4 acute !B5 U+013E lcaron !B6 U+015B sacute !B7 U+02C7 caron !B8 U+00B8 cedilla !B9 U+0161 scaron !BA U+015F scedilla !BB U+0165 tcaron !BC U+017A zacute !BD U+02DD hungarumlaut !BE U+017E zcaron !BF U+017C zdotaccent !C0 U+0154 Racute !C1 U+00C1 Aacute !C2 U+00C2 Acircumflex !C3 U+0102 Abreve !C4 U+00C4 Adieresis !C5 U+0139 Lacute !C6 U+0106 Cacute !C7 U+00C7 Ccedilla !C8 U+010C Ccaron !C9 U+00C9 Eacute !CA U+0118 Eogonek !CB U+00CB Edieresis !CC U+011A Ecaron !CD U+00CD Iacute !CE U+00CE Icircumflex !CF U+010E Dcaron !D0 U+0110 Dcroat !D1 U+0143 Nacute !D2 U+0147 Ncaron !D3 U+00D3 Oacute !D4 U+00D4 Ocircumflex !D5 U+0150 Ohungarumlaut !D6 U+00D6 Odieresis !D7 U+00D7 multiply !D8 U+0158 Rcaron !D9 U+016E Uring !DA U+00DA Uacute !DB U+0170 Uhungarumlaut !DC U+00DC Udieresis !DD U+00DD Yacute !DE U+0162 Tcommaaccent !DF U+00DF germandbls !E0 U+0155 racute !E1 U+00E1 aacute !E2 U+00E2 acircumflex !E3 U+0103 abreve !E4 U+00E4 adieresis !E5 U+013A lacute !E6 U+0107 cacute !E7 U+00E7 ccedilla !E8 U+010D ccaron !E9 U+00E9 eacute !EA U+0119 eogonek !EB U+00EB edieresis !EC U+011B ecaron !ED U+00ED iacute !EE U+00EE icircumflex !EF U+010F dcaron !F0 U+0111 dcroat !F1 U+0144 nacute !F2 U+0148 ncaron !F3 U+00F3 oacute !F4 U+00F4 ocircumflex !F5 U+0151 ohungarumlaut !F6 U+00F6 odieresis !F7 U+00F7 divide !F8 U+0159 rcaron !F9 U+016F uring !FA U+00FA uacute !FB U+0171 uhungarumlaut !FC U+00FC udieresis !FD U+00FD yacute !FE U+0163 tcommaaccent !FF U+02D9 dotaccent makefont/cp1258.map000064400000010615150212222260007766 0ustar00!00 U+0000 .notdef !01 U+0001 .notdef !02 U+0002 .notdef !03 U+0003 .notdef !04 U+0004 .notdef !05 U+0005 .notdef !06 U+0006 .notdef !07 U+0007 .notdef !08 U+0008 .notdef !09 U+0009 .notdef !0A U+000A .notdef !0B U+000B .notdef !0C U+000C .notdef !0D U+000D .notdef !0E U+000E .notdef !0F U+000F .notdef !10 U+0010 .notdef !11 U+0011 .notdef !12 U+0012 .notdef !13 U+0013 .notdef !14 U+0014 .notdef !15 U+0015 .notdef !16 U+0016 .notdef !17 U+0017 .notdef !18 U+0018 .notdef !19 U+0019 .notdef !1A U+001A .notdef !1B U+001B .notdef !1C U+001C .notdef !1D U+001D .notdef !1E U+001E .notdef !1F U+001F .notdef !20 U+0020 space !21 U+0021 exclam !22 U+0022 quotedbl !23 U+0023 numbersign !24 U+0024 dollar !25 U+0025 percent !26 U+0026 ampersand !27 U+0027 quotesingle !28 U+0028 parenleft !29 U+0029 parenright !2A U+002A asterisk !2B U+002B plus !2C U+002C comma !2D U+002D hyphen !2E U+002E period !2F U+002F slash !30 U+0030 zero !31 U+0031 one !32 U+0032 two !33 U+0033 three !34 U+0034 four !35 U+0035 five !36 U+0036 six !37 U+0037 seven !38 U+0038 eight !39 U+0039 nine !3A U+003A colon !3B U+003B semicolon !3C U+003C less !3D U+003D equal !3E U+003E greater !3F U+003F question !40 U+0040 at !41 U+0041 A !42 U+0042 B !43 U+0043 C !44 U+0044 D !45 U+0045 E !46 U+0046 F !47 U+0047 G !48 U+0048 H !49 U+0049 I !4A U+004A J !4B U+004B K !4C U+004C L !4D U+004D M !4E U+004E N !4F U+004F O !50 U+0050 P !51 U+0051 Q !52 U+0052 R !53 U+0053 S !54 U+0054 T !55 U+0055 U !56 U+0056 V !57 U+0057 W !58 U+0058 X !59 U+0059 Y !5A U+005A Z !5B U+005B bracketleft !5C U+005C backslash !5D U+005D bracketright !5E U+005E asciicircum !5F U+005F underscore !60 U+0060 grave !61 U+0061 a !62 U+0062 b !63 U+0063 c !64 U+0064 d !65 U+0065 e !66 U+0066 f !67 U+0067 g !68 U+0068 h !69 U+0069 i !6A U+006A j !6B U+006B k !6C U+006C l !6D U+006D m !6E U+006E n !6F U+006F o !70 U+0070 p !71 U+0071 q !72 U+0072 r !73 U+0073 s !74 U+0074 t !75 U+0075 u !76 U+0076 v !77 U+0077 w !78 U+0078 x !79 U+0079 y !7A U+007A z !7B U+007B braceleft !7C U+007C bar !7D U+007D braceright !7E U+007E asciitilde !7F U+007F .notdef !80 U+20AC Euro !82 U+201A quotesinglbase !83 U+0192 florin !84 U+201E quotedblbase !85 U+2026 ellipsis !86 U+2020 dagger !87 U+2021 daggerdbl !88 U+02C6 circumflex !89 U+2030 perthousand !8B U+2039 guilsinglleft !8C U+0152 OE !91 U+2018 quoteleft !92 U+2019 quoteright !93 U+201C quotedblleft !94 U+201D quotedblright !95 U+2022 bullet !96 U+2013 endash !97 U+2014 emdash !98 U+02DC tilde !99 U+2122 trademark !9B U+203A guilsinglright !9C U+0153 oe !9F U+0178 Ydieresis !A0 U+00A0 space !A1 U+00A1 exclamdown !A2 U+00A2 cent !A3 U+00A3 sterling !A4 U+00A4 currency !A5 U+00A5 yen !A6 U+00A6 brokenbar !A7 U+00A7 section !A8 U+00A8 dieresis !A9 U+00A9 copyright !AA U+00AA ordfeminine !AB U+00AB guillemotleft !AC U+00AC logicalnot !AD U+00AD hyphen !AE U+00AE registered !AF U+00AF macron !B0 U+00B0 degree !B1 U+00B1 plusminus !B2 U+00B2 twosuperior !B3 U+00B3 threesuperior !B4 U+00B4 acute !B5 U+00B5 mu !B6 U+00B6 paragraph !B7 U+00B7 periodcentered !B8 U+00B8 cedilla !B9 U+00B9 onesuperior !BA U+00BA ordmasculine !BB U+00BB guillemotright !BC U+00BC onequarter !BD U+00BD onehalf !BE U+00BE threequarters !BF U+00BF questiondown !C0 U+00C0 Agrave !C1 U+00C1 Aacute !C2 U+00C2 Acircumflex !C3 U+0102 Abreve !C4 U+00C4 Adieresis !C5 U+00C5 Aring !C6 U+00C6 AE !C7 U+00C7 Ccedilla !C8 U+00C8 Egrave !C9 U+00C9 Eacute !CA U+00CA Ecircumflex !CB U+00CB Edieresis !CC U+0300 gravecomb !CD U+00CD Iacute !CE U+00CE Icircumflex !CF U+00CF Idieresis !D0 U+0110 Dcroat !D1 U+00D1 Ntilde !D2 U+0309 hookabovecomb !D3 U+00D3 Oacute !D4 U+00D4 Ocircumflex !D5 U+01A0 Ohorn !D6 U+00D6 Odieresis !D7 U+00D7 multiply !D8 U+00D8 Oslash !D9 U+00D9 Ugrave !DA U+00DA Uacute !DB U+00DB Ucircumflex !DC U+00DC Udieresis !DD U+01AF Uhorn !DE U+0303 tildecomb !DF U+00DF germandbls !E0 U+00E0 agrave !E1 U+00E1 aacute !E2 U+00E2 acircumflex !E3 U+0103 abreve !E4 U+00E4 adieresis !E5 U+00E5 aring !E6 U+00E6 ae !E7 U+00E7 ccedilla !E8 U+00E8 egrave !E9 U+00E9 eacute !EA U+00EA ecircumflex !EB U+00EB edieresis !EC U+0301 acutecomb !ED U+00ED iacute !EE U+00EE icircumflex !EF U+00EF idieresis !F0 U+0111 dcroat !F1 U+00F1 ntilde !F2 U+0323 dotbelowcomb !F3 U+00F3 oacute !F4 U+00F4 ocircumflex !F5 U+01A1 ohorn !F6 U+00F6 odieresis !F7 U+00F7 divide !F8 U+00F8 oslash !F9 U+00F9 ugrave !FA U+00FA uacute !FB U+00FB ucircumflex !FC U+00FC udieresis !FD U+01B0 uhorn !FE U+20AB dong !FF U+00FF ydieresis fpdf.css000064400000002446150212222260006175 0ustar00body {font-family:"Times New Roman",serif} h1 {font:bold 135% Arial,sans-serif; color:#4000A0; margin-bottom:0.9em} h2 {font:bold 95% Arial,sans-serif; color:#900000; margin-top:1.5em; margin-bottom:1em} dl.param dt {text-decoration:underline} dl.param dd {margin-top:1em; margin-bottom:1em} dl.param ul {margin-top:1em; margin-bottom:1em} tt, code, kbd {font-family:"Courier New",Courier,monospace; font-size:82%} div.source {margin-top:1.4em; margin-bottom:1.3em} div.source pre {display:table; border:1px solid #24246A; width:100%; margin:0em; font-family:inherit; font-size:100%} div.source code {display:block; border:1px solid #C5C5EC; background-color:#F0F5FF; padding:6px; color:#000000} div.doc-source {margin-top:1.4em; margin-bottom:1.3em} div.doc-source pre {display:table; width:100%; margin:0em; font-family:inherit; font-size:100%} div.doc-source code {display:block; background-color:#E0E0E0; padding:4px} .kw {color:#000080; font-weight:bold} .str {color:#CC0000} .cmt {color:#008000} p.demo {text-align:center; margin-top:-0.9em} a.demo {text-decoration:none; font-weight:bold; color:#0000CC} a.demo:link {text-decoration:none; font-weight:bold; color:#0000CC} a.demo:hover {text-decoration:none; font-weight:bold; color:#0000FF} a.demo:active {text-decoration:none; font-weight:bold; color:#0000FF} fpdf.php000064400000135663150212222260006204 0ustar00_dochecks(); // Initialization of properties $this->state = 0; $this->page = 0; $this->n = 2; $this->buffer = ''; $this->pages = array(); $this->PageInfo = array(); $this->fonts = array(); $this->FontFiles = array(); $this->encodings = array(); $this->cmaps = array(); $this->images = array(); $this->links = array(); $this->InHeader = false; $this->InFooter = false; $this->lasth = 0; $this->FontFamily = ''; $this->FontStyle = ''; $this->FontSizePt = 12; $this->underline = false; $this->DrawColor = '0 G'; $this->FillColor = '0 g'; $this->TextColor = '0 g'; $this->ColorFlag = false; $this->WithAlpha = false; $this->ws = 0; // Font path if(defined('FPDF_FONTPATH')) { $this->fontpath = FPDF_FONTPATH; if(substr($this->fontpath,-1)!='/' && substr($this->fontpath,-1)!='\\') $this->fontpath .= '/'; } elseif(is_dir(dirname(__FILE__).'/font')) $this->fontpath = dirname(__FILE__).'/font/'; else $this->fontpath = ''; // Core fonts $this->CoreFonts = array('courier', 'helvetica', 'times', 'symbol', 'zapfdingbats'); // Scale factor if($unit=='pt') $this->k = 1; elseif($unit=='mm') $this->k = 72/25.4; elseif($unit=='cm') $this->k = 72/2.54; elseif($unit=='in') $this->k = 72; else $this->Error('Incorrect unit: '.$unit); // Page sizes $this->StdPageSizes = array('a3'=>array(841.89,1190.55), 'a4'=>array(595.28,841.89), 'a5'=>array(420.94,595.28), 'letter'=>array(612,792), 'legal'=>array(612,1008)); $size = $this->_getpagesize($size); $this->DefPageSize = $size; $this->CurPageSize = $size; // Page orientation $orientation = strtolower($orientation); if($orientation=='p' || $orientation=='portrait') { $this->DefOrientation = 'P'; $this->w = $size[0]; $this->h = $size[1]; } elseif($orientation=='l' || $orientation=='landscape') { $this->DefOrientation = 'L'; $this->w = $size[1]; $this->h = $size[0]; } else $this->Error('Incorrect orientation: '.$orientation); $this->CurOrientation = $this->DefOrientation; $this->wPt = $this->w*$this->k; $this->hPt = $this->h*$this->k; // Page rotation $this->CurRotation = 0; // Page margins (1 cm) $margin = 28.35/$this->k; $this->SetMargins($margin,$margin); // Interior cell margin (1 mm) $this->cMargin = $margin/10; // Line width (0.2 mm) $this->LineWidth = .567/$this->k; // Automatic page break $this->SetAutoPageBreak(true,2*$margin); // Default display mode $this->SetDisplayMode('default'); // Enable compression $this->SetCompression(true); // Set default PDF version number $this->PDFVersion = '1.3'; } function SetMargins($left, $top, $right=null) { // Set left, top and right margins $this->lMargin = $left; $this->tMargin = $top; if($right===null) $right = $left; $this->rMargin = $right; } function SetLeftMargin($margin) { // Set left margin $this->lMargin = $margin; if($this->page>0 && $this->x<$margin) $this->x = $margin; } function SetTopMargin($margin) { // Set top margin $this->tMargin = $margin; } function SetRightMargin($margin) { // Set right margin $this->rMargin = $margin; } function SetAutoPageBreak($auto, $margin=0) { // Set auto page break mode and triggering margin $this->AutoPageBreak = $auto; $this->bMargin = $margin; $this->PageBreakTrigger = $this->h-$margin; } function SetDisplayMode($zoom, $layout='default') { // Set display mode in viewer if($zoom=='fullpage' || $zoom=='fullwidth' || $zoom=='real' || $zoom=='default' || !is_string($zoom)) $this->ZoomMode = $zoom; else $this->Error('Incorrect zoom display mode: '.$zoom); if($layout=='single' || $layout=='continuous' || $layout=='two' || $layout=='default') $this->LayoutMode = $layout; else $this->Error('Incorrect layout display mode: '.$layout); } function SetCompression($compress) { // Set page compression if(function_exists('gzcompress')) $this->compress = $compress; else $this->compress = false; } function SetTitle($title, $isUTF8=false) { // Title of document $this->metadata['Title'] = $isUTF8 ? $title : utf8_encode($title); } function SetAuthor($author, $isUTF8=false) { // Author of document $this->metadata['Author'] = $isUTF8 ? $author : utf8_encode($author); } function SetSubject($subject, $isUTF8=false) { // Subject of document $this->metadata['Subject'] = $isUTF8 ? $subject : utf8_encode($subject); } function SetKeywords($keywords, $isUTF8=false) { // Keywords of document $this->metadata['Keywords'] = $isUTF8 ? $keywords : utf8_encode($keywords); } function SetCreator($creator, $isUTF8=false) { // Creator of document $this->metadata['Creator'] = $isUTF8 ? $creator : utf8_encode($creator); } function AliasNbPages($alias='{nb}') { // Define an alias for total number of pages $this->AliasNbPages = $alias; } function Error($msg) { // Fatal error throw new Exception('FPDF error: '.$msg); } function Close() { // Terminate document if($this->state==3) return; if($this->page==0) $this->AddPage(); // Page footer $this->InFooter = true; $this->Footer(); $this->InFooter = false; // Close page $this->_endpage(); // Close document $this->_enddoc(); } function AddPage($orientation='', $size='', $rotation=0) { // Start a new page if($this->state==3) $this->Error('The document is closed'); $family = $this->FontFamily; $style = $this->FontStyle.($this->underline ? 'U' : ''); $fontsize = $this->FontSizePt; $lw = $this->LineWidth; $dc = $this->DrawColor; $fc = $this->FillColor; $tc = $this->TextColor; $cf = $this->ColorFlag; if($this->page>0) { // Page footer $this->InFooter = true; $this->Footer(); $this->InFooter = false; // Close page $this->_endpage(); } // Start new page $this->_beginpage($orientation,$size,$rotation); // Set line cap style to square $this->_out('2 J'); // Set line width $this->LineWidth = $lw; $this->_out(sprintf('%.2F w',$lw*$this->k)); // Set font if($family) $this->SetFont($family,$style,$fontsize); // Set colors $this->DrawColor = $dc; if($dc!='0 G') $this->_out($dc); $this->FillColor = $fc; if($fc!='0 g') $this->_out($fc); $this->TextColor = $tc; $this->ColorFlag = $cf; // Page header $this->InHeader = true; $this->Header(); $this->InHeader = false; // Restore line width if($this->LineWidth!=$lw) { $this->LineWidth = $lw; $this->_out(sprintf('%.2F w',$lw*$this->k)); } // Restore font if($family) $this->SetFont($family,$style,$fontsize); // Restore colors if($this->DrawColor!=$dc) { $this->DrawColor = $dc; $this->_out($dc); } if($this->FillColor!=$fc) { $this->FillColor = $fc; $this->_out($fc); } $this->TextColor = $tc; $this->ColorFlag = $cf; } function Header() { // To be implemented in your own inherited class } function Footer() { // To be implemented in your own inherited class } function PageNo() { // Get current page number return $this->page; } function SetDrawColor($r, $g=null, $b=null) { // Set color for all stroking operations if(($r==0 && $g==0 && $b==0) || $g===null) $this->DrawColor = sprintf('%.3F G',$r/255); else $this->DrawColor = sprintf('%.3F %.3F %.3F RG',$r/255,$g/255,$b/255); if($this->page>0) $this->_out($this->DrawColor); } function SetFillColor($r, $g=null, $b=null) { // Set color for all filling operations if(($r==0 && $g==0 && $b==0) || $g===null) $this->FillColor = sprintf('%.3F g',$r/255); else $this->FillColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255); $this->ColorFlag = ($this->FillColor!=$this->TextColor); if($this->page>0) $this->_out($this->FillColor); } function SetTextColor($r, $g=null, $b=null) { // Set color for text if(($r==0 && $g==0 && $b==0) || $g===null) $this->TextColor = sprintf('%.3F g',$r/255); else $this->TextColor = sprintf('%.3F %.3F %.3F rg',$r/255,$g/255,$b/255); $this->ColorFlag = ($this->FillColor!=$this->TextColor); } function GetStringWidth($s) { // Get width of a string in the current font $s = (string)$s; $cw = &$this->CurrentFont['cw']; $w = 0; $l = strlen($s); for($i=0;$i<$l;$i++) $w += $cw[$s[$i]]; return $w*$this->FontSize/1000; } function SetLineWidth($width) { // Set line width $this->LineWidth = $width; if($this->page>0) $this->_out(sprintf('%.2F w',$width*$this->k)); } function Line($x1, $y1, $x2, $y2) { // Draw a line $this->_out(sprintf('%.2F %.2F m %.2F %.2F l S',$x1*$this->k,($this->h-$y1)*$this->k,$x2*$this->k,($this->h-$y2)*$this->k)); } function Rect($x, $y, $w, $h, $style='') { // Draw a rectangle if($style=='F') $op = 'f'; elseif($style=='FD' || $style=='DF') $op = 'B'; else $op = 'S'; $this->_out(sprintf('%.2F %.2F %.2F %.2F re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op)); } function AddFont($family, $style='', $file='') { // Add a TrueType, OpenType or Type1 font $family = strtolower($family); if($file=='') $file = str_replace(' ','',$family).strtolower($style).'.php'; $style = strtoupper($style); if($style=='IB') $style = 'BI'; $fontkey = $family.$style; if(isset($this->fonts[$fontkey])) return; $info = $this->_loadfont($file); $info['i'] = count($this->fonts)+1; if(!empty($info['file'])) { // Embedded font if($info['type']=='TrueType') $this->FontFiles[$info['file']] = array('length1'=>$info['originalsize']); else $this->FontFiles[$info['file']] = array('length1'=>$info['size1'], 'length2'=>$info['size2']); } $this->fonts[$fontkey] = $info; } function SetFont($family, $style='', $size=0) { // Select a font; size given in points if($family=='') $family = $this->FontFamily; else $family = strtolower($family); $style = strtoupper($style); if(strpos($style,'U')!==false) { $this->underline = true; $style = str_replace('U','',$style); } else $this->underline = false; if($style=='IB') $style = 'BI'; if($size==0) $size = $this->FontSizePt; // Test if font is already selected if($this->FontFamily==$family && $this->FontStyle==$style && $this->FontSizePt==$size) return; // Test if font is already loaded $fontkey = $family.$style; if(!isset($this->fonts[$fontkey])) { // Test if one of the core fonts if($family=='arial') $family = 'helvetica'; if(in_array($family,$this->CoreFonts)) { if($family=='symbol' || $family=='zapfdingbats') $style = ''; $fontkey = $family.$style; if(!isset($this->fonts[$fontkey])) $this->AddFont($family,$style); } else $this->Error('Undefined font: '.$family.' '.$style); } // Select it $this->FontFamily = $family; $this->FontStyle = $style; $this->FontSizePt = $size; $this->FontSize = $size/$this->k; $this->CurrentFont = &$this->fonts[$fontkey]; if($this->page>0) $this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt)); } function SetFontSize($size) { // Set font size in points if($this->FontSizePt==$size) return; $this->FontSizePt = $size; $this->FontSize = $size/$this->k; if($this->page>0) $this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt)); } function AddLink() { // Create a new internal link $n = count($this->links)+1; $this->links[$n] = array(0, 0); return $n; } function SetLink($link, $y=0, $page=-1) { // Set destination of internal link if($y==-1) $y = $this->y; if($page==-1) $page = $this->page; $this->links[$link] = array($page, $y); } function Link($x, $y, $w, $h, $link) { // Put a link on the page $this->PageLinks[$this->page][] = array($x*$this->k, $this->hPt-$y*$this->k, $w*$this->k, $h*$this->k, $link); } function Text($x, $y, $txt) { // Output a string if(!isset($this->CurrentFont)) $this->Error('No font has been set'); $s = sprintf('BT %.2F %.2F Td (%s) Tj ET',$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt)); if($this->underline && $txt!='') $s .= ' '.$this->_dounderline($x,$y,$txt); if($this->ColorFlag) $s = 'q '.$this->TextColor.' '.$s.' Q'; $this->_out($s); } function AcceptPageBreak() { // Accept automatic page break or not return $this->AutoPageBreak; } function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='') { // Output a cell $k = $this->k; if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak()) { // Automatic page break $x = $this->x; $ws = $this->ws; if($ws>0) { $this->ws = 0; $this->_out('0 Tw'); } $this->AddPage($this->CurOrientation,$this->CurPageSize,$this->CurRotation); $this->x = $x; if($ws>0) { $this->ws = $ws; $this->_out(sprintf('%.3F Tw',$ws*$k)); } } if($w==0) $w = $this->w-$this->rMargin-$this->x; $s = ''; if($fill || $border==1) { if($fill) $op = ($border==1) ? 'B' : 'f'; else $op = 'S'; $s = sprintf('%.2F %.2F %.2F %.2F re %s ',$this->x*$k,($this->h-$this->y)*$k,$w*$k,-$h*$k,$op); } if(is_string($border)) { $x = $this->x; $y = $this->y; if(strpos($border,'L')!==false) $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,$x*$k,($this->h-($y+$h))*$k); if(strpos($border,'T')!==false) $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-$y)*$k); if(strpos($border,'R')!==false) $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k); if(strpos($border,'B')!==false) $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k); } if($txt!=='') { if(!isset($this->CurrentFont)) $this->Error('No font has been set'); if($align=='R') $dx = $w-$this->cMargin-$this->GetStringWidth($txt); elseif($align=='C') $dx = ($w-$this->GetStringWidth($txt))/2; else $dx = $this->cMargin; if($this->ColorFlag) $s .= 'q '.$this->TextColor.' '; $s .= sprintf('BT %.2F %.2F Td (%s) Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$this->_escape($txt)); if($this->underline) $s .= ' '.$this->_dounderline($this->x+$dx,$this->y+.5*$h+.3*$this->FontSize,$txt); if($this->ColorFlag) $s .= ' Q'; if($link) $this->Link($this->x+$dx,$this->y+.5*$h-.5*$this->FontSize,$this->GetStringWidth($txt),$this->FontSize,$link); } if($s) $this->_out($s); $this->lasth = $h; if($ln>0) { // Go to next line $this->y += $h; if($ln==1) $this->x = $this->lMargin; } else $this->x += $w; } function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false) { // Output text with automatic or explicit line breaks if(!isset($this->CurrentFont)) $this->Error('No font has been set'); $cw = &$this->CurrentFont['cw']; if($w==0) $w = $this->w-$this->rMargin-$this->x; $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; $s = str_replace("\r",'',$txt); $nb = strlen($s); if($nb>0 && $s[$nb-1]=="\n") $nb--; $b = 0; if($border) { if($border==1) { $border = 'LTRB'; $b = 'LRT'; $b2 = 'LR'; } else { $b2 = ''; if(strpos($border,'L')!==false) $b2 .= 'L'; if(strpos($border,'R')!==false) $b2 .= 'R'; $b = (strpos($border,'T')!==false) ? $b2.'T' : $b2; } } $sep = -1; $i = 0; $j = 0; $l = 0; $ns = 0; $nl = 1; while($i<$nb) { // Get next character $c = $s[$i]; if($c=="\n") { // Explicit line break if($this->ws>0) { $this->ws = 0; $this->_out('0 Tw'); } $this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill); $i++; $sep = -1; $j = $i; $l = 0; $ns = 0; $nl++; if($border && $nl==2) $b = $b2; continue; } if($c==' ') { $sep = $i; $ls = $l; $ns++; } $l += $cw[$c]; if($l>$wmax) { // Automatic line break if($sep==-1) { if($i==$j) $i++; if($this->ws>0) { $this->ws = 0; $this->_out('0 Tw'); } $this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill); } else { if($align=='J') { $this->ws = ($ns>1) ? ($wmax-$ls)/1000*$this->FontSize/($ns-1) : 0; $this->_out(sprintf('%.3F Tw',$this->ws*$this->k)); } $this->Cell($w,$h,substr($s,$j,$sep-$j),$b,2,$align,$fill); $i = $sep+1; } $sep = -1; $j = $i; $l = 0; $ns = 0; $nl++; if($border && $nl==2) $b = $b2; } else $i++; } // Last chunk if($this->ws>0) { $this->ws = 0; $this->_out('0 Tw'); } if($border && strpos($border,'B')!==false) $b .= 'B'; $this->Cell($w,$h,substr($s,$j,$i-$j),$b,2,$align,$fill); $this->x = $this->lMargin; } function Write($h, $txt, $link='') { // Output text in flowing mode if(!isset($this->CurrentFont)) $this->Error('No font has been set'); $cw = &$this->CurrentFont['cw']; $w = $this->w-$this->rMargin-$this->x; $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; $s = str_replace("\r",'',$txt); $nb = strlen($s); $sep = -1; $i = 0; $j = 0; $l = 0; $nl = 1; while($i<$nb) { // Get next character $c = $s[$i]; if($c=="\n") { // Explicit line break $this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',false,$link); $i++; $sep = -1; $j = $i; $l = 0; if($nl==1) { $this->x = $this->lMargin; $w = $this->w-$this->rMargin-$this->x; $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; } $nl++; continue; } if($c==' ') $sep = $i; $l += $cw[$c]; if($l>$wmax) { // Automatic line break if($sep==-1) { if($this->x>$this->lMargin) { // Move to next line $this->x = $this->lMargin; $this->y += $h; $w = $this->w-$this->rMargin-$this->x; $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; $i++; $nl++; continue; } if($i==$j) $i++; $this->Cell($w,$h,substr($s,$j,$i-$j),0,2,'',false,$link); } else { $this->Cell($w,$h,substr($s,$j,$sep-$j),0,2,'',false,$link); $i = $sep+1; } $sep = -1; $j = $i; $l = 0; if($nl==1) { $this->x = $this->lMargin; $w = $this->w-$this->rMargin-$this->x; $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; } $nl++; } else $i++; } // Last chunk if($i!=$j) $this->Cell($l/1000*$this->FontSize,$h,substr($s,$j),0,0,'',false,$link); } function Ln($h=null) { // Line feed; default value is the last cell height $this->x = $this->lMargin; if($h===null) $this->y += $this->lasth; else $this->y += $h; } function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='') { // Put an image on the page if($file=='') $this->Error('Image file name is empty'); if(!isset($this->images[$file])) { // First use of this image, get info if($type=='') { $pos = strrpos($file,'.'); if(!$pos) $this->Error('Image file has no extension and no type was specified: '.$file); $type = substr($file,$pos+1); } $type = strtolower($type); if($type=='jpeg') $type = 'jpg'; $mtd = '_parse'.$type; if(!method_exists($this,$mtd)) $this->Error('Unsupported image type: '.$type); $info = $this->$mtd($file); $info['i'] = count($this->images)+1; $this->images[$file] = $info; } else $info = $this->images[$file]; // Automatic width and height calculation if needed if($w==0 && $h==0) { // Put image at 96 dpi $w = -96; $h = -96; } if($w<0) $w = -$info['w']*72/$w/$this->k; if($h<0) $h = -$info['h']*72/$h/$this->k; if($w==0) $w = $h*$info['w']/$info['h']; if($h==0) $h = $w*$info['h']/$info['w']; // Flowing mode if($y===null) { if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak()) { // Automatic page break $x2 = $this->x; $this->AddPage($this->CurOrientation,$this->CurPageSize,$this->CurRotation); $this->x = $x2; } $y = $this->y; $this->y += $h; } if($x===null) $x = $this->x; $this->_out(sprintf('q %.2F 0 0 %.2F %.2F %.2F cm /I%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i'])); if($link) $this->Link($x,$y,$w,$h,$link); } function GetPageWidth() { // Get current page width return $this->w; } function GetPageHeight() { // Get current page height return $this->h; } function GetX() { // Get x position return $this->x; } function SetX($x) { // Set x position if($x>=0) $this->x = $x; else $this->x = $this->w+$x; } function GetY() { // Get y position return $this->y; } function SetY($y, $resetX=true) { // Set y position and optionally reset x if($y>=0) $this->y = $y; else $this->y = $this->h+$y; if($resetX) $this->x = $this->lMargin; } function SetXY($x, $y) { // Set x and y positions $this->SetX($x); $this->SetY($y,false); } function Output($dest='', $name='', $isUTF8=false) { // Output PDF to some destination $this->Close(); if(strlen($name)==1 && strlen($dest)!=1) { // Fix parameter order $tmp = $dest; $dest = $name; $name = $tmp; } if($dest=='') $dest = 'I'; if($name=='') $name = 'doc.pdf'; switch(strtoupper($dest)) { case 'I': // Send to standard output $this->_checkoutput(); if(PHP_SAPI!='cli') { // We send to a browser header('Content-Type: application/pdf'); header('Content-Disposition: inline; '.$this->_httpencode('filename',$name,$isUTF8)); header('Cache-Control: private, max-age=0, must-revalidate'); header('Pragma: public'); } echo $this->buffer; break; case 'D': // Download file $this->_checkoutput(); header('Content-Type: application/x-download'); header('Content-Disposition: attachment; '.$this->_httpencode('filename',$name,$isUTF8)); header('Cache-Control: private, max-age=0, must-revalidate'); header('Pragma: public'); echo $this->buffer; break; case 'F': // Save to local file if(!file_put_contents($name,$this->buffer)) $this->Error('Unable to create output file: '.$name); break; case 'S': // Return as a string return $this->buffer; default: $this->Error('Incorrect output destination: '.$dest); } return ''; } /******************************************************************************* * Protected methods * *******************************************************************************/ protected function _dochecks() { // Check mbstring overloading if(ini_get('mbstring.func_overload') & 2) $this->Error('mbstring overloading must be disabled'); } protected function _checkoutput() { if(PHP_SAPI!='cli') { if(headers_sent($file,$line)) $this->Error("Some data has already been output, can't send PDF file (output started at $file:$line)"); } if(ob_get_length()) { // The output buffer is not empty if(preg_match('/^(\xEF\xBB\xBF)?\s*$/',ob_get_contents())) { // It contains only a UTF-8 BOM and/or whitespace, let's clean it ob_clean(); } else $this->Error("Some data has already been output, can't send PDF file"); } } protected function _getpagesize($size) { if(is_string($size)) { $size = strtolower($size); if(!isset($this->StdPageSizes[$size])) $this->Error('Unknown page size: '.$size); $a = $this->StdPageSizes[$size]; return array($a[0]/$this->k, $a[1]/$this->k); } else { if($size[0]>$size[1]) return array($size[1], $size[0]); else return $size; } } protected function _beginpage($orientation, $size, $rotation) { $this->page++; $this->pages[$this->page] = ''; $this->state = 2; $this->x = $this->lMargin; $this->y = $this->tMargin; $this->FontFamily = ''; // Check page size and orientation if($orientation=='') $orientation = $this->DefOrientation; else $orientation = strtoupper($orientation[0]); if($size=='') $size = $this->DefPageSize; else $size = $this->_getpagesize($size); if($orientation!=$this->CurOrientation || $size[0]!=$this->CurPageSize[0] || $size[1]!=$this->CurPageSize[1]) { // New size or orientation if($orientation=='P') { $this->w = $size[0]; $this->h = $size[1]; } else { $this->w = $size[1]; $this->h = $size[0]; } $this->wPt = $this->w*$this->k; $this->hPt = $this->h*$this->k; $this->PageBreakTrigger = $this->h-$this->bMargin; $this->CurOrientation = $orientation; $this->CurPageSize = $size; } if($orientation!=$this->DefOrientation || $size[0]!=$this->DefPageSize[0] || $size[1]!=$this->DefPageSize[1]) $this->PageInfo[$this->page]['size'] = array($this->wPt, $this->hPt); if($rotation!=0) { if($rotation%90!=0) $this->Error('Incorrect rotation value: '.$rotation); $this->CurRotation = $rotation; $this->PageInfo[$this->page]['rotation'] = $rotation; } } protected function _endpage() { $this->state = 1; } protected function _loadfont($font) { // Load a font definition file from the font directory if(strpos($font,'/')!==false || strpos($font,"\\")!==false) $this->Error('Incorrect font definition file name: '.$font); include($this->fontpath.$font); if(!isset($name)) $this->Error('Could not include font definition file'); if(isset($enc)) $enc = strtolower($enc); if(!isset($subsetted)) $subsetted = false; return get_defined_vars(); } protected function _isascii($s) { // Test if string is ASCII $nb = strlen($s); for($i=0;$i<$nb;$i++) { if(ord($s[$i])>127) return false; } return true; } protected function _httpencode($param, $value, $isUTF8) { // Encode HTTP header field parameter if($this->_isascii($value)) return $param.'="'.$value.'"'; if(!$isUTF8) $value = utf8_encode($value); if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')!==false) return $param.'="'.rawurlencode($value).'"'; else return $param."*=UTF-8''".rawurlencode($value); } protected function _UTF8toUTF16($s) { // Convert UTF-8 to UTF-16BE with BOM $res = "\xFE\xFF"; $nb = strlen($s); $i = 0; while($i<$nb) { $c1 = ord($s[$i++]); if($c1>=224) { // 3-byte character $c2 = ord($s[$i++]); $c3 = ord($s[$i++]); $res .= chr((($c1 & 0x0F)<<4) + (($c2 & 0x3C)>>2)); $res .= chr((($c2 & 0x03)<<6) + ($c3 & 0x3F)); } elseif($c1>=192) { // 2-byte character $c2 = ord($s[$i++]); $res .= chr(($c1 & 0x1C)>>2); $res .= chr((($c1 & 0x03)<<6) + ($c2 & 0x3F)); } else { // Single-byte character $res .= "\0".chr($c1); } } return $res; } protected function _escape($s) { // Escape special characters if(strpos($s,'(')!==false || strpos($s,')')!==false || strpos($s,'\\')!==false || strpos($s,"\r")!==false) return str_replace(array('\\','(',')',"\r"), array('\\\\','\\(','\\)','\\r'), $s); else return $s; } protected function _textstring($s) { // Format a text string if(!$this->_isascii($s)) $s = $this->_UTF8toUTF16($s); return '('.$this->_escape($s).')'; } protected function _dounderline($x, $y, $txt) { // Underline text $up = $this->CurrentFont['up']; $ut = $this->CurrentFont['ut']; $w = $this->GetStringWidth($txt)+$this->ws*substr_count($txt,' '); return sprintf('%.2F %.2F %.2F %.2F re f',$x*$this->k,($this->h-($y-$up/1000*$this->FontSize))*$this->k,$w*$this->k,-$ut/1000*$this->FontSizePt); } protected function _parsejpg($file) { // Extract info from a JPEG file $a = getimagesize($file); if(!$a) $this->Error('Missing or incorrect image file: '.$file); if($a[2]!=2) $this->Error('Not a JPEG file: '.$file); if(!isset($a['channels']) || $a['channels']==3) $colspace = 'DeviceRGB'; elseif($a['channels']==4) $colspace = 'DeviceCMYK'; else $colspace = 'DeviceGray'; $bpc = isset($a['bits']) ? $a['bits'] : 8; $data = file_get_contents($file); return array('w'=>$a[0], 'h'=>$a[1], 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'DCTDecode', 'data'=>$data); } protected function _parsepng($file) { // Extract info from a PNG file $f = fopen($file,'rb'); if(!$f) $this->Error('Can\'t open image file: '.$file); $info = $this->_parsepngstream($f,$file); fclose($f); return $info; } protected function _parsepngstream($f, $file) { // Check signature if($this->_readstream($f,8)!=chr(137).'PNG'.chr(13).chr(10).chr(26).chr(10)) $this->Error('Not a PNG file: '.$file); // Read header chunk $this->_readstream($f,4); if($this->_readstream($f,4)!='IHDR') $this->Error('Incorrect PNG file: '.$file); $w = $this->_readint($f); $h = $this->_readint($f); $bpc = ord($this->_readstream($f,1)); if($bpc>8) $this->Error('16-bit depth not supported: '.$file); $ct = ord($this->_readstream($f,1)); if($ct==0 || $ct==4) $colspace = 'DeviceGray'; elseif($ct==2 || $ct==6) $colspace = 'DeviceRGB'; elseif($ct==3) $colspace = 'Indexed'; else $this->Error('Unknown color type: '.$file); if(ord($this->_readstream($f,1))!=0) $this->Error('Unknown compression method: '.$file); if(ord($this->_readstream($f,1))!=0) $this->Error('Unknown filter method: '.$file); if(ord($this->_readstream($f,1))!=0) $this->Error('Interlacing not supported: '.$file); $this->_readstream($f,4); $dp = '/Predictor 15 /Colors '.($colspace=='DeviceRGB' ? 3 : 1).' /BitsPerComponent '.$bpc.' /Columns '.$w; // Scan chunks looking for palette, transparency and image data $pal = ''; $trns = ''; $data = ''; do { $n = $this->_readint($f); $type = $this->_readstream($f,4); if($type=='PLTE') { // Read palette $pal = $this->_readstream($f,$n); $this->_readstream($f,4); } elseif($type=='tRNS') { // Read transparency info $t = $this->_readstream($f,$n); if($ct==0) $trns = array(ord(substr($t,1,1))); elseif($ct==2) $trns = array(ord(substr($t,1,1)), ord(substr($t,3,1)), ord(substr($t,5,1))); else { $pos = strpos($t,chr(0)); if($pos!==false) $trns = array($pos); } $this->_readstream($f,4); } elseif($type=='IDAT') { // Read image data block $data .= $this->_readstream($f,$n); $this->_readstream($f,4); } elseif($type=='IEND') break; else $this->_readstream($f,$n+4); } while($n); if($colspace=='Indexed' && empty($pal)) $this->Error('Missing palette in '.$file); $info = array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'dp'=>$dp, 'pal'=>$pal, 'trns'=>$trns); if($ct>=4) { // Extract alpha channel if(!function_exists('gzuncompress')) $this->Error('Zlib not available, can\'t handle alpha channel: '.$file); $data = gzuncompress($data); $color = ''; $alpha = ''; if($ct==4) { // Gray image $len = 2*$w; for($i=0;$i<$h;$i++) { $pos = (1+$len)*$i; $color .= $data[$pos]; $alpha .= $data[$pos]; $line = substr($data,$pos+1,$len); $color .= preg_replace('/(.)./s','$1',$line); $alpha .= preg_replace('/.(.)/s','$1',$line); } } else { // RGB image $len = 4*$w; for($i=0;$i<$h;$i++) { $pos = (1+$len)*$i; $color .= $data[$pos]; $alpha .= $data[$pos]; $line = substr($data,$pos+1,$len); $color .= preg_replace('/(.{3})./s','$1',$line); $alpha .= preg_replace('/.{3}(.)/s','$1',$line); } } unset($data); $data = gzcompress($color); $info['smask'] = gzcompress($alpha); $this->WithAlpha = true; if($this->PDFVersion<'1.4') $this->PDFVersion = '1.4'; } $info['data'] = $data; return $info; } protected function _readstream($f, $n) { // Read n bytes from stream $res = ''; while($n>0 && !feof($f)) { $s = fread($f,$n); if($s===false) $this->Error('Error while reading stream'); $n -= strlen($s); $res .= $s; } if($n>0) $this->Error('Unexpected end of stream'); return $res; } protected function _readint($f) { // Read a 4-byte integer from stream $a = unpack('Ni',$this->_readstream($f,4)); return $a['i']; } protected function _parsegif($file) { // Extract info from a GIF file (via PNG conversion) if(!function_exists('imagepng')) $this->Error('GD extension is required for GIF support'); if(!function_exists('imagecreatefromgif')) $this->Error('GD has no GIF read support'); $im = imagecreatefromgif($file); if(!$im) $this->Error('Missing or incorrect image file: '.$file); imageinterlace($im,0); ob_start(); imagepng($im); $data = ob_get_clean(); imagedestroy($im); $f = fopen('php://temp','rb+'); if(!$f) $this->Error('Unable to create memory stream'); fwrite($f,$data); rewind($f); $info = $this->_parsepngstream($f,$file); fclose($f); return $info; } protected function _out($s) { // Add a line to the document if($this->state==2) $this->pages[$this->page] .= $s."\n"; elseif($this->state==1) $this->_put($s); elseif($this->state==0) $this->Error('No page has been added yet'); elseif($this->state==3) $this->Error('The document is closed'); } protected function _put($s) { $this->buffer .= $s."\n"; } protected function _getoffset() { return strlen($this->buffer); } protected function _newobj($n=null) { // Begin a new object if($n===null) $n = ++$this->n; $this->offsets[$n] = $this->_getoffset(); $this->_put($n.' 0 obj'); } protected function _putstream($data) { $this->_put('stream'); $this->_put($data); $this->_put('endstream'); } protected function _putstreamobject($data) { if($this->compress) { $entries = '/Filter /FlateDecode '; $data = gzcompress($data); } else $entries = ''; $entries .= '/Length '.strlen($data); $this->_newobj(); $this->_put('<<'.$entries.'>>'); $this->_putstream($data); $this->_put('endobj'); } protected function _putpage($n) { $this->_newobj(); $this->_put('<_put('/Parent 1 0 R'); if(isset($this->PageInfo[$n]['size'])) $this->_put(sprintf('/MediaBox [0 0 %.2F %.2F]',$this->PageInfo[$n]['size'][0],$this->PageInfo[$n]['size'][1])); if(isset($this->PageInfo[$n]['rotation'])) $this->_put('/Rotate '.$this->PageInfo[$n]['rotation']); $this->_put('/Resources 2 0 R'); if(isset($this->PageLinks[$n])) { // Links $annots = '/Annots ['; foreach($this->PageLinks[$n] as $pl) { $rect = sprintf('%.2F %.2F %.2F %.2F',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]); $annots .= '<_textstring($pl[4]).'>>>>'; else { $l = $this->links[$pl[4]]; if(isset($this->PageInfo[$l[0]]['size'])) $h = $this->PageInfo[$l[0]]['size'][1]; else $h = ($this->DefOrientation=='P') ? $this->DefPageSize[1]*$this->k : $this->DefPageSize[0]*$this->k; $annots .= sprintf('/Dest [%d 0 R /XYZ 0 %.2F null]>>',$this->PageInfo[$l[0]]['n'],$h-$l[1]*$this->k); } } $this->_put($annots.']'); } if($this->WithAlpha) $this->_put('/Group <>'); $this->_put('/Contents '.($this->n+1).' 0 R>>'); $this->_put('endobj'); // Page content if(!empty($this->AliasNbPages)) $this->pages[$n] = str_replace($this->AliasNbPages,$this->page,$this->pages[$n]); $this->_putstreamobject($this->pages[$n]); } protected function _putpages() { $nb = $this->page; for($n=1;$n<=$nb;$n++) $this->PageInfo[$n]['n'] = $this->n+1+2*($n-1); for($n=1;$n<=$nb;$n++) $this->_putpage($n); // Pages root $this->_newobj(1); $this->_put('<PageInfo[$n]['n'].' 0 R '; $this->_put($kids.']'); $this->_put('/Count '.$nb); if($this->DefOrientation=='P') { $w = $this->DefPageSize[0]; $h = $this->DefPageSize[1]; } else { $w = $this->DefPageSize[1]; $h = $this->DefPageSize[0]; } $this->_put(sprintf('/MediaBox [0 0 %.2F %.2F]',$w*$this->k,$h*$this->k)); $this->_put('>>'); $this->_put('endobj'); } protected function _putfonts() { foreach($this->FontFiles as $file=>$info) { // Font file embedding $this->_newobj(); $this->FontFiles[$file]['n'] = $this->n; $font = file_get_contents($this->fontpath.$file,true); if(!$font) $this->Error('Font file not found: '.$file); $compressed = (substr($file,-2)=='.z'); if(!$compressed && isset($info['length2'])) $font = substr($font,6,$info['length1']).substr($font,6+$info['length1']+6,$info['length2']); $this->_put('<_put('/Filter /FlateDecode'); $this->_put('/Length1 '.$info['length1']); if(isset($info['length2'])) $this->_put('/Length2 '.$info['length2'].' /Length3 0'); $this->_put('>>'); $this->_putstream($font); $this->_put('endobj'); } foreach($this->fonts as $k=>$font) { // Encoding if(isset($font['diff'])) { if(!isset($this->encodings[$font['enc']])) { $this->_newobj(); $this->_put('<>'); $this->_put('endobj'); $this->encodings[$font['enc']] = $this->n; } } // ToUnicode CMap if(isset($font['uv'])) { if(isset($font['enc'])) $cmapkey = $font['enc']; else $cmapkey = $font['name']; if(!isset($this->cmaps[$cmapkey])) { $cmap = $this->_tounicodecmap($font['uv']); $this->_putstreamobject($cmap); $this->cmaps[$cmapkey] = $this->n; } } // Font object $this->fonts[$k]['n'] = $this->n+1; $type = $font['type']; $name = $font['name']; if($font['subsetted']) $name = 'AAAAAA+'.$name; if($type=='Core') { // Core font $this->_newobj(); $this->_put('<_put('/BaseFont /'.$name); $this->_put('/Subtype /Type1'); if($name!='Symbol' && $name!='ZapfDingbats') $this->_put('/Encoding /WinAnsiEncoding'); if(isset($font['uv'])) $this->_put('/ToUnicode '.$this->cmaps[$cmapkey].' 0 R'); $this->_put('>>'); $this->_put('endobj'); } elseif($type=='Type1' || $type=='TrueType') { // Additional Type1 or TrueType/OpenType font $this->_newobj(); $this->_put('<_put('/BaseFont /'.$name); $this->_put('/Subtype /'.$type); $this->_put('/FirstChar 32 /LastChar 255'); $this->_put('/Widths '.($this->n+1).' 0 R'); $this->_put('/FontDescriptor '.($this->n+2).' 0 R'); if(isset($font['diff'])) $this->_put('/Encoding '.$this->encodings[$font['enc']].' 0 R'); else $this->_put('/Encoding /WinAnsiEncoding'); if(isset($font['uv'])) $this->_put('/ToUnicode '.$this->cmaps[$cmapkey].' 0 R'); $this->_put('>>'); $this->_put('endobj'); // Widths $this->_newobj(); $cw = &$font['cw']; $s = '['; for($i=32;$i<=255;$i++) $s .= $cw[chr($i)].' '; $this->_put($s.']'); $this->_put('endobj'); // Descriptor $this->_newobj(); $s = '<$v) $s .= ' /'.$k.' '.$v; if(!empty($font['file'])) $s .= ' /FontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$font['file']]['n'].' 0 R'; $this->_put($s.'>>'); $this->_put('endobj'); } else { // Allow for additional types $mtd = '_put'.strtolower($type); if(!method_exists($this,$mtd)) $this->Error('Unsupported font type: '.$type); $this->$mtd($font); } } } protected function _tounicodecmap($uv) { $ranges = ''; $nbr = 0; $chars = ''; $nbc = 0; foreach($uv as $c=>$v) { if(is_array($v)) { $ranges .= sprintf("<%02X> <%02X> <%04X>\n",$c,$c+$v[1]-1,$v[0]); $nbr++; } else { $chars .= sprintf("<%02X> <%04X>\n",$c,$v); $nbc++; } } $s = "/CIDInit /ProcSet findresource begin\n"; $s .= "12 dict begin\n"; $s .= "begincmap\n"; $s .= "/CIDSystemInfo\n"; $s .= "<0) { $s .= "$nbr beginbfrange\n"; $s .= $ranges; $s .= "endbfrange\n"; } if($nbc>0) { $s .= "$nbc beginbfchar\n"; $s .= $chars; $s .= "endbfchar\n"; } $s .= "endcmap\n"; $s .= "CMapName currentdict /CMap defineresource pop\n"; $s .= "end\n"; $s .= "end"; return $s; } protected function _putimages() { foreach(array_keys($this->images) as $file) { $this->_putimage($this->images[$file]); unset($this->images[$file]['data']); unset($this->images[$file]['smask']); } } protected function _putimage(&$info) { $this->_newobj(); $info['n'] = $this->n; $this->_put('<_put('/Subtype /Image'); $this->_put('/Width '.$info['w']); $this->_put('/Height '.$info['h']); if($info['cs']=='Indexed') $this->_put('/ColorSpace [/Indexed /DeviceRGB '.(strlen($info['pal'])/3-1).' '.($this->n+1).' 0 R]'); else { $this->_put('/ColorSpace /'.$info['cs']); if($info['cs']=='DeviceCMYK') $this->_put('/Decode [1 0 1 0 1 0 1 0]'); } $this->_put('/BitsPerComponent '.$info['bpc']); if(isset($info['f'])) $this->_put('/Filter /'.$info['f']); if(isset($info['dp'])) $this->_put('/DecodeParms <<'.$info['dp'].'>>'); if(isset($info['trns']) && is_array($info['trns'])) { $trns = ''; for($i=0;$i_put('/Mask ['.$trns.']'); } if(isset($info['smask'])) $this->_put('/SMask '.($this->n+1).' 0 R'); $this->_put('/Length '.strlen($info['data']).'>>'); $this->_putstream($info['data']); $this->_put('endobj'); // Soft mask if(isset($info['smask'])) { $dp = '/Predictor 15 /Colors 1 /BitsPerComponent 8 /Columns '.$info['w']; $smask = array('w'=>$info['w'], 'h'=>$info['h'], 'cs'=>'DeviceGray', 'bpc'=>8, 'f'=>$info['f'], 'dp'=>$dp, 'data'=>$info['smask']); $this->_putimage($smask); } // Palette if($info['cs']=='Indexed') $this->_putstreamobject($info['pal']); } protected function _putxobjectdict() { foreach($this->images as $image) $this->_put('/I'.$image['i'].' '.$image['n'].' 0 R'); } protected function _putresourcedict() { $this->_put('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]'); $this->_put('/Font <<'); foreach($this->fonts as $font) $this->_put('/F'.$font['i'].' '.$font['n'].' 0 R'); $this->_put('>>'); $this->_put('/XObject <<'); $this->_putxobjectdict(); $this->_put('>>'); } protected function _putresources() { $this->_putfonts(); $this->_putimages(); // Resource dictionary $this->_newobj(2); $this->_put('<<'); $this->_putresourcedict(); $this->_put('>>'); $this->_put('endobj'); } protected function _putinfo() { $this->metadata['Producer'] = 'FPDF '.FPDF_VERSION; $this->metadata['CreationDate'] = 'D:'.@date('YmdHis'); foreach($this->metadata as $key=>$value) $this->_put('/'.$key.' '.$this->_textstring($value)); } protected function _putcatalog() { $n = $this->PageInfo[1]['n']; $this->_put('/Type /Catalog'); $this->_put('/Pages 1 0 R'); if($this->ZoomMode=='fullpage') $this->_put('/OpenAction ['.$n.' 0 R /Fit]'); elseif($this->ZoomMode=='fullwidth') $this->_put('/OpenAction ['.$n.' 0 R /FitH null]'); elseif($this->ZoomMode=='real') $this->_put('/OpenAction ['.$n.' 0 R /XYZ null null 1]'); elseif(!is_string($this->ZoomMode)) $this->_put('/OpenAction ['.$n.' 0 R /XYZ null null '.sprintf('%.2F',$this->ZoomMode/100).']'); if($this->LayoutMode=='single') $this->_put('/PageLayout /SinglePage'); elseif($this->LayoutMode=='continuous') $this->_put('/PageLayout /OneColumn'); elseif($this->LayoutMode=='two') $this->_put('/PageLayout /TwoColumnLeft'); } protected function _putheader() { $this->_put('%PDF-'.$this->PDFVersion); } protected function _puttrailer() { $this->_put('/Size '.($this->n+1)); $this->_put('/Root '.$this->n.' 0 R'); $this->_put('/Info '.($this->n-1).' 0 R'); } protected function _enddoc() { $this->_putheader(); $this->_putpages(); $this->_putresources(); // Info $this->_newobj(); $this->_put('<<'); $this->_putinfo(); $this->_put('>>'); $this->_put('endobj'); // Catalog $this->_newobj(); $this->_put('<<'); $this->_putcatalog(); $this->_put('>>'); $this->_put('endobj'); // Cross-ref $offset = $this->_getoffset(); $this->_put('xref'); $this->_put('0 '.($this->n+1)); $this->_put('0000000000 65535 f '); for($i=1;$i<=$this->n;$i++) $this->_put(sprintf('%010d 00000 n ',$this->offsets[$i])); // Trailer $this->_put('trailer'); $this->_put('<<'); $this->_puttrailer(); $this->_put('>>'); $this->_put('startxref'); $this->_put($offset); $this->_put('%%EOF'); $this->state = 3; } } ?> font/helveticab.php000064400000006664150212222260010337 0ustar00278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278, chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584, ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722, 'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944, 'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889, 'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556, chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000, chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333, chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722, chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722, chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611, chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556); $enc = 'cp1252'; $uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); ?> font/times.php000064400000006656150212222260007353 0ustar00250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250, chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>408,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>180,'('=>333,')'=>333,'*'=>500,'+'=>564, ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>564,'='=>564,'>'=>564,'?'=>444,'@'=>921,'A'=>722, 'B'=>667,'C'=>667,'D'=>722,'E'=>611,'F'=>556,'G'=>722,'H'=>722,'I'=>333,'J'=>389,'K'=>722,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>556,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>722,'W'=>944, 'X'=>722,'Y'=>722,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>469,'_'=>500,'`'=>333,'a'=>444,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778, 'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>333,'s'=>389,'t'=>278,'u'=>500,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>480,'|'=>200,'}'=>480,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500, chr(132)=>444,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>889,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>444,chr(148)=>444,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>980, chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>200,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>564,chr(173)=>333,chr(174)=>760,chr(175)=>333, chr(176)=>400,chr(177)=>564,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>453,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>444,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722, chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>564,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722, chr(220)=>722,chr(221)=>722,chr(222)=>556,chr(223)=>500,chr(224)=>444,chr(225)=>444,chr(226)=>444,chr(227)=>444,chr(228)=>444,chr(229)=>444,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500, chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>564,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>500,chr(254)=>500,chr(255)=>500); $enc = 'cp1252'; $uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); ?> font/helveticai.php000064400000006670150212222260010343 0ustar00278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278, chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584, ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667, 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944, 'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833, 'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556, chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000, chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333, chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667, chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722, chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556, chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500); $enc = 'cp1252'; $uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); ?> font/helveticabi.php000064400000006673150212222260010510 0ustar00278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278, chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584, ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722, 'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944, 'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889, 'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556, chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000, chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333, chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722, chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722, chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611, chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556); $enc = 'cp1252'; $uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); ?> font/timesi.php000064400000006655150212222260007523 0ustar00250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250, chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>420,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>214,'('=>333,')'=>333,'*'=>500,'+'=>675, ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>675,'='=>675,'>'=>675,'?'=>500,'@'=>920,'A'=>611, 'B'=>611,'C'=>667,'D'=>722,'E'=>611,'F'=>611,'G'=>722,'H'=>722,'I'=>333,'J'=>444,'K'=>667,'L'=>556,'M'=>833,'N'=>667,'O'=>722,'P'=>611,'Q'=>722,'R'=>611,'S'=>500,'T'=>556,'U'=>722,'V'=>611,'W'=>833, 'X'=>611,'Y'=>556,'Z'=>556,'['=>389,'\\'=>278,']'=>389,'^'=>422,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>278,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>444,'l'=>278,'m'=>722, 'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>500,'v'=>444,'w'=>667,'x'=>444,'y'=>444,'z'=>389,'{'=>400,'|'=>275,'}'=>400,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500, chr(132)=>556,chr(133)=>889,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>500,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>556,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>556,chr(148)=>556,chr(149)=>350,chr(150)=>500,chr(151)=>889,chr(152)=>333,chr(153)=>980, chr(154)=>389,chr(155)=>333,chr(156)=>667,chr(157)=>350,chr(158)=>389,chr(159)=>556,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>275,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>675,chr(173)=>333,chr(174)=>760,chr(175)=>333, chr(176)=>400,chr(177)=>675,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>523,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>611,chr(193)=>611,chr(194)=>611,chr(195)=>611,chr(196)=>611,chr(197)=>611, chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>667,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>675,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722, chr(220)=>722,chr(221)=>556,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500, chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>675,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>444,chr(254)=>500,chr(255)=>444); $enc = 'cp1252'; $uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); ?> font/timesb.php000064400000006662150212222260007512 0ustar00250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250, chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>555,'#'=>500,'$'=>500,'%'=>1000,'&'=>833,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570, ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>930,'A'=>722, 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>778,'I'=>389,'J'=>500,'K'=>778,'L'=>667,'M'=>944,'N'=>722,'O'=>778,'P'=>611,'Q'=>778,'R'=>722,'S'=>556,'T'=>667,'U'=>722,'V'=>722,'W'=>1000, 'X'=>722,'Y'=>722,'Z'=>667,'['=>333,'\\'=>278,']'=>333,'^'=>581,'_'=>500,'`'=>333,'a'=>500,'b'=>556,'c'=>444,'d'=>556,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>333,'k'=>556,'l'=>278,'m'=>833, 'n'=>556,'o'=>500,'p'=>556,'q'=>556,'r'=>444,'s'=>389,'t'=>333,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>394,'|'=>220,'}'=>394,'~'=>520,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500, chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>667,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000, chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>300,chr(171)=>500,chr(172)=>570,chr(173)=>333,chr(174)=>747,chr(175)=>333, chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>556,chr(182)=>540,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>330,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722, chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>570,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722, chr(220)=>722,chr(221)=>722,chr(222)=>611,chr(223)=>556,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556, chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500); $enc = 'cp1252'; $uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); ?> font/courier.php000064400000000660150212222260007667 0ustar00array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); ?> font/courieri.php000064400000000670150212222260010041 0ustar00array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); ?> font/timesbi.php000064400000006664150212222260007665 0ustar00250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250, chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>389,'"'=>555,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570, ','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>832,'A'=>667, 'B'=>667,'C'=>667,'D'=>722,'E'=>667,'F'=>667,'G'=>722,'H'=>778,'I'=>389,'J'=>500,'K'=>667,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>611,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>667,'W'=>889, 'X'=>667,'Y'=>611,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>570,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778, 'n'=>556,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>556,'v'=>444,'w'=>667,'x'=>500,'y'=>444,'z'=>389,'{'=>348,'|'=>220,'}'=>348,'~'=>570,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500, chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000, chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>389,chr(159)=>611,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>266,chr(171)=>500,chr(172)=>606,chr(173)=>333,chr(174)=>747,chr(175)=>333, chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>576,chr(182)=>500,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>300,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667, chr(198)=>944,chr(199)=>667,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>570,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722, chr(220)=>722,chr(221)=>611,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556, chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>444,chr(254)=>500,chr(255)=>444); $enc = 'cp1252'; $uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); ?> font/zapfdingbats.php000064400000006676150212222260010710 0ustar000,chr(1)=>0,chr(2)=>0,chr(3)=>0,chr(4)=>0,chr(5)=>0,chr(6)=>0,chr(7)=>0,chr(8)=>0,chr(9)=>0,chr(10)=>0,chr(11)=>0,chr(12)=>0,chr(13)=>0,chr(14)=>0,chr(15)=>0,chr(16)=>0,chr(17)=>0,chr(18)=>0,chr(19)=>0,chr(20)=>0,chr(21)=>0, chr(22)=>0,chr(23)=>0,chr(24)=>0,chr(25)=>0,chr(26)=>0,chr(27)=>0,chr(28)=>0,chr(29)=>0,chr(30)=>0,chr(31)=>0,' '=>278,'!'=>974,'"'=>961,'#'=>974,'$'=>980,'%'=>719,'&'=>789,'\''=>790,'('=>791,')'=>690,'*'=>960,'+'=>939, ','=>549,'-'=>855,'.'=>911,'/'=>933,'0'=>911,'1'=>945,'2'=>974,'3'=>755,'4'=>846,'5'=>762,'6'=>761,'7'=>571,'8'=>677,'9'=>763,':'=>760,';'=>759,'<'=>754,'='=>494,'>'=>552,'?'=>537,'@'=>577,'A'=>692, 'B'=>786,'C'=>788,'D'=>788,'E'=>790,'F'=>793,'G'=>794,'H'=>816,'I'=>823,'J'=>789,'K'=>841,'L'=>823,'M'=>833,'N'=>816,'O'=>831,'P'=>923,'Q'=>744,'R'=>723,'S'=>749,'T'=>790,'U'=>792,'V'=>695,'W'=>776, 'X'=>768,'Y'=>792,'Z'=>759,'['=>707,'\\'=>708,']'=>682,'^'=>701,'_'=>826,'`'=>815,'a'=>789,'b'=>789,'c'=>707,'d'=>687,'e'=>696,'f'=>689,'g'=>786,'h'=>787,'i'=>713,'j'=>791,'k'=>785,'l'=>791,'m'=>873, 'n'=>761,'o'=>762,'p'=>762,'q'=>759,'r'=>759,'s'=>892,'t'=>892,'u'=>788,'v'=>784,'w'=>438,'x'=>138,'y'=>277,'z'=>415,'{'=>392,'|'=>392,'}'=>668,'~'=>668,chr(127)=>0,chr(128)=>390,chr(129)=>390,chr(130)=>317,chr(131)=>317, chr(132)=>276,chr(133)=>276,chr(134)=>509,chr(135)=>509,chr(136)=>410,chr(137)=>410,chr(138)=>234,chr(139)=>234,chr(140)=>334,chr(141)=>334,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0, chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>0,chr(161)=>732,chr(162)=>544,chr(163)=>544,chr(164)=>910,chr(165)=>667,chr(166)=>760,chr(167)=>760,chr(168)=>776,chr(169)=>595,chr(170)=>694,chr(171)=>626,chr(172)=>788,chr(173)=>788,chr(174)=>788,chr(175)=>788, chr(176)=>788,chr(177)=>788,chr(178)=>788,chr(179)=>788,chr(180)=>788,chr(181)=>788,chr(182)=>788,chr(183)=>788,chr(184)=>788,chr(185)=>788,chr(186)=>788,chr(187)=>788,chr(188)=>788,chr(189)=>788,chr(190)=>788,chr(191)=>788,chr(192)=>788,chr(193)=>788,chr(194)=>788,chr(195)=>788,chr(196)=>788,chr(197)=>788, chr(198)=>788,chr(199)=>788,chr(200)=>788,chr(201)=>788,chr(202)=>788,chr(203)=>788,chr(204)=>788,chr(205)=>788,chr(206)=>788,chr(207)=>788,chr(208)=>788,chr(209)=>788,chr(210)=>788,chr(211)=>788,chr(212)=>894,chr(213)=>838,chr(214)=>1016,chr(215)=>458,chr(216)=>748,chr(217)=>924,chr(218)=>748,chr(219)=>918, chr(220)=>927,chr(221)=>928,chr(222)=>928,chr(223)=>834,chr(224)=>873,chr(225)=>828,chr(226)=>924,chr(227)=>924,chr(228)=>917,chr(229)=>930,chr(230)=>931,chr(231)=>463,chr(232)=>883,chr(233)=>836,chr(234)=>836,chr(235)=>867,chr(236)=>867,chr(237)=>696,chr(238)=>696,chr(239)=>874,chr(240)=>0,chr(241)=>874, chr(242)=>760,chr(243)=>946,chr(244)=>771,chr(245)=>865,chr(246)=>771,chr(247)=>888,chr(248)=>967,chr(249)=>888,chr(250)=>831,chr(251)=>873,chr(252)=>927,chr(253)=>970,chr(254)=>918,chr(255)=>0); $uv = array(32=>32,33=>array(9985,4),37=>9742,38=>array(9990,4),42=>9755,43=>9758,44=>array(9996,28),72=>9733,73=>array(10025,35),108=>9679,109=>10061,110=>9632,111=>array(10063,4),115=>9650,116=>9660,117=>9670,118=>10070,119=>9687,120=>array(10072,7),128=>array(10088,14),161=>array(10081,7),168=>9827,169=>9830,170=>9829,171=>9824,172=>array(9312,10),182=>array(10102,31),213=>8594,214=>array(8596,2),216=>array(10136,24),241=>array(10161,14)); ?> font/symbol.php000064400000010560150212222260007524 0ustar00250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250, chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>713,'#'=>500,'$'=>549,'%'=>833,'&'=>778,'\''=>439,'('=>333,')'=>333,'*'=>500,'+'=>549, ','=>250,'-'=>549,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>549,'='=>549,'>'=>549,'?'=>444,'@'=>549,'A'=>722, 'B'=>667,'C'=>722,'D'=>612,'E'=>611,'F'=>763,'G'=>603,'H'=>722,'I'=>333,'J'=>631,'K'=>722,'L'=>686,'M'=>889,'N'=>722,'O'=>722,'P'=>768,'Q'=>741,'R'=>556,'S'=>592,'T'=>611,'U'=>690,'V'=>439,'W'=>768, 'X'=>645,'Y'=>795,'Z'=>611,'['=>333,'\\'=>863,']'=>333,'^'=>658,'_'=>500,'`'=>500,'a'=>631,'b'=>549,'c'=>549,'d'=>494,'e'=>439,'f'=>521,'g'=>411,'h'=>603,'i'=>329,'j'=>603,'k'=>549,'l'=>549,'m'=>576, 'n'=>521,'o'=>549,'p'=>549,'q'=>521,'r'=>549,'s'=>603,'t'=>439,'u'=>576,'v'=>713,'w'=>686,'x'=>493,'y'=>686,'z'=>494,'{'=>480,'|'=>200,'}'=>480,'~'=>549,chr(127)=>0,chr(128)=>0,chr(129)=>0,chr(130)=>0,chr(131)=>0, chr(132)=>0,chr(133)=>0,chr(134)=>0,chr(135)=>0,chr(136)=>0,chr(137)=>0,chr(138)=>0,chr(139)=>0,chr(140)=>0,chr(141)=>0,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0, chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>750,chr(161)=>620,chr(162)=>247,chr(163)=>549,chr(164)=>167,chr(165)=>713,chr(166)=>500,chr(167)=>753,chr(168)=>753,chr(169)=>753,chr(170)=>753,chr(171)=>1042,chr(172)=>987,chr(173)=>603,chr(174)=>987,chr(175)=>603, chr(176)=>400,chr(177)=>549,chr(178)=>411,chr(179)=>549,chr(180)=>549,chr(181)=>713,chr(182)=>494,chr(183)=>460,chr(184)=>549,chr(185)=>549,chr(186)=>549,chr(187)=>549,chr(188)=>1000,chr(189)=>603,chr(190)=>1000,chr(191)=>658,chr(192)=>823,chr(193)=>686,chr(194)=>795,chr(195)=>987,chr(196)=>768,chr(197)=>768, chr(198)=>823,chr(199)=>768,chr(200)=>768,chr(201)=>713,chr(202)=>713,chr(203)=>713,chr(204)=>713,chr(205)=>713,chr(206)=>713,chr(207)=>713,chr(208)=>768,chr(209)=>713,chr(210)=>790,chr(211)=>790,chr(212)=>890,chr(213)=>823,chr(214)=>549,chr(215)=>250,chr(216)=>713,chr(217)=>603,chr(218)=>603,chr(219)=>1042, chr(220)=>987,chr(221)=>603,chr(222)=>987,chr(223)=>603,chr(224)=>494,chr(225)=>329,chr(226)=>790,chr(227)=>790,chr(228)=>786,chr(229)=>713,chr(230)=>384,chr(231)=>384,chr(232)=>384,chr(233)=>384,chr(234)=>384,chr(235)=>384,chr(236)=>494,chr(237)=>494,chr(238)=>494,chr(239)=>494,chr(240)=>0,chr(241)=>329, chr(242)=>274,chr(243)=>686,chr(244)=>686,chr(245)=>686,chr(246)=>384,chr(247)=>384,chr(248)=>384,chr(249)=>384,chr(250)=>384,chr(251)=>384,chr(252)=>494,chr(253)=>494,chr(254)=>494,chr(255)=>0); $uv = array(32=>160,33=>33,34=>8704,35=>35,36=>8707,37=>array(37,2),39=>8715,40=>array(40,2),42=>8727,43=>array(43,2),45=>8722,46=>array(46,18),64=>8773,65=>array(913,2),67=>935,68=>array(916,2),70=>934,71=>915,72=>919,73=>921,74=>977,75=>array(922,4),79=>array(927,2),81=>920,82=>929,83=>array(931,3),86=>962,87=>937,88=>926,89=>936,90=>918,91=>91,92=>8756,93=>93,94=>8869,95=>95,96=>63717,97=>array(945,2),99=>967,100=>array(948,2),102=>966,103=>947,104=>951,105=>953,106=>981,107=>array(954,4),111=>array(959,2),113=>952,114=>961,115=>array(963,3),118=>982,119=>969,120=>958,121=>968,122=>950,123=>array(123,3),126=>8764,160=>8364,161=>978,162=>8242,163=>8804,164=>8725,165=>8734,166=>402,167=>9827,168=>9830,169=>9829,170=>9824,171=>8596,172=>array(8592,4),176=>array(176,2),178=>8243,179=>8805,180=>215,181=>8733,182=>8706,183=>8226,184=>247,185=>array(8800,2),187=>8776,188=>8230,189=>array(63718,2),191=>8629,192=>8501,193=>8465,194=>8476,195=>8472,196=>8855,197=>8853,198=>8709,199=>array(8745,2),201=>8835,202=>8839,203=>8836,204=>8834,205=>8838,206=>array(8712,2),208=>8736,209=>8711,210=>63194,211=>63193,212=>63195,213=>8719,214=>8730,215=>8901,216=>172,217=>array(8743,2),219=>8660,220=>array(8656,4),224=>9674,225=>9001,226=>array(63720,3),229=>8721,230=>array(63723,10),241=>9002,242=>8747,243=>8992,244=>63733,245=>8993,246=>array(63734,9)); ?> font/courierb.php000064400000000665150212222260010036 0ustar00array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); ?> font/courierbi.php000064400000000674150212222260010207 0ustar00array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); ?> font/helvetica.php000064400000006660150212222260010171 0ustar00278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278, chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584, ','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667, 'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944, 'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833, 'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556, chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000, chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333, chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667, chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722, chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556, chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500); $enc = 'cp1252'; $uv = array(0=>array(0,128),128=>8364,130=>8218,131=>402,132=>8222,133=>8230,134=>array(8224,2),136=>710,137=>8240,138=>352,139=>8249,140=>338,142=>381,145=>array(8216,2),147=>array(8220,2),149=>8226,150=>array(8211,2),152=>732,153=>8482,154=>353,155=>8250,156=>339,158=>382,159=>376,160=>array(160,96)); ?>