Ultimate FAQ - Version 1.8.17

Version Description

  • Missing files didn't actually get added in, in the last update. They're there now.
Download this release

Release Info

Developer Rustaurius
Plugin Icon 128x128 Ultimate FAQ
Version 1.8.17
Comparing to
See all releases

Code changes from version 1.8.15 to 1.8.17

Files changed (54) hide show
  1. FPDF/makefont/cp1250.map +251 -251
  2. FPDF/makefont/cp1251.map +255 -255
  3. FPDF/makefont/cp1252.map +251 -251
  4. FPDF/makefont/cp1253.map +239 -239
  5. FPDF/makefont/cp1254.map +249 -249
  6. FPDF/makefont/cp1255.map +233 -233
  7. FPDF/makefont/cp1257.map +244 -244
  8. FPDF/makefont/cp1258.map +247 -247
  9. FPDF/makefont/cp874.map +225 -225
  10. FPDF/makefont/iso-8859-1.map +256 -256
  11. FPDF/makefont/iso-8859-11.map +248 -248
  12. FPDF/makefont/iso-8859-15.map +256 -256
  13. FPDF/makefont/iso-8859-16.map +256 -256
  14. FPDF/makefont/iso-8859-2.map +256 -256
  15. FPDF/makefont/iso-8859-4.map +256 -256
  16. FPDF/makefont/iso-8859-5.map +256 -256
  17. FPDF/makefont/iso-8859-7.map +250 -250
  18. FPDF/makefont/iso-8859-9.map +256 -256
  19. FPDF/makefont/koi8-r.map +256 -256
  20. FPDF/makefont/koi8-u.map +256 -256
  21. Functions/EWD_UFAQ_Deactivation_Survey.php +68 -68
  22. Functions/EWD_UFAQ_Initial_Data.php +45 -0
  23. Functions/Process_Ajax.php +54 -1
  24. Main.php +405 -405
  25. PHPSpreadsheet/vendor/autoload.php +7 -7
  26. PHPSpreadsheet/vendor/composer/ClassLoader.php +445 -445
  27. PHPSpreadsheet/vendor/composer/LICENSE +21 -21
  28. PHPSpreadsheet/vendor/composer/autoload_classmap.php +9 -9
  29. PHPSpreadsheet/vendor/composer/autoload_namespaces.php +9 -9
  30. PHPSpreadsheet/vendor/composer/autoload_psr4.php +11 -11
  31. PHPSpreadsheet/vendor/composer/autoload_real.php +52 -52
  32. PHPSpreadsheet/vendor/composer/autoload_static.php +36 -36
  33. PHPSpreadsheet/vendor/composer/installed.json +142 -142
  34. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.gitattributes +2 -2
  35. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.github/ISSUE_TEMPLATE.md +31 -31
  36. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.github/PULL_REQUEST_TEMPLATE.md +16 -16
  37. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.github/stale.yml +22 -22
  38. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.github/support.yml +15 -15
  39. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.gitignore +11 -11
  40. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.php_cs.dist +181 -181
  41. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.scrutinizer.yml +27 -27
  42. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.travis.yml +40 -40
  43. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/CHANGELOG.PHPExcel.md +1593 -1593
  44. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/CHANGELOG.md +124 -124
  45. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/CONTRIBUTING.md +11 -11
  46. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/LICENSE +344 -344
  47. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/bin/migrate-from-phpexcel +8 -8
  48. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/bin/pre-commit +33 -33
  49. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/composer.json +78 -78
  50. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/composer.lock +3103 -3103
  51. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/mkdocs.yml +10 -10
  52. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/phpunit.xml.dist +22 -22
  53. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/src/Bootstrap.php +22 -22
  54. PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php +0 -2922
FPDF/makefont/cp1250.map CHANGED
@@ -1,251 +1,251 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+20AC Euro
130
- !82 U+201A quotesinglbase
131
- !84 U+201E quotedblbase
132
- !85 U+2026 ellipsis
133
- !86 U+2020 dagger
134
- !87 U+2021 daggerdbl
135
- !89 U+2030 perthousand
136
- !8A U+0160 Scaron
137
- !8B U+2039 guilsinglleft
138
- !8C U+015A Sacute
139
- !8D U+0164 Tcaron
140
- !8E U+017D Zcaron
141
- !8F U+0179 Zacute
142
- !91 U+2018 quoteleft
143
- !92 U+2019 quoteright
144
- !93 U+201C quotedblleft
145
- !94 U+201D quotedblright
146
- !95 U+2022 bullet
147
- !96 U+2013 endash
148
- !97 U+2014 emdash
149
- !99 U+2122 trademark
150
- !9A U+0161 scaron
151
- !9B U+203A guilsinglright
152
- !9C U+015B sacute
153
- !9D U+0165 tcaron
154
- !9E U+017E zcaron
155
- !9F U+017A zacute
156
- !A0 U+00A0 space
157
- !A1 U+02C7 caron
158
- !A2 U+02D8 breve
159
- !A3 U+0141 Lslash
160
- !A4 U+00A4 currency
161
- !A5 U+0104 Aogonek
162
- !A6 U+00A6 brokenbar
163
- !A7 U+00A7 section
164
- !A8 U+00A8 dieresis
165
- !A9 U+00A9 copyright
166
- !AA U+015E Scedilla
167
- !AB U+00AB guillemotleft
168
- !AC U+00AC logicalnot
169
- !AD U+00AD hyphen
170
- !AE U+00AE registered
171
- !AF U+017B Zdotaccent
172
- !B0 U+00B0 degree
173
- !B1 U+00B1 plusminus
174
- !B2 U+02DB ogonek
175
- !B3 U+0142 lslash
176
- !B4 U+00B4 acute
177
- !B5 U+00B5 mu
178
- !B6 U+00B6 paragraph
179
- !B7 U+00B7 periodcentered
180
- !B8 U+00B8 cedilla
181
- !B9 U+0105 aogonek
182
- !BA U+015F scedilla
183
- !BB U+00BB guillemotright
184
- !BC U+013D Lcaron
185
- !BD U+02DD hungarumlaut
186
- !BE U+013E lcaron
187
- !BF U+017C zdotaccent
188
- !C0 U+0154 Racute
189
- !C1 U+00C1 Aacute
190
- !C2 U+00C2 Acircumflex
191
- !C3 U+0102 Abreve
192
- !C4 U+00C4 Adieresis
193
- !C5 U+0139 Lacute
194
- !C6 U+0106 Cacute
195
- !C7 U+00C7 Ccedilla
196
- !C8 U+010C Ccaron
197
- !C9 U+00C9 Eacute
198
- !CA U+0118 Eogonek
199
- !CB U+00CB Edieresis
200
- !CC U+011A Ecaron
201
- !CD U+00CD Iacute
202
- !CE U+00CE Icircumflex
203
- !CF U+010E Dcaron
204
- !D0 U+0110 Dcroat
205
- !D1 U+0143 Nacute
206
- !D2 U+0147 Ncaron
207
- !D3 U+00D3 Oacute
208
- !D4 U+00D4 Ocircumflex
209
- !D5 U+0150 Ohungarumlaut
210
- !D6 U+00D6 Odieresis
211
- !D7 U+00D7 multiply
212
- !D8 U+0158 Rcaron
213
- !D9 U+016E Uring
214
- !DA U+00DA Uacute
215
- !DB U+0170 Uhungarumlaut
216
- !DC U+00DC Udieresis
217
- !DD U+00DD Yacute
218
- !DE U+0162 Tcommaaccent
219
- !DF U+00DF germandbls
220
- !E0 U+0155 racute
221
- !E1 U+00E1 aacute
222
- !E2 U+00E2 acircumflex
223
- !E3 U+0103 abreve
224
- !E4 U+00E4 adieresis
225
- !E5 U+013A lacute
226
- !E6 U+0107 cacute
227
- !E7 U+00E7 ccedilla
228
- !E8 U+010D ccaron
229
- !E9 U+00E9 eacute
230
- !EA U+0119 eogonek
231
- !EB U+00EB edieresis
232
- !EC U+011B ecaron
233
- !ED U+00ED iacute
234
- !EE U+00EE icircumflex
235
- !EF U+010F dcaron
236
- !F0 U+0111 dcroat
237
- !F1 U+0144 nacute
238
- !F2 U+0148 ncaron
239
- !F3 U+00F3 oacute
240
- !F4 U+00F4 ocircumflex
241
- !F5 U+0151 ohungarumlaut
242
- !F6 U+00F6 odieresis
243
- !F7 U+00F7 divide
244
- !F8 U+0159 rcaron
245
- !F9 U+016F uring
246
- !FA U+00FA uacute
247
- !FB U+0171 uhungarumlaut
248
- !FC U+00FC udieresis
249
- !FD U+00FD yacute
250
- !FE U+0163 tcommaaccent
251
- !FF U+02D9 dotaccent
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+20AC Euro
130
+ !82 U+201A quotesinglbase
131
+ !84 U+201E quotedblbase
132
+ !85 U+2026 ellipsis
133
+ !86 U+2020 dagger
134
+ !87 U+2021 daggerdbl
135
+ !89 U+2030 perthousand
136
+ !8A U+0160 Scaron
137
+ !8B U+2039 guilsinglleft
138
+ !8C U+015A Sacute
139
+ !8D U+0164 Tcaron
140
+ !8E U+017D Zcaron
141
+ !8F U+0179 Zacute
142
+ !91 U+2018 quoteleft
143
+ !92 U+2019 quoteright
144
+ !93 U+201C quotedblleft
145
+ !94 U+201D quotedblright
146
+ !95 U+2022 bullet
147
+ !96 U+2013 endash
148
+ !97 U+2014 emdash
149
+ !99 U+2122 trademark
150
+ !9A U+0161 scaron
151
+ !9B U+203A guilsinglright
152
+ !9C U+015B sacute
153
+ !9D U+0165 tcaron
154
+ !9E U+017E zcaron
155
+ !9F U+017A zacute
156
+ !A0 U+00A0 space
157
+ !A1 U+02C7 caron
158
+ !A2 U+02D8 breve
159
+ !A3 U+0141 Lslash
160
+ !A4 U+00A4 currency
161
+ !A5 U+0104 Aogonek
162
+ !A6 U+00A6 brokenbar
163
+ !A7 U+00A7 section
164
+ !A8 U+00A8 dieresis
165
+ !A9 U+00A9 copyright
166
+ !AA U+015E Scedilla
167
+ !AB U+00AB guillemotleft
168
+ !AC U+00AC logicalnot
169
+ !AD U+00AD hyphen
170
+ !AE U+00AE registered
171
+ !AF U+017B Zdotaccent
172
+ !B0 U+00B0 degree
173
+ !B1 U+00B1 plusminus
174
+ !B2 U+02DB ogonek
175
+ !B3 U+0142 lslash
176
+ !B4 U+00B4 acute
177
+ !B5 U+00B5 mu
178
+ !B6 U+00B6 paragraph
179
+ !B7 U+00B7 periodcentered
180
+ !B8 U+00B8 cedilla
181
+ !B9 U+0105 aogonek
182
+ !BA U+015F scedilla
183
+ !BB U+00BB guillemotright
184
+ !BC U+013D Lcaron
185
+ !BD U+02DD hungarumlaut
186
+ !BE U+013E lcaron
187
+ !BF U+017C zdotaccent
188
+ !C0 U+0154 Racute
189
+ !C1 U+00C1 Aacute
190
+ !C2 U+00C2 Acircumflex
191
+ !C3 U+0102 Abreve
192
+ !C4 U+00C4 Adieresis
193
+ !C5 U+0139 Lacute
194
+ !C6 U+0106 Cacute
195
+ !C7 U+00C7 Ccedilla
196
+ !C8 U+010C Ccaron
197
+ !C9 U+00C9 Eacute
198
+ !CA U+0118 Eogonek
199
+ !CB U+00CB Edieresis
200
+ !CC U+011A Ecaron
201
+ !CD U+00CD Iacute
202
+ !CE U+00CE Icircumflex
203
+ !CF U+010E Dcaron
204
+ !D0 U+0110 Dcroat
205
+ !D1 U+0143 Nacute
206
+ !D2 U+0147 Ncaron
207
+ !D3 U+00D3 Oacute
208
+ !D4 U+00D4 Ocircumflex
209
+ !D5 U+0150 Ohungarumlaut
210
+ !D6 U+00D6 Odieresis
211
+ !D7 U+00D7 multiply
212
+ !D8 U+0158 Rcaron
213
+ !D9 U+016E Uring
214
+ !DA U+00DA Uacute
215
+ !DB U+0170 Uhungarumlaut
216
+ !DC U+00DC Udieresis
217
+ !DD U+00DD Yacute
218
+ !DE U+0162 Tcommaaccent
219
+ !DF U+00DF germandbls
220
+ !E0 U+0155 racute
221
+ !E1 U+00E1 aacute
222
+ !E2 U+00E2 acircumflex
223
+ !E3 U+0103 abreve
224
+ !E4 U+00E4 adieresis
225
+ !E5 U+013A lacute
226
+ !E6 U+0107 cacute
227
+ !E7 U+00E7 ccedilla
228
+ !E8 U+010D ccaron
229
+ !E9 U+00E9 eacute
230
+ !EA U+0119 eogonek
231
+ !EB U+00EB edieresis
232
+ !EC U+011B ecaron
233
+ !ED U+00ED iacute
234
+ !EE U+00EE icircumflex
235
+ !EF U+010F dcaron
236
+ !F0 U+0111 dcroat
237
+ !F1 U+0144 nacute
238
+ !F2 U+0148 ncaron
239
+ !F3 U+00F3 oacute
240
+ !F4 U+00F4 ocircumflex
241
+ !F5 U+0151 ohungarumlaut
242
+ !F6 U+00F6 odieresis
243
+ !F7 U+00F7 divide
244
+ !F8 U+0159 rcaron
245
+ !F9 U+016F uring
246
+ !FA U+00FA uacute
247
+ !FB U+0171 uhungarumlaut
248
+ !FC U+00FC udieresis
249
+ !FD U+00FD yacute
250
+ !FE U+0163 tcommaaccent
251
+ !FF U+02D9 dotaccent
FPDF/makefont/cp1251.map CHANGED
@@ -1,255 +1,255 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+0402 afii10051
130
- !81 U+0403 afii10052
131
- !82 U+201A quotesinglbase
132
- !83 U+0453 afii10100
133
- !84 U+201E quotedblbase
134
- !85 U+2026 ellipsis
135
- !86 U+2020 dagger
136
- !87 U+2021 daggerdbl
137
- !88 U+20AC Euro
138
- !89 U+2030 perthousand
139
- !8A U+0409 afii10058
140
- !8B U+2039 guilsinglleft
141
- !8C U+040A afii10059
142
- !8D U+040C afii10061
143
- !8E U+040B afii10060
144
- !8F U+040F afii10145
145
- !90 U+0452 afii10099
146
- !91 U+2018 quoteleft
147
- !92 U+2019 quoteright
148
- !93 U+201C quotedblleft
149
- !94 U+201D quotedblright
150
- !95 U+2022 bullet
151
- !96 U+2013 endash
152
- !97 U+2014 emdash
153
- !99 U+2122 trademark
154
- !9A U+0459 afii10106
155
- !9B U+203A guilsinglright
156
- !9C U+045A afii10107
157
- !9D U+045C afii10109
158
- !9E U+045B afii10108
159
- !9F U+045F afii10193
160
- !A0 U+00A0 space
161
- !A1 U+040E afii10062
162
- !A2 U+045E afii10110
163
- !A3 U+0408 afii10057
164
- !A4 U+00A4 currency
165
- !A5 U+0490 afii10050
166
- !A6 U+00A6 brokenbar
167
- !A7 U+00A7 section
168
- !A8 U+0401 afii10023
169
- !A9 U+00A9 copyright
170
- !AA U+0404 afii10053
171
- !AB U+00AB guillemotleft
172
- !AC U+00AC logicalnot
173
- !AD U+00AD hyphen
174
- !AE U+00AE registered
175
- !AF U+0407 afii10056
176
- !B0 U+00B0 degree
177
- !B1 U+00B1 plusminus
178
- !B2 U+0406 afii10055
179
- !B3 U+0456 afii10103
180
- !B4 U+0491 afii10098
181
- !B5 U+00B5 mu
182
- !B6 U+00B6 paragraph
183
- !B7 U+00B7 periodcentered
184
- !B8 U+0451 afii10071
185
- !B9 U+2116 afii61352
186
- !BA U+0454 afii10101
187
- !BB U+00BB guillemotright
188
- !BC U+0458 afii10105
189
- !BD U+0405 afii10054
190
- !BE U+0455 afii10102
191
- !BF U+0457 afii10104
192
- !C0 U+0410 afii10017
193
- !C1 U+0411 afii10018
194
- !C2 U+0412 afii10019
195
- !C3 U+0413 afii10020
196
- !C4 U+0414 afii10021
197
- !C5 U+0415 afii10022
198
- !C6 U+0416 afii10024
199
- !C7 U+0417 afii10025
200
- !C8 U+0418 afii10026
201
- !C9 U+0419 afii10027
202
- !CA U+041A afii10028
203
- !CB U+041B afii10029
204
- !CC U+041C afii10030
205
- !CD U+041D afii10031
206
- !CE U+041E afii10032
207
- !CF U+041F afii10033
208
- !D0 U+0420 afii10034
209
- !D1 U+0421 afii10035
210
- !D2 U+0422 afii10036
211
- !D3 U+0423 afii10037
212
- !D4 U+0424 afii10038
213
- !D5 U+0425 afii10039
214
- !D6 U+0426 afii10040
215
- !D7 U+0427 afii10041
216
- !D8 U+0428 afii10042
217
- !D9 U+0429 afii10043
218
- !DA U+042A afii10044
219
- !DB U+042B afii10045
220
- !DC U+042C afii10046
221
- !DD U+042D afii10047
222
- !DE U+042E afii10048
223
- !DF U+042F afii10049
224
- !E0 U+0430 afii10065
225
- !E1 U+0431 afii10066
226
- !E2 U+0432 afii10067
227
- !E3 U+0433 afii10068
228
- !E4 U+0434 afii10069
229
- !E5 U+0435 afii10070
230
- !E6 U+0436 afii10072
231
- !E7 U+0437 afii10073
232
- !E8 U+0438 afii10074
233
- !E9 U+0439 afii10075
234
- !EA U+043A afii10076
235
- !EB U+043B afii10077
236
- !EC U+043C afii10078
237
- !ED U+043D afii10079
238
- !EE U+043E afii10080
239
- !EF U+043F afii10081
240
- !F0 U+0440 afii10082
241
- !F1 U+0441 afii10083
242
- !F2 U+0442 afii10084
243
- !F3 U+0443 afii10085
244
- !F4 U+0444 afii10086
245
- !F5 U+0445 afii10087
246
- !F6 U+0446 afii10088
247
- !F7 U+0447 afii10089
248
- !F8 U+0448 afii10090
249
- !F9 U+0449 afii10091
250
- !FA U+044A afii10092
251
- !FB U+044B afii10093
252
- !FC U+044C afii10094
253
- !FD U+044D afii10095
254
- !FE U+044E afii10096
255
- !FF U+044F afii10097
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+0402 afii10051
130
+ !81 U+0403 afii10052
131
+ !82 U+201A quotesinglbase
132
+ !83 U+0453 afii10100
133
+ !84 U+201E quotedblbase
134
+ !85 U+2026 ellipsis
135
+ !86 U+2020 dagger
136
+ !87 U+2021 daggerdbl
137
+ !88 U+20AC Euro
138
+ !89 U+2030 perthousand
139
+ !8A U+0409 afii10058
140
+ !8B U+2039 guilsinglleft
141
+ !8C U+040A afii10059
142
+ !8D U+040C afii10061
143
+ !8E U+040B afii10060
144
+ !8F U+040F afii10145
145
+ !90 U+0452 afii10099
146
+ !91 U+2018 quoteleft
147
+ !92 U+2019 quoteright
148
+ !93 U+201C quotedblleft
149
+ !94 U+201D quotedblright
150
+ !95 U+2022 bullet
151
+ !96 U+2013 endash
152
+ !97 U+2014 emdash
153
+ !99 U+2122 trademark
154
+ !9A U+0459 afii10106
155
+ !9B U+203A guilsinglright
156
+ !9C U+045A afii10107
157
+ !9D U+045C afii10109
158
+ !9E U+045B afii10108
159
+ !9F U+045F afii10193
160
+ !A0 U+00A0 space
161
+ !A1 U+040E afii10062
162
+ !A2 U+045E afii10110
163
+ !A3 U+0408 afii10057
164
+ !A4 U+00A4 currency
165
+ !A5 U+0490 afii10050
166
+ !A6 U+00A6 brokenbar
167
+ !A7 U+00A7 section
168
+ !A8 U+0401 afii10023
169
+ !A9 U+00A9 copyright
170
+ !AA U+0404 afii10053
171
+ !AB U+00AB guillemotleft
172
+ !AC U+00AC logicalnot
173
+ !AD U+00AD hyphen
174
+ !AE U+00AE registered
175
+ !AF U+0407 afii10056
176
+ !B0 U+00B0 degree
177
+ !B1 U+00B1 plusminus
178
+ !B2 U+0406 afii10055
179
+ !B3 U+0456 afii10103
180
+ !B4 U+0491 afii10098
181
+ !B5 U+00B5 mu
182
+ !B6 U+00B6 paragraph
183
+ !B7 U+00B7 periodcentered
184
+ !B8 U+0451 afii10071
185
+ !B9 U+2116 afii61352
186
+ !BA U+0454 afii10101
187
+ !BB U+00BB guillemotright
188
+ !BC U+0458 afii10105
189
+ !BD U+0405 afii10054
190
+ !BE U+0455 afii10102
191
+ !BF U+0457 afii10104
192
+ !C0 U+0410 afii10017
193
+ !C1 U+0411 afii10018
194
+ !C2 U+0412 afii10019
195
+ !C3 U+0413 afii10020
196
+ !C4 U+0414 afii10021
197
+ !C5 U+0415 afii10022
198
+ !C6 U+0416 afii10024
199
+ !C7 U+0417 afii10025
200
+ !C8 U+0418 afii10026
201
+ !C9 U+0419 afii10027
202
+ !CA U+041A afii10028
203
+ !CB U+041B afii10029
204
+ !CC U+041C afii10030
205
+ !CD U+041D afii10031
206
+ !CE U+041E afii10032
207
+ !CF U+041F afii10033
208
+ !D0 U+0420 afii10034
209
+ !D1 U+0421 afii10035
210
+ !D2 U+0422 afii10036
211
+ !D3 U+0423 afii10037
212
+ !D4 U+0424 afii10038
213
+ !D5 U+0425 afii10039
214
+ !D6 U+0426 afii10040
215
+ !D7 U+0427 afii10041
216
+ !D8 U+0428 afii10042
217
+ !D9 U+0429 afii10043
218
+ !DA U+042A afii10044
219
+ !DB U+042B afii10045
220
+ !DC U+042C afii10046
221
+ !DD U+042D afii10047
222
+ !DE U+042E afii10048
223
+ !DF U+042F afii10049
224
+ !E0 U+0430 afii10065
225
+ !E1 U+0431 afii10066
226
+ !E2 U+0432 afii10067
227
+ !E3 U+0433 afii10068
228
+ !E4 U+0434 afii10069
229
+ !E5 U+0435 afii10070
230
+ !E6 U+0436 afii10072
231
+ !E7 U+0437 afii10073
232
+ !E8 U+0438 afii10074
233
+ !E9 U+0439 afii10075
234
+ !EA U+043A afii10076
235
+ !EB U+043B afii10077
236
+ !EC U+043C afii10078
237
+ !ED U+043D afii10079
238
+ !EE U+043E afii10080
239
+ !EF U+043F afii10081
240
+ !F0 U+0440 afii10082
241
+ !F1 U+0441 afii10083
242
+ !F2 U+0442 afii10084
243
+ !F3 U+0443 afii10085
244
+ !F4 U+0444 afii10086
245
+ !F5 U+0445 afii10087
246
+ !F6 U+0446 afii10088
247
+ !F7 U+0447 afii10089
248
+ !F8 U+0448 afii10090
249
+ !F9 U+0449 afii10091
250
+ !FA U+044A afii10092
251
+ !FB U+044B afii10093
252
+ !FC U+044C afii10094
253
+ !FD U+044D afii10095
254
+ !FE U+044E afii10096
255
+ !FF U+044F afii10097
FPDF/makefont/cp1252.map CHANGED
@@ -1,251 +1,251 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+20AC Euro
130
- !82 U+201A quotesinglbase
131
- !83 U+0192 florin
132
- !84 U+201E quotedblbase
133
- !85 U+2026 ellipsis
134
- !86 U+2020 dagger
135
- !87 U+2021 daggerdbl
136
- !88 U+02C6 circumflex
137
- !89 U+2030 perthousand
138
- !8A U+0160 Scaron
139
- !8B U+2039 guilsinglleft
140
- !8C U+0152 OE
141
- !8E U+017D Zcaron
142
- !91 U+2018 quoteleft
143
- !92 U+2019 quoteright
144
- !93 U+201C quotedblleft
145
- !94 U+201D quotedblright
146
- !95 U+2022 bullet
147
- !96 U+2013 endash
148
- !97 U+2014 emdash
149
- !98 U+02DC tilde
150
- !99 U+2122 trademark
151
- !9A U+0161 scaron
152
- !9B U+203A guilsinglright
153
- !9C U+0153 oe
154
- !9E U+017E zcaron
155
- !9F U+0178 Ydieresis
156
- !A0 U+00A0 space
157
- !A1 U+00A1 exclamdown
158
- !A2 U+00A2 cent
159
- !A3 U+00A3 sterling
160
- !A4 U+00A4 currency
161
- !A5 U+00A5 yen
162
- !A6 U+00A6 brokenbar
163
- !A7 U+00A7 section
164
- !A8 U+00A8 dieresis
165
- !A9 U+00A9 copyright
166
- !AA U+00AA ordfeminine
167
- !AB U+00AB guillemotleft
168
- !AC U+00AC logicalnot
169
- !AD U+00AD hyphen
170
- !AE U+00AE registered
171
- !AF U+00AF macron
172
- !B0 U+00B0 degree
173
- !B1 U+00B1 plusminus
174
- !B2 U+00B2 twosuperior
175
- !B3 U+00B3 threesuperior
176
- !B4 U+00B4 acute
177
- !B5 U+00B5 mu
178
- !B6 U+00B6 paragraph
179
- !B7 U+00B7 periodcentered
180
- !B8 U+00B8 cedilla
181
- !B9 U+00B9 onesuperior
182
- !BA U+00BA ordmasculine
183
- !BB U+00BB guillemotright
184
- !BC U+00BC onequarter
185
- !BD U+00BD onehalf
186
- !BE U+00BE threequarters
187
- !BF U+00BF questiondown
188
- !C0 U+00C0 Agrave
189
- !C1 U+00C1 Aacute
190
- !C2 U+00C2 Acircumflex
191
- !C3 U+00C3 Atilde
192
- !C4 U+00C4 Adieresis
193
- !C5 U+00C5 Aring
194
- !C6 U+00C6 AE
195
- !C7 U+00C7 Ccedilla
196
- !C8 U+00C8 Egrave
197
- !C9 U+00C9 Eacute
198
- !CA U+00CA Ecircumflex
199
- !CB U+00CB Edieresis
200
- !CC U+00CC Igrave
201
- !CD U+00CD Iacute
202
- !CE U+00CE Icircumflex
203
- !CF U+00CF Idieresis
204
- !D0 U+00D0 Eth
205
- !D1 U+00D1 Ntilde
206
- !D2 U+00D2 Ograve
207
- !D3 U+00D3 Oacute
208
- !D4 U+00D4 Ocircumflex
209
- !D5 U+00D5 Otilde
210
- !D6 U+00D6 Odieresis
211
- !D7 U+00D7 multiply
212
- !D8 U+00D8 Oslash
213
- !D9 U+00D9 Ugrave
214
- !DA U+00DA Uacute
215
- !DB U+00DB Ucircumflex
216
- !DC U+00DC Udieresis
217
- !DD U+00DD Yacute
218
- !DE U+00DE Thorn
219
- !DF U+00DF germandbls
220
- !E0 U+00E0 agrave
221
- !E1 U+00E1 aacute
222
- !E2 U+00E2 acircumflex
223
- !E3 U+00E3 atilde
224
- !E4 U+00E4 adieresis
225
- !E5 U+00E5 aring
226
- !E6 U+00E6 ae
227
- !E7 U+00E7 ccedilla
228
- !E8 U+00E8 egrave
229
- !E9 U+00E9 eacute
230
- !EA U+00EA ecircumflex
231
- !EB U+00EB edieresis
232
- !EC U+00EC igrave
233
- !ED U+00ED iacute
234
- !EE U+00EE icircumflex
235
- !EF U+00EF idieresis
236
- !F0 U+00F0 eth
237
- !F1 U+00F1 ntilde
238
- !F2 U+00F2 ograve
239
- !F3 U+00F3 oacute
240
- !F4 U+00F4 ocircumflex
241
- !F5 U+00F5 otilde
242
- !F6 U+00F6 odieresis
243
- !F7 U+00F7 divide
244
- !F8 U+00F8 oslash
245
- !F9 U+00F9 ugrave
246
- !FA U+00FA uacute
247
- !FB U+00FB ucircumflex
248
- !FC U+00FC udieresis
249
- !FD U+00FD yacute
250
- !FE U+00FE thorn
251
- !FF U+00FF ydieresis
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+20AC Euro
130
+ !82 U+201A quotesinglbase
131
+ !83 U+0192 florin
132
+ !84 U+201E quotedblbase
133
+ !85 U+2026 ellipsis
134
+ !86 U+2020 dagger
135
+ !87 U+2021 daggerdbl
136
+ !88 U+02C6 circumflex
137
+ !89 U+2030 perthousand
138
+ !8A U+0160 Scaron
139
+ !8B U+2039 guilsinglleft
140
+ !8C U+0152 OE
141
+ !8E U+017D Zcaron
142
+ !91 U+2018 quoteleft
143
+ !92 U+2019 quoteright
144
+ !93 U+201C quotedblleft
145
+ !94 U+201D quotedblright
146
+ !95 U+2022 bullet
147
+ !96 U+2013 endash
148
+ !97 U+2014 emdash
149
+ !98 U+02DC tilde
150
+ !99 U+2122 trademark
151
+ !9A U+0161 scaron
152
+ !9B U+203A guilsinglright
153
+ !9C U+0153 oe
154
+ !9E U+017E zcaron
155
+ !9F U+0178 Ydieresis
156
+ !A0 U+00A0 space
157
+ !A1 U+00A1 exclamdown
158
+ !A2 U+00A2 cent
159
+ !A3 U+00A3 sterling
160
+ !A4 U+00A4 currency
161
+ !A5 U+00A5 yen
162
+ !A6 U+00A6 brokenbar
163
+ !A7 U+00A7 section
164
+ !A8 U+00A8 dieresis
165
+ !A9 U+00A9 copyright
166
+ !AA U+00AA ordfeminine
167
+ !AB U+00AB guillemotleft
168
+ !AC U+00AC logicalnot
169
+ !AD U+00AD hyphen
170
+ !AE U+00AE registered
171
+ !AF U+00AF macron
172
+ !B0 U+00B0 degree
173
+ !B1 U+00B1 plusminus
174
+ !B2 U+00B2 twosuperior
175
+ !B3 U+00B3 threesuperior
176
+ !B4 U+00B4 acute
177
+ !B5 U+00B5 mu
178
+ !B6 U+00B6 paragraph
179
+ !B7 U+00B7 periodcentered
180
+ !B8 U+00B8 cedilla
181
+ !B9 U+00B9 onesuperior
182
+ !BA U+00BA ordmasculine
183
+ !BB U+00BB guillemotright
184
+ !BC U+00BC onequarter
185
+ !BD U+00BD onehalf
186
+ !BE U+00BE threequarters
187
+ !BF U+00BF questiondown
188
+ !C0 U+00C0 Agrave
189
+ !C1 U+00C1 Aacute
190
+ !C2 U+00C2 Acircumflex
191
+ !C3 U+00C3 Atilde
192
+ !C4 U+00C4 Adieresis
193
+ !C5 U+00C5 Aring
194
+ !C6 U+00C6 AE
195
+ !C7 U+00C7 Ccedilla
196
+ !C8 U+00C8 Egrave
197
+ !C9 U+00C9 Eacute
198
+ !CA U+00CA Ecircumflex
199
+ !CB U+00CB Edieresis
200
+ !CC U+00CC Igrave
201
+ !CD U+00CD Iacute
202
+ !CE U+00CE Icircumflex
203
+ !CF U+00CF Idieresis
204
+ !D0 U+00D0 Eth
205
+ !D1 U+00D1 Ntilde
206
+ !D2 U+00D2 Ograve
207
+ !D3 U+00D3 Oacute
208
+ !D4 U+00D4 Ocircumflex
209
+ !D5 U+00D5 Otilde
210
+ !D6 U+00D6 Odieresis
211
+ !D7 U+00D7 multiply
212
+ !D8 U+00D8 Oslash
213
+ !D9 U+00D9 Ugrave
214
+ !DA U+00DA Uacute
215
+ !DB U+00DB Ucircumflex
216
+ !DC U+00DC Udieresis
217
+ !DD U+00DD Yacute
218
+ !DE U+00DE Thorn
219
+ !DF U+00DF germandbls
220
+ !E0 U+00E0 agrave
221
+ !E1 U+00E1 aacute
222
+ !E2 U+00E2 acircumflex
223
+ !E3 U+00E3 atilde
224
+ !E4 U+00E4 adieresis
225
+ !E5 U+00E5 aring
226
+ !E6 U+00E6 ae
227
+ !E7 U+00E7 ccedilla
228
+ !E8 U+00E8 egrave
229
+ !E9 U+00E9 eacute
230
+ !EA U+00EA ecircumflex
231
+ !EB U+00EB edieresis
232
+ !EC U+00EC igrave
233
+ !ED U+00ED iacute
234
+ !EE U+00EE icircumflex
235
+ !EF U+00EF idieresis
236
+ !F0 U+00F0 eth
237
+ !F1 U+00F1 ntilde
238
+ !F2 U+00F2 ograve
239
+ !F3 U+00F3 oacute
240
+ !F4 U+00F4 ocircumflex
241
+ !F5 U+00F5 otilde
242
+ !F6 U+00F6 odieresis
243
+ !F7 U+00F7 divide
244
+ !F8 U+00F8 oslash
245
+ !F9 U+00F9 ugrave
246
+ !FA U+00FA uacute
247
+ !FB U+00FB ucircumflex
248
+ !FC U+00FC udieresis
249
+ !FD U+00FD yacute
250
+ !FE U+00FE thorn
251
+ !FF U+00FF ydieresis
FPDF/makefont/cp1253.map CHANGED
@@ -1,239 +1,239 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+20AC Euro
130
- !82 U+201A quotesinglbase
131
- !83 U+0192 florin
132
- !84 U+201E quotedblbase
133
- !85 U+2026 ellipsis
134
- !86 U+2020 dagger
135
- !87 U+2021 daggerdbl
136
- !89 U+2030 perthousand
137
- !8B U+2039 guilsinglleft
138
- !91 U+2018 quoteleft
139
- !92 U+2019 quoteright
140
- !93 U+201C quotedblleft
141
- !94 U+201D quotedblright
142
- !95 U+2022 bullet
143
- !96 U+2013 endash
144
- !97 U+2014 emdash
145
- !99 U+2122 trademark
146
- !9B U+203A guilsinglright
147
- !A0 U+00A0 space
148
- !A1 U+0385 dieresistonos
149
- !A2 U+0386 Alphatonos
150
- !A3 U+00A3 sterling
151
- !A4 U+00A4 currency
152
- !A5 U+00A5 yen
153
- !A6 U+00A6 brokenbar
154
- !A7 U+00A7 section
155
- !A8 U+00A8 dieresis
156
- !A9 U+00A9 copyright
157
- !AB U+00AB guillemotleft
158
- !AC U+00AC logicalnot
159
- !AD U+00AD hyphen
160
- !AE U+00AE registered
161
- !AF U+2015 afii00208
162
- !B0 U+00B0 degree
163
- !B1 U+00B1 plusminus
164
- !B2 U+00B2 twosuperior
165
- !B3 U+00B3 threesuperior
166
- !B4 U+0384 tonos
167
- !B5 U+00B5 mu
168
- !B6 U+00B6 paragraph
169
- !B7 U+00B7 periodcentered
170
- !B8 U+0388 Epsilontonos
171
- !B9 U+0389 Etatonos
172
- !BA U+038A Iotatonos
173
- !BB U+00BB guillemotright
174
- !BC U+038C Omicrontonos
175
- !BD U+00BD onehalf
176
- !BE U+038E Upsilontonos
177
- !BF U+038F Omegatonos
178
- !C0 U+0390 iotadieresistonos
179
- !C1 U+0391 Alpha
180
- !C2 U+0392 Beta
181
- !C3 U+0393 Gamma
182
- !C4 U+0394 Delta
183
- !C5 U+0395 Epsilon
184
- !C6 U+0396 Zeta
185
- !C7 U+0397 Eta
186
- !C8 U+0398 Theta
187
- !C9 U+0399 Iota
188
- !CA U+039A Kappa
189
- !CB U+039B Lambda
190
- !CC U+039C Mu
191
- !CD U+039D Nu
192
- !CE U+039E Xi
193
- !CF U+039F Omicron
194
- !D0 U+03A0 Pi
195
- !D1 U+03A1 Rho
196
- !D3 U+03A3 Sigma
197
- !D4 U+03A4 Tau
198
- !D5 U+03A5 Upsilon
199
- !D6 U+03A6 Phi
200
- !D7 U+03A7 Chi
201
- !D8 U+03A8 Psi
202
- !D9 U+03A9 Omega
203
- !DA U+03AA Iotadieresis
204
- !DB U+03AB Upsilondieresis
205
- !DC U+03AC alphatonos
206
- !DD U+03AD epsilontonos
207
- !DE U+03AE etatonos
208
- !DF U+03AF iotatonos
209
- !E0 U+03B0 upsilondieresistonos
210
- !E1 U+03B1 alpha
211
- !E2 U+03B2 beta
212
- !E3 U+03B3 gamma
213
- !E4 U+03B4 delta
214
- !E5 U+03B5 epsilon
215
- !E6 U+03B6 zeta
216
- !E7 U+03B7 eta
217
- !E8 U+03B8 theta
218
- !E9 U+03B9 iota
219
- !EA U+03BA kappa
220
- !EB U+03BB lambda
221
- !EC U+03BC mu
222
- !ED U+03BD nu
223
- !EE U+03BE xi
224
- !EF U+03BF omicron
225
- !F0 U+03C0 pi
226
- !F1 U+03C1 rho
227
- !F2 U+03C2 sigma1
228
- !F3 U+03C3 sigma
229
- !F4 U+03C4 tau
230
- !F5 U+03C5 upsilon
231
- !F6 U+03C6 phi
232
- !F7 U+03C7 chi
233
- !F8 U+03C8 psi
234
- !F9 U+03C9 omega
235
- !FA U+03CA iotadieresis
236
- !FB U+03CB upsilondieresis
237
- !FC U+03CC omicrontonos
238
- !FD U+03CD upsilontonos
239
- !FE U+03CE omegatonos
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+20AC Euro
130
+ !82 U+201A quotesinglbase
131
+ !83 U+0192 florin
132
+ !84 U+201E quotedblbase
133
+ !85 U+2026 ellipsis
134
+ !86 U+2020 dagger
135
+ !87 U+2021 daggerdbl
136
+ !89 U+2030 perthousand
137
+ !8B U+2039 guilsinglleft
138
+ !91 U+2018 quoteleft
139
+ !92 U+2019 quoteright
140
+ !93 U+201C quotedblleft
141
+ !94 U+201D quotedblright
142
+ !95 U+2022 bullet
143
+ !96 U+2013 endash
144
+ !97 U+2014 emdash
145
+ !99 U+2122 trademark
146
+ !9B U+203A guilsinglright
147
+ !A0 U+00A0 space
148
+ !A1 U+0385 dieresistonos
149
+ !A2 U+0386 Alphatonos
150
+ !A3 U+00A3 sterling
151
+ !A4 U+00A4 currency
152
+ !A5 U+00A5 yen
153
+ !A6 U+00A6 brokenbar
154
+ !A7 U+00A7 section
155
+ !A8 U+00A8 dieresis
156
+ !A9 U+00A9 copyright
157
+ !AB U+00AB guillemotleft
158
+ !AC U+00AC logicalnot
159
+ !AD U+00AD hyphen
160
+ !AE U+00AE registered
161
+ !AF U+2015 afii00208
162
+ !B0 U+00B0 degree
163
+ !B1 U+00B1 plusminus
164
+ !B2 U+00B2 twosuperior
165
+ !B3 U+00B3 threesuperior
166
+ !B4 U+0384 tonos
167
+ !B5 U+00B5 mu
168
+ !B6 U+00B6 paragraph
169
+ !B7 U+00B7 periodcentered
170
+ !B8 U+0388 Epsilontonos
171
+ !B9 U+0389 Etatonos
172
+ !BA U+038A Iotatonos
173
+ !BB U+00BB guillemotright
174
+ !BC U+038C Omicrontonos
175
+ !BD U+00BD onehalf
176
+ !BE U+038E Upsilontonos
177
+ !BF U+038F Omegatonos
178
+ !C0 U+0390 iotadieresistonos
179
+ !C1 U+0391 Alpha
180
+ !C2 U+0392 Beta
181
+ !C3 U+0393 Gamma
182
+ !C4 U+0394 Delta
183
+ !C5 U+0395 Epsilon
184
+ !C6 U+0396 Zeta
185
+ !C7 U+0397 Eta
186
+ !C8 U+0398 Theta
187
+ !C9 U+0399 Iota
188
+ !CA U+039A Kappa
189
+ !CB U+039B Lambda
190
+ !CC U+039C Mu
191
+ !CD U+039D Nu
192
+ !CE U+039E Xi
193
+ !CF U+039F Omicron
194
+ !D0 U+03A0 Pi
195
+ !D1 U+03A1 Rho
196
+ !D3 U+03A3 Sigma
197
+ !D4 U+03A4 Tau
198
+ !D5 U+03A5 Upsilon
199
+ !D6 U+03A6 Phi
200
+ !D7 U+03A7 Chi
201
+ !D8 U+03A8 Psi
202
+ !D9 U+03A9 Omega
203
+ !DA U+03AA Iotadieresis
204
+ !DB U+03AB Upsilondieresis
205
+ !DC U+03AC alphatonos
206
+ !DD U+03AD epsilontonos
207
+ !DE U+03AE etatonos
208
+ !DF U+03AF iotatonos
209
+ !E0 U+03B0 upsilondieresistonos
210
+ !E1 U+03B1 alpha
211
+ !E2 U+03B2 beta
212
+ !E3 U+03B3 gamma
213
+ !E4 U+03B4 delta
214
+ !E5 U+03B5 epsilon
215
+ !E6 U+03B6 zeta
216
+ !E7 U+03B7 eta
217
+ !E8 U+03B8 theta
218
+ !E9 U+03B9 iota
219
+ !EA U+03BA kappa
220
+ !EB U+03BB lambda
221
+ !EC U+03BC mu
222
+ !ED U+03BD nu
223
+ !EE U+03BE xi
224
+ !EF U+03BF omicron
225
+ !F0 U+03C0 pi
226
+ !F1 U+03C1 rho
227
+ !F2 U+03C2 sigma1
228
+ !F3 U+03C3 sigma
229
+ !F4 U+03C4 tau
230
+ !F5 U+03C5 upsilon
231
+ !F6 U+03C6 phi
232
+ !F7 U+03C7 chi
233
+ !F8 U+03C8 psi
234
+ !F9 U+03C9 omega
235
+ !FA U+03CA iotadieresis
236
+ !FB U+03CB upsilondieresis
237
+ !FC U+03CC omicrontonos
238
+ !FD U+03CD upsilontonos
239
+ !FE U+03CE omegatonos
FPDF/makefont/cp1254.map CHANGED
@@ -1,249 +1,249 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+20AC Euro
130
- !82 U+201A quotesinglbase
131
- !83 U+0192 florin
132
- !84 U+201E quotedblbase
133
- !85 U+2026 ellipsis
134
- !86 U+2020 dagger
135
- !87 U+2021 daggerdbl
136
- !88 U+02C6 circumflex
137
- !89 U+2030 perthousand
138
- !8A U+0160 Scaron
139
- !8B U+2039 guilsinglleft
140
- !8C U+0152 OE
141
- !91 U+2018 quoteleft
142
- !92 U+2019 quoteright
143
- !93 U+201C quotedblleft
144
- !94 U+201D quotedblright
145
- !95 U+2022 bullet
146
- !96 U+2013 endash
147
- !97 U+2014 emdash
148
- !98 U+02DC tilde
149
- !99 U+2122 trademark
150
- !9A U+0161 scaron
151
- !9B U+203A guilsinglright
152
- !9C U+0153 oe
153
- !9F U+0178 Ydieresis
154
- !A0 U+00A0 space
155
- !A1 U+00A1 exclamdown
156
- !A2 U+00A2 cent
157
- !A3 U+00A3 sterling
158
- !A4 U+00A4 currency
159
- !A5 U+00A5 yen
160
- !A6 U+00A6 brokenbar
161
- !A7 U+00A7 section
162
- !A8 U+00A8 dieresis
163
- !A9 U+00A9 copyright
164
- !AA U+00AA ordfeminine
165
- !AB U+00AB guillemotleft
166
- !AC U+00AC logicalnot
167
- !AD U+00AD hyphen
168
- !AE U+00AE registered
169
- !AF U+00AF macron
170
- !B0 U+00B0 degree
171
- !B1 U+00B1 plusminus
172
- !B2 U+00B2 twosuperior
173
- !B3 U+00B3 threesuperior
174
- !B4 U+00B4 acute
175
- !B5 U+00B5 mu
176
- !B6 U+00B6 paragraph
177
- !B7 U+00B7 periodcentered
178
- !B8 U+00B8 cedilla
179
- !B9 U+00B9 onesuperior
180
- !BA U+00BA ordmasculine
181
- !BB U+00BB guillemotright
182
- !BC U+00BC onequarter
183
- !BD U+00BD onehalf
184
- !BE U+00BE threequarters
185
- !BF U+00BF questiondown
186
- !C0 U+00C0 Agrave
187
- !C1 U+00C1 Aacute
188
- !C2 U+00C2 Acircumflex
189
- !C3 U+00C3 Atilde
190
- !C4 U+00C4 Adieresis
191
- !C5 U+00C5 Aring
192
- !C6 U+00C6 AE
193
- !C7 U+00C7 Ccedilla
194
- !C8 U+00C8 Egrave
195
- !C9 U+00C9 Eacute
196
- !CA U+00CA Ecircumflex
197
- !CB U+00CB Edieresis
198
- !CC U+00CC Igrave
199
- !CD U+00CD Iacute
200
- !CE U+00CE Icircumflex
201
- !CF U+00CF Idieresis
202
- !D0 U+011E Gbreve
203
- !D1 U+00D1 Ntilde
204
- !D2 U+00D2 Ograve
205
- !D3 U+00D3 Oacute
206
- !D4 U+00D4 Ocircumflex
207
- !D5 U+00D5 Otilde
208
- !D6 U+00D6 Odieresis
209
- !D7 U+00D7 multiply
210
- !D8 U+00D8 Oslash
211
- !D9 U+00D9 Ugrave
212
- !DA U+00DA Uacute
213
- !DB U+00DB Ucircumflex
214
- !DC U+00DC Udieresis
215
- !DD U+0130 Idotaccent
216
- !DE U+015E Scedilla
217
- !DF U+00DF germandbls
218
- !E0 U+00E0 agrave
219
- !E1 U+00E1 aacute
220
- !E2 U+00E2 acircumflex
221
- !E3 U+00E3 atilde
222
- !E4 U+00E4 adieresis
223
- !E5 U+00E5 aring
224
- !E6 U+00E6 ae
225
- !E7 U+00E7 ccedilla
226
- !E8 U+00E8 egrave
227
- !E9 U+00E9 eacute
228
- !EA U+00EA ecircumflex
229
- !EB U+00EB edieresis
230
- !EC U+00EC igrave
231
- !ED U+00ED iacute
232
- !EE U+00EE icircumflex
233
- !EF U+00EF idieresis
234
- !F0 U+011F gbreve
235
- !F1 U+00F1 ntilde
236
- !F2 U+00F2 ograve
237
- !F3 U+00F3 oacute
238
- !F4 U+00F4 ocircumflex
239
- !F5 U+00F5 otilde
240
- !F6 U+00F6 odieresis
241
- !F7 U+00F7 divide
242
- !F8 U+00F8 oslash
243
- !F9 U+00F9 ugrave
244
- !FA U+00FA uacute
245
- !FB U+00FB ucircumflex
246
- !FC U+00FC udieresis
247
- !FD U+0131 dotlessi
248
- !FE U+015F scedilla
249
- !FF U+00FF ydieresis
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+20AC Euro
130
+ !82 U+201A quotesinglbase
131
+ !83 U+0192 florin
132
+ !84 U+201E quotedblbase
133
+ !85 U+2026 ellipsis
134
+ !86 U+2020 dagger
135
+ !87 U+2021 daggerdbl
136
+ !88 U+02C6 circumflex
137
+ !89 U+2030 perthousand
138
+ !8A U+0160 Scaron
139
+ !8B U+2039 guilsinglleft
140
+ !8C U+0152 OE
141
+ !91 U+2018 quoteleft
142
+ !92 U+2019 quoteright
143
+ !93 U+201C quotedblleft
144
+ !94 U+201D quotedblright
145
+ !95 U+2022 bullet
146
+ !96 U+2013 endash
147
+ !97 U+2014 emdash
148
+ !98 U+02DC tilde
149
+ !99 U+2122 trademark
150
+ !9A U+0161 scaron
151
+ !9B U+203A guilsinglright
152
+ !9C U+0153 oe
153
+ !9F U+0178 Ydieresis
154
+ !A0 U+00A0 space
155
+ !A1 U+00A1 exclamdown
156
+ !A2 U+00A2 cent
157
+ !A3 U+00A3 sterling
158
+ !A4 U+00A4 currency
159
+ !A5 U+00A5 yen
160
+ !A6 U+00A6 brokenbar
161
+ !A7 U+00A7 section
162
+ !A8 U+00A8 dieresis
163
+ !A9 U+00A9 copyright
164
+ !AA U+00AA ordfeminine
165
+ !AB U+00AB guillemotleft
166
+ !AC U+00AC logicalnot
167
+ !AD U+00AD hyphen
168
+ !AE U+00AE registered
169
+ !AF U+00AF macron
170
+ !B0 U+00B0 degree
171
+ !B1 U+00B1 plusminus
172
+ !B2 U+00B2 twosuperior
173
+ !B3 U+00B3 threesuperior
174
+ !B4 U+00B4 acute
175
+ !B5 U+00B5 mu
176
+ !B6 U+00B6 paragraph
177
+ !B7 U+00B7 periodcentered
178
+ !B8 U+00B8 cedilla
179
+ !B9 U+00B9 onesuperior
180
+ !BA U+00BA ordmasculine
181
+ !BB U+00BB guillemotright
182
+ !BC U+00BC onequarter
183
+ !BD U+00BD onehalf
184
+ !BE U+00BE threequarters
185
+ !BF U+00BF questiondown
186
+ !C0 U+00C0 Agrave
187
+ !C1 U+00C1 Aacute
188
+ !C2 U+00C2 Acircumflex
189
+ !C3 U+00C3 Atilde
190
+ !C4 U+00C4 Adieresis
191
+ !C5 U+00C5 Aring
192
+ !C6 U+00C6 AE
193
+ !C7 U+00C7 Ccedilla
194
+ !C8 U+00C8 Egrave
195
+ !C9 U+00C9 Eacute
196
+ !CA U+00CA Ecircumflex
197
+ !CB U+00CB Edieresis
198
+ !CC U+00CC Igrave
199
+ !CD U+00CD Iacute
200
+ !CE U+00CE Icircumflex
201
+ !CF U+00CF Idieresis
202
+ !D0 U+011E Gbreve
203
+ !D1 U+00D1 Ntilde
204
+ !D2 U+00D2 Ograve
205
+ !D3 U+00D3 Oacute
206
+ !D4 U+00D4 Ocircumflex
207
+ !D5 U+00D5 Otilde
208
+ !D6 U+00D6 Odieresis
209
+ !D7 U+00D7 multiply
210
+ !D8 U+00D8 Oslash
211
+ !D9 U+00D9 Ugrave
212
+ !DA U+00DA Uacute
213
+ !DB U+00DB Ucircumflex
214
+ !DC U+00DC Udieresis
215
+ !DD U+0130 Idotaccent
216
+ !DE U+015E Scedilla
217
+ !DF U+00DF germandbls
218
+ !E0 U+00E0 agrave
219
+ !E1 U+00E1 aacute
220
+ !E2 U+00E2 acircumflex
221
+ !E3 U+00E3 atilde
222
+ !E4 U+00E4 adieresis
223
+ !E5 U+00E5 aring
224
+ !E6 U+00E6 ae
225
+ !E7 U+00E7 ccedilla
226
+ !E8 U+00E8 egrave
227
+ !E9 U+00E9 eacute
228
+ !EA U+00EA ecircumflex
229
+ !EB U+00EB edieresis
230
+ !EC U+00EC igrave
231
+ !ED U+00ED iacute
232
+ !EE U+00EE icircumflex
233
+ !EF U+00EF idieresis
234
+ !F0 U+011F gbreve
235
+ !F1 U+00F1 ntilde
236
+ !F2 U+00F2 ograve
237
+ !F3 U+00F3 oacute
238
+ !F4 U+00F4 ocircumflex
239
+ !F5 U+00F5 otilde
240
+ !F6 U+00F6 odieresis
241
+ !F7 U+00F7 divide
242
+ !F8 U+00F8 oslash
243
+ !F9 U+00F9 ugrave
244
+ !FA U+00FA uacute
245
+ !FB U+00FB ucircumflex
246
+ !FC U+00FC udieresis
247
+ !FD U+0131 dotlessi
248
+ !FE U+015F scedilla
249
+ !FF U+00FF ydieresis
FPDF/makefont/cp1255.map CHANGED
@@ -1,233 +1,233 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+20AC Euro
130
- !82 U+201A quotesinglbase
131
- !83 U+0192 florin
132
- !84 U+201E quotedblbase
133
- !85 U+2026 ellipsis
134
- !86 U+2020 dagger
135
- !87 U+2021 daggerdbl
136
- !88 U+02C6 circumflex
137
- !89 U+2030 perthousand
138
- !8B U+2039 guilsinglleft
139
- !91 U+2018 quoteleft
140
- !92 U+2019 quoteright
141
- !93 U+201C quotedblleft
142
- !94 U+201D quotedblright
143
- !95 U+2022 bullet
144
- !96 U+2013 endash
145
- !97 U+2014 emdash
146
- !98 U+02DC tilde
147
- !99 U+2122 trademark
148
- !9B U+203A guilsinglright
149
- !A0 U+00A0 space
150
- !A1 U+00A1 exclamdown
151
- !A2 U+00A2 cent
152
- !A3 U+00A3 sterling
153
- !A4 U+20AA afii57636
154
- !A5 U+00A5 yen
155
- !A6 U+00A6 brokenbar
156
- !A7 U+00A7 section
157
- !A8 U+00A8 dieresis
158
- !A9 U+00A9 copyright
159
- !AA U+00D7 multiply
160
- !AB U+00AB guillemotleft
161
- !AC U+00AC logicalnot
162
- !AD U+00AD sfthyphen
163
- !AE U+00AE registered
164
- !AF U+00AF macron
165
- !B0 U+00B0 degree
166
- !B1 U+00B1 plusminus
167
- !B2 U+00B2 twosuperior
168
- !B3 U+00B3 threesuperior
169
- !B4 U+00B4 acute
170
- !B5 U+00B5 mu
171
- !B6 U+00B6 paragraph
172
- !B7 U+00B7 middot
173
- !B8 U+00B8 cedilla
174
- !B9 U+00B9 onesuperior
175
- !BA U+00F7 divide
176
- !BB U+00BB guillemotright
177
- !BC U+00BC onequarter
178
- !BD U+00BD onehalf
179
- !BE U+00BE threequarters
180
- !BF U+00BF questiondown
181
- !C0 U+05B0 afii57799
182
- !C1 U+05B1 afii57801
183
- !C2 U+05B2 afii57800
184
- !C3 U+05B3 afii57802
185
- !C4 U+05B4 afii57793
186
- !C5 U+05B5 afii57794
187
- !C6 U+05B6 afii57795
188
- !C7 U+05B7 afii57798
189
- !C8 U+05B8 afii57797
190
- !C9 U+05B9 afii57806
191
- !CB U+05BB afii57796
192
- !CC U+05BC afii57807
193
- !CD U+05BD afii57839
194
- !CE U+05BE afii57645
195
- !CF U+05BF afii57841
196
- !D0 U+05C0 afii57842
197
- !D1 U+05C1 afii57804
198
- !D2 U+05C2 afii57803
199
- !D3 U+05C3 afii57658
200
- !D4 U+05F0 afii57716
201
- !D5 U+05F1 afii57717
202
- !D6 U+05F2 afii57718
203
- !D7 U+05F3 gereshhebrew
204
- !D8 U+05F4 gershayimhebrew
205
- !E0 U+05D0 afii57664
206
- !E1 U+05D1 afii57665
207
- !E2 U+05D2 afii57666
208
- !E3 U+05D3 afii57667
209
- !E4 U+05D4 afii57668
210
- !E5 U+05D5 afii57669
211
- !E6 U+05D6 afii57670
212
- !E7 U+05D7 afii57671
213
- !E8 U+05D8 afii57672
214
- !E9 U+05D9 afii57673
215
- !EA U+05DA afii57674
216
- !EB U+05DB afii57675
217
- !EC U+05DC afii57676
218
- !ED U+05DD afii57677
219
- !EE U+05DE afii57678
220
- !EF U+05DF afii57679
221
- !F0 U+05E0 afii57680
222
- !F1 U+05E1 afii57681
223
- !F2 U+05E2 afii57682
224
- !F3 U+05E3 afii57683
225
- !F4 U+05E4 afii57684
226
- !F5 U+05E5 afii57685
227
- !F6 U+05E6 afii57686
228
- !F7 U+05E7 afii57687
229
- !F8 U+05E8 afii57688
230
- !F9 U+05E9 afii57689
231
- !FA U+05EA afii57690
232
- !FD U+200E afii299
233
- !FE U+200F afii300
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+20AC Euro
130
+ !82 U+201A quotesinglbase
131
+ !83 U+0192 florin
132
+ !84 U+201E quotedblbase
133
+ !85 U+2026 ellipsis
134
+ !86 U+2020 dagger
135
+ !87 U+2021 daggerdbl
136
+ !88 U+02C6 circumflex
137
+ !89 U+2030 perthousand
138
+ !8B U+2039 guilsinglleft
139
+ !91 U+2018 quoteleft
140
+ !92 U+2019 quoteright
141
+ !93 U+201C quotedblleft
142
+ !94 U+201D quotedblright
143
+ !95 U+2022 bullet
144
+ !96 U+2013 endash
145
+ !97 U+2014 emdash
146
+ !98 U+02DC tilde
147
+ !99 U+2122 trademark
148
+ !9B U+203A guilsinglright
149
+ !A0 U+00A0 space
150
+ !A1 U+00A1 exclamdown
151
+ !A2 U+00A2 cent
152
+ !A3 U+00A3 sterling
153
+ !A4 U+20AA afii57636
154
+ !A5 U+00A5 yen
155
+ !A6 U+00A6 brokenbar
156
+ !A7 U+00A7 section
157
+ !A8 U+00A8 dieresis
158
+ !A9 U+00A9 copyright
159
+ !AA U+00D7 multiply
160
+ !AB U+00AB guillemotleft
161
+ !AC U+00AC logicalnot
162
+ !AD U+00AD sfthyphen
163
+ !AE U+00AE registered
164
+ !AF U+00AF macron
165
+ !B0 U+00B0 degree
166
+ !B1 U+00B1 plusminus
167
+ !B2 U+00B2 twosuperior
168
+ !B3 U+00B3 threesuperior
169
+ !B4 U+00B4 acute
170
+ !B5 U+00B5 mu
171
+ !B6 U+00B6 paragraph
172
+ !B7 U+00B7 middot
173
+ !B8 U+00B8 cedilla
174
+ !B9 U+00B9 onesuperior
175
+ !BA U+00F7 divide
176
+ !BB U+00BB guillemotright
177
+ !BC U+00BC onequarter
178
+ !BD U+00BD onehalf
179
+ !BE U+00BE threequarters
180
+ !BF U+00BF questiondown
181
+ !C0 U+05B0 afii57799
182
+ !C1 U+05B1 afii57801
183
+ !C2 U+05B2 afii57800
184
+ !C3 U+05B3 afii57802
185
+ !C4 U+05B4 afii57793
186
+ !C5 U+05B5 afii57794
187
+ !C6 U+05B6 afii57795
188
+ !C7 U+05B7 afii57798
189
+ !C8 U+05B8 afii57797
190
+ !C9 U+05B9 afii57806
191
+ !CB U+05BB afii57796
192
+ !CC U+05BC afii57807
193
+ !CD U+05BD afii57839
194
+ !CE U+05BE afii57645
195
+ !CF U+05BF afii57841
196
+ !D0 U+05C0 afii57842
197
+ !D1 U+05C1 afii57804
198
+ !D2 U+05C2 afii57803
199
+ !D3 U+05C3 afii57658
200
+ !D4 U+05F0 afii57716
201
+ !D5 U+05F1 afii57717
202
+ !D6 U+05F2 afii57718
203
+ !D7 U+05F3 gereshhebrew
204
+ !D8 U+05F4 gershayimhebrew
205
+ !E0 U+05D0 afii57664
206
+ !E1 U+05D1 afii57665
207
+ !E2 U+05D2 afii57666
208
+ !E3 U+05D3 afii57667
209
+ !E4 U+05D4 afii57668
210
+ !E5 U+05D5 afii57669
211
+ !E6 U+05D6 afii57670
212
+ !E7 U+05D7 afii57671
213
+ !E8 U+05D8 afii57672
214
+ !E9 U+05D9 afii57673
215
+ !EA U+05DA afii57674
216
+ !EB U+05DB afii57675
217
+ !EC U+05DC afii57676
218
+ !ED U+05DD afii57677
219
+ !EE U+05DE afii57678
220
+ !EF U+05DF afii57679
221
+ !F0 U+05E0 afii57680
222
+ !F1 U+05E1 afii57681
223
+ !F2 U+05E2 afii57682
224
+ !F3 U+05E3 afii57683
225
+ !F4 U+05E4 afii57684
226
+ !F5 U+05E5 afii57685
227
+ !F6 U+05E6 afii57686
228
+ !F7 U+05E7 afii57687
229
+ !F8 U+05E8 afii57688
230
+ !F9 U+05E9 afii57689
231
+ !FA U+05EA afii57690
232
+ !FD U+200E afii299
233
+ !FE U+200F afii300
FPDF/makefont/cp1257.map CHANGED
@@ -1,244 +1,244 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+20AC Euro
130
- !82 U+201A quotesinglbase
131
- !84 U+201E quotedblbase
132
- !85 U+2026 ellipsis
133
- !86 U+2020 dagger
134
- !87 U+2021 daggerdbl
135
- !89 U+2030 perthousand
136
- !8B U+2039 guilsinglleft
137
- !8D U+00A8 dieresis
138
- !8E U+02C7 caron
139
- !8F U+00B8 cedilla
140
- !91 U+2018 quoteleft
141
- !92 U+2019 quoteright
142
- !93 U+201C quotedblleft
143
- !94 U+201D quotedblright
144
- !95 U+2022 bullet
145
- !96 U+2013 endash
146
- !97 U+2014 emdash
147
- !99 U+2122 trademark
148
- !9B U+203A guilsinglright
149
- !9D U+00AF macron
150
- !9E U+02DB ogonek
151
- !A0 U+00A0 space
152
- !A2 U+00A2 cent
153
- !A3 U+00A3 sterling
154
- !A4 U+00A4 currency
155
- !A6 U+00A6 brokenbar
156
- !A7 U+00A7 section
157
- !A8 U+00D8 Oslash
158
- !A9 U+00A9 copyright
159
- !AA U+0156 Rcommaaccent
160
- !AB U+00AB guillemotleft
161
- !AC U+00AC logicalnot
162
- !AD U+00AD hyphen
163
- !AE U+00AE registered
164
- !AF U+00C6 AE
165
- !B0 U+00B0 degree
166
- !B1 U+00B1 plusminus
167
- !B2 U+00B2 twosuperior
168
- !B3 U+00B3 threesuperior
169
- !B4 U+00B4 acute
170
- !B5 U+00B5 mu
171
- !B6 U+00B6 paragraph
172
- !B7 U+00B7 periodcentered
173
- !B8 U+00F8 oslash
174
- !B9 U+00B9 onesuperior
175
- !BA U+0157 rcommaaccent
176
- !BB U+00BB guillemotright
177
- !BC U+00BC onequarter
178
- !BD U+00BD onehalf
179
- !BE U+00BE threequarters
180
- !BF U+00E6 ae
181
- !C0 U+0104 Aogonek
182
- !C1 U+012E Iogonek
183
- !C2 U+0100 Amacron
184
- !C3 U+0106 Cacute
185
- !C4 U+00C4 Adieresis
186
- !C5 U+00C5 Aring
187
- !C6 U+0118 Eogonek
188
- !C7 U+0112 Emacron
189
- !C8 U+010C Ccaron
190
- !C9 U+00C9 Eacute
191
- !CA U+0179 Zacute
192
- !CB U+0116 Edotaccent
193
- !CC U+0122 Gcommaaccent
194
- !CD U+0136 Kcommaaccent
195
- !CE U+012A Imacron
196
- !CF U+013B Lcommaaccent
197
- !D0 U+0160 Scaron
198
- !D1 U+0143 Nacute
199
- !D2 U+0145 Ncommaaccent
200
- !D3 U+00D3 Oacute
201
- !D4 U+014C Omacron
202
- !D5 U+00D5 Otilde
203
- !D6 U+00D6 Odieresis
204
- !D7 U+00D7 multiply
205
- !D8 U+0172 Uogonek
206
- !D9 U+0141 Lslash
207
- !DA U+015A Sacute
208
- !DB U+016A Umacron
209
- !DC U+00DC Udieresis
210
- !DD U+017B Zdotaccent
211
- !DE U+017D Zcaron
212
- !DF U+00DF germandbls
213
- !E0 U+0105 aogonek
214
- !E1 U+012F iogonek
215
- !E2 U+0101 amacron
216
- !E3 U+0107 cacute
217
- !E4 U+00E4 adieresis
218
- !E5 U+00E5 aring
219
- !E6 U+0119 eogonek
220
- !E7 U+0113 emacron
221
- !E8 U+010D ccaron
222
- !E9 U+00E9 eacute
223
- !EA U+017A zacute
224
- !EB U+0117 edotaccent
225
- !EC U+0123 gcommaaccent
226
- !ED U+0137 kcommaaccent
227
- !EE U+012B imacron
228
- !EF U+013C lcommaaccent
229
- !F0 U+0161 scaron
230
- !F1 U+0144 nacute
231
- !F2 U+0146 ncommaaccent
232
- !F3 U+00F3 oacute
233
- !F4 U+014D omacron
234
- !F5 U+00F5 otilde
235
- !F6 U+00F6 odieresis
236
- !F7 U+00F7 divide
237
- !F8 U+0173 uogonek
238
- !F9 U+0142 lslash
239
- !FA U+015B sacute
240
- !FB U+016B umacron
241
- !FC U+00FC udieresis
242
- !FD U+017C zdotaccent
243
- !FE U+017E zcaron
244
- !FF U+02D9 dotaccent
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+20AC Euro
130
+ !82 U+201A quotesinglbase
131
+ !84 U+201E quotedblbase
132
+ !85 U+2026 ellipsis
133
+ !86 U+2020 dagger
134
+ !87 U+2021 daggerdbl
135
+ !89 U+2030 perthousand
136
+ !8B U+2039 guilsinglleft
137
+ !8D U+00A8 dieresis
138
+ !8E U+02C7 caron
139
+ !8F U+00B8 cedilla
140
+ !91 U+2018 quoteleft
141
+ !92 U+2019 quoteright
142
+ !93 U+201C quotedblleft
143
+ !94 U+201D quotedblright
144
+ !95 U+2022 bullet
145
+ !96 U+2013 endash
146
+ !97 U+2014 emdash
147
+ !99 U+2122 trademark
148
+ !9B U+203A guilsinglright
149
+ !9D U+00AF macron
150
+ !9E U+02DB ogonek
151
+ !A0 U+00A0 space
152
+ !A2 U+00A2 cent
153
+ !A3 U+00A3 sterling
154
+ !A4 U+00A4 currency
155
+ !A6 U+00A6 brokenbar
156
+ !A7 U+00A7 section
157
+ !A8 U+00D8 Oslash
158
+ !A9 U+00A9 copyright
159
+ !AA U+0156 Rcommaaccent
160
+ !AB U+00AB guillemotleft
161
+ !AC U+00AC logicalnot
162
+ !AD U+00AD hyphen
163
+ !AE U+00AE registered
164
+ !AF U+00C6 AE
165
+ !B0 U+00B0 degree
166
+ !B1 U+00B1 plusminus
167
+ !B2 U+00B2 twosuperior
168
+ !B3 U+00B3 threesuperior
169
+ !B4 U+00B4 acute
170
+ !B5 U+00B5 mu
171
+ !B6 U+00B6 paragraph
172
+ !B7 U+00B7 periodcentered
173
+ !B8 U+00F8 oslash
174
+ !B9 U+00B9 onesuperior
175
+ !BA U+0157 rcommaaccent
176
+ !BB U+00BB guillemotright
177
+ !BC U+00BC onequarter
178
+ !BD U+00BD onehalf
179
+ !BE U+00BE threequarters
180
+ !BF U+00E6 ae
181
+ !C0 U+0104 Aogonek
182
+ !C1 U+012E Iogonek
183
+ !C2 U+0100 Amacron
184
+ !C3 U+0106 Cacute
185
+ !C4 U+00C4 Adieresis
186
+ !C5 U+00C5 Aring
187
+ !C6 U+0118 Eogonek
188
+ !C7 U+0112 Emacron
189
+ !C8 U+010C Ccaron
190
+ !C9 U+00C9 Eacute
191
+ !CA U+0179 Zacute
192
+ !CB U+0116 Edotaccent
193
+ !CC U+0122 Gcommaaccent
194
+ !CD U+0136 Kcommaaccent
195
+ !CE U+012A Imacron
196
+ !CF U+013B Lcommaaccent
197
+ !D0 U+0160 Scaron
198
+ !D1 U+0143 Nacute
199
+ !D2 U+0145 Ncommaaccent
200
+ !D3 U+00D3 Oacute
201
+ !D4 U+014C Omacron
202
+ !D5 U+00D5 Otilde
203
+ !D6 U+00D6 Odieresis
204
+ !D7 U+00D7 multiply
205
+ !D8 U+0172 Uogonek
206
+ !D9 U+0141 Lslash
207
+ !DA U+015A Sacute
208
+ !DB U+016A Umacron
209
+ !DC U+00DC Udieresis
210
+ !DD U+017B Zdotaccent
211
+ !DE U+017D Zcaron
212
+ !DF U+00DF germandbls
213
+ !E0 U+0105 aogonek
214
+ !E1 U+012F iogonek
215
+ !E2 U+0101 amacron
216
+ !E3 U+0107 cacute
217
+ !E4 U+00E4 adieresis
218
+ !E5 U+00E5 aring
219
+ !E6 U+0119 eogonek
220
+ !E7 U+0113 emacron
221
+ !E8 U+010D ccaron
222
+ !E9 U+00E9 eacute
223
+ !EA U+017A zacute
224
+ !EB U+0117 edotaccent
225
+ !EC U+0123 gcommaaccent
226
+ !ED U+0137 kcommaaccent
227
+ !EE U+012B imacron
228
+ !EF U+013C lcommaaccent
229
+ !F0 U+0161 scaron
230
+ !F1 U+0144 nacute
231
+ !F2 U+0146 ncommaaccent
232
+ !F3 U+00F3 oacute
233
+ !F4 U+014D omacron
234
+ !F5 U+00F5 otilde
235
+ !F6 U+00F6 odieresis
236
+ !F7 U+00F7 divide
237
+ !F8 U+0173 uogonek
238
+ !F9 U+0142 lslash
239
+ !FA U+015B sacute
240
+ !FB U+016B umacron
241
+ !FC U+00FC udieresis
242
+ !FD U+017C zdotaccent
243
+ !FE U+017E zcaron
244
+ !FF U+02D9 dotaccent
FPDF/makefont/cp1258.map CHANGED
@@ -1,247 +1,247 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+20AC Euro
130
- !82 U+201A quotesinglbase
131
- !83 U+0192 florin
132
- !84 U+201E quotedblbase
133
- !85 U+2026 ellipsis
134
- !86 U+2020 dagger
135
- !87 U+2021 daggerdbl
136
- !88 U+02C6 circumflex
137
- !89 U+2030 perthousand
138
- !8B U+2039 guilsinglleft
139
- !8C U+0152 OE
140
- !91 U+2018 quoteleft
141
- !92 U+2019 quoteright
142
- !93 U+201C quotedblleft
143
- !94 U+201D quotedblright
144
- !95 U+2022 bullet
145
- !96 U+2013 endash
146
- !97 U+2014 emdash
147
- !98 U+02DC tilde
148
- !99 U+2122 trademark
149
- !9B U+203A guilsinglright
150
- !9C U+0153 oe
151
- !9F U+0178 Ydieresis
152
- !A0 U+00A0 space
153
- !A1 U+00A1 exclamdown
154
- !A2 U+00A2 cent
155
- !A3 U+00A3 sterling
156
- !A4 U+00A4 currency
157
- !A5 U+00A5 yen
158
- !A6 U+00A6 brokenbar
159
- !A7 U+00A7 section
160
- !A8 U+00A8 dieresis
161
- !A9 U+00A9 copyright
162
- !AA U+00AA ordfeminine
163
- !AB U+00AB guillemotleft
164
- !AC U+00AC logicalnot
165
- !AD U+00AD hyphen
166
- !AE U+00AE registered
167
- !AF U+00AF macron
168
- !B0 U+00B0 degree
169
- !B1 U+00B1 plusminus
170
- !B2 U+00B2 twosuperior
171
- !B3 U+00B3 threesuperior
172
- !B4 U+00B4 acute
173
- !B5 U+00B5 mu
174
- !B6 U+00B6 paragraph
175
- !B7 U+00B7 periodcentered
176
- !B8 U+00B8 cedilla
177
- !B9 U+00B9 onesuperior
178
- !BA U+00BA ordmasculine
179
- !BB U+00BB guillemotright
180
- !BC U+00BC onequarter
181
- !BD U+00BD onehalf
182
- !BE U+00BE threequarters
183
- !BF U+00BF questiondown
184
- !C0 U+00C0 Agrave
185
- !C1 U+00C1 Aacute
186
- !C2 U+00C2 Acircumflex
187
- !C3 U+0102 Abreve
188
- !C4 U+00C4 Adieresis
189
- !C5 U+00C5 Aring
190
- !C6 U+00C6 AE
191
- !C7 U+00C7 Ccedilla
192
- !C8 U+00C8 Egrave
193
- !C9 U+00C9 Eacute
194
- !CA U+00CA Ecircumflex
195
- !CB U+00CB Edieresis
196
- !CC U+0300 gravecomb
197
- !CD U+00CD Iacute
198
- !CE U+00CE Icircumflex
199
- !CF U+00CF Idieresis
200
- !D0 U+0110 Dcroat
201
- !D1 U+00D1 Ntilde
202
- !D2 U+0309 hookabovecomb
203
- !D3 U+00D3 Oacute
204
- !D4 U+00D4 Ocircumflex
205
- !D5 U+01A0 Ohorn
206
- !D6 U+00D6 Odieresis
207
- !D7 U+00D7 multiply
208
- !D8 U+00D8 Oslash
209
- !D9 U+00D9 Ugrave
210
- !DA U+00DA Uacute
211
- !DB U+00DB Ucircumflex
212
- !DC U+00DC Udieresis
213
- !DD U+01AF Uhorn
214
- !DE U+0303 tildecomb
215
- !DF U+00DF germandbls
216
- !E0 U+00E0 agrave
217
- !E1 U+00E1 aacute
218
- !E2 U+00E2 acircumflex
219
- !E3 U+0103 abreve
220
- !E4 U+00E4 adieresis
221
- !E5 U+00E5 aring
222
- !E6 U+00E6 ae
223
- !E7 U+00E7 ccedilla
224
- !E8 U+00E8 egrave
225
- !E9 U+00E9 eacute
226
- !EA U+00EA ecircumflex
227
- !EB U+00EB edieresis
228
- !EC U+0301 acutecomb
229
- !ED U+00ED iacute
230
- !EE U+00EE icircumflex
231
- !EF U+00EF idieresis
232
- !F0 U+0111 dcroat
233
- !F1 U+00F1 ntilde
234
- !F2 U+0323 dotbelowcomb
235
- !F3 U+00F3 oacute
236
- !F4 U+00F4 ocircumflex
237
- !F5 U+01A1 ohorn
238
- !F6 U+00F6 odieresis
239
- !F7 U+00F7 divide
240
- !F8 U+00F8 oslash
241
- !F9 U+00F9 ugrave
242
- !FA U+00FA uacute
243
- !FB U+00FB ucircumflex
244
- !FC U+00FC udieresis
245
- !FD U+01B0 uhorn
246
- !FE U+20AB dong
247
- !FF U+00FF ydieresis
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+20AC Euro
130
+ !82 U+201A quotesinglbase
131
+ !83 U+0192 florin
132
+ !84 U+201E quotedblbase
133
+ !85 U+2026 ellipsis
134
+ !86 U+2020 dagger
135
+ !87 U+2021 daggerdbl
136
+ !88 U+02C6 circumflex
137
+ !89 U+2030 perthousand
138
+ !8B U+2039 guilsinglleft
139
+ !8C U+0152 OE
140
+ !91 U+2018 quoteleft
141
+ !92 U+2019 quoteright
142
+ !93 U+201C quotedblleft
143
+ !94 U+201D quotedblright
144
+ !95 U+2022 bullet
145
+ !96 U+2013 endash
146
+ !97 U+2014 emdash
147
+ !98 U+02DC tilde
148
+ !99 U+2122 trademark
149
+ !9B U+203A guilsinglright
150
+ !9C U+0153 oe
151
+ !9F U+0178 Ydieresis
152
+ !A0 U+00A0 space
153
+ !A1 U+00A1 exclamdown
154
+ !A2 U+00A2 cent
155
+ !A3 U+00A3 sterling
156
+ !A4 U+00A4 currency
157
+ !A5 U+00A5 yen
158
+ !A6 U+00A6 brokenbar
159
+ !A7 U+00A7 section
160
+ !A8 U+00A8 dieresis
161
+ !A9 U+00A9 copyright
162
+ !AA U+00AA ordfeminine
163
+ !AB U+00AB guillemotleft
164
+ !AC U+00AC logicalnot
165
+ !AD U+00AD hyphen
166
+ !AE U+00AE registered
167
+ !AF U+00AF macron
168
+ !B0 U+00B0 degree
169
+ !B1 U+00B1 plusminus
170
+ !B2 U+00B2 twosuperior
171
+ !B3 U+00B3 threesuperior
172
+ !B4 U+00B4 acute
173
+ !B5 U+00B5 mu
174
+ !B6 U+00B6 paragraph
175
+ !B7 U+00B7 periodcentered
176
+ !B8 U+00B8 cedilla
177
+ !B9 U+00B9 onesuperior
178
+ !BA U+00BA ordmasculine
179
+ !BB U+00BB guillemotright
180
+ !BC U+00BC onequarter
181
+ !BD U+00BD onehalf
182
+ !BE U+00BE threequarters
183
+ !BF U+00BF questiondown
184
+ !C0 U+00C0 Agrave
185
+ !C1 U+00C1 Aacute
186
+ !C2 U+00C2 Acircumflex
187
+ !C3 U+0102 Abreve
188
+ !C4 U+00C4 Adieresis
189
+ !C5 U+00C5 Aring
190
+ !C6 U+00C6 AE
191
+ !C7 U+00C7 Ccedilla
192
+ !C8 U+00C8 Egrave
193
+ !C9 U+00C9 Eacute
194
+ !CA U+00CA Ecircumflex
195
+ !CB U+00CB Edieresis
196
+ !CC U+0300 gravecomb
197
+ !CD U+00CD Iacute
198
+ !CE U+00CE Icircumflex
199
+ !CF U+00CF Idieresis
200
+ !D0 U+0110 Dcroat
201
+ !D1 U+00D1 Ntilde
202
+ !D2 U+0309 hookabovecomb
203
+ !D3 U+00D3 Oacute
204
+ !D4 U+00D4 Ocircumflex
205
+ !D5 U+01A0 Ohorn
206
+ !D6 U+00D6 Odieresis
207
+ !D7 U+00D7 multiply
208
+ !D8 U+00D8 Oslash
209
+ !D9 U+00D9 Ugrave
210
+ !DA U+00DA Uacute
211
+ !DB U+00DB Ucircumflex
212
+ !DC U+00DC Udieresis
213
+ !DD U+01AF Uhorn
214
+ !DE U+0303 tildecomb
215
+ !DF U+00DF germandbls
216
+ !E0 U+00E0 agrave
217
+ !E1 U+00E1 aacute
218
+ !E2 U+00E2 acircumflex
219
+ !E3 U+0103 abreve
220
+ !E4 U+00E4 adieresis
221
+ !E5 U+00E5 aring
222
+ !E6 U+00E6 ae
223
+ !E7 U+00E7 ccedilla
224
+ !E8 U+00E8 egrave
225
+ !E9 U+00E9 eacute
226
+ !EA U+00EA ecircumflex
227
+ !EB U+00EB edieresis
228
+ !EC U+0301 acutecomb
229
+ !ED U+00ED iacute
230
+ !EE U+00EE icircumflex
231
+ !EF U+00EF idieresis
232
+ !F0 U+0111 dcroat
233
+ !F1 U+00F1 ntilde
234
+ !F2 U+0323 dotbelowcomb
235
+ !F3 U+00F3 oacute
236
+ !F4 U+00F4 ocircumflex
237
+ !F5 U+01A1 ohorn
238
+ !F6 U+00F6 odieresis
239
+ !F7 U+00F7 divide
240
+ !F8 U+00F8 oslash
241
+ !F9 U+00F9 ugrave
242
+ !FA U+00FA uacute
243
+ !FB U+00FB ucircumflex
244
+ !FC U+00FC udieresis
245
+ !FD U+01B0 uhorn
246
+ !FE U+20AB dong
247
+ !FF U+00FF ydieresis
FPDF/makefont/cp874.map CHANGED
@@ -1,225 +1,225 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+20AC Euro
130
- !85 U+2026 ellipsis
131
- !91 U+2018 quoteleft
132
- !92 U+2019 quoteright
133
- !93 U+201C quotedblleft
134
- !94 U+201D quotedblright
135
- !95 U+2022 bullet
136
- !96 U+2013 endash
137
- !97 U+2014 emdash
138
- !A0 U+00A0 space
139
- !A1 U+0E01 kokaithai
140
- !A2 U+0E02 khokhaithai
141
- !A3 U+0E03 khokhuatthai
142
- !A4 U+0E04 khokhwaithai
143
- !A5 U+0E05 khokhonthai
144
- !A6 U+0E06 khorakhangthai
145
- !A7 U+0E07 ngonguthai
146
- !A8 U+0E08 chochanthai
147
- !A9 U+0E09 chochingthai
148
- !AA U+0E0A chochangthai
149
- !AB U+0E0B sosothai
150
- !AC U+0E0C chochoethai
151
- !AD U+0E0D yoyingthai
152
- !AE U+0E0E dochadathai
153
- !AF U+0E0F topatakthai
154
- !B0 U+0E10 thothanthai
155
- !B1 U+0E11 thonangmonthothai
156
- !B2 U+0E12 thophuthaothai
157
- !B3 U+0E13 nonenthai
158
- !B4 U+0E14 dodekthai
159
- !B5 U+0E15 totaothai
160
- !B6 U+0E16 thothungthai
161
- !B7 U+0E17 thothahanthai
162
- !B8 U+0E18 thothongthai
163
- !B9 U+0E19 nonuthai
164
- !BA U+0E1A bobaimaithai
165
- !BB U+0E1B poplathai
166
- !BC U+0E1C phophungthai
167
- !BD U+0E1D fofathai
168
- !BE U+0E1E phophanthai
169
- !BF U+0E1F fofanthai
170
- !C0 U+0E20 phosamphaothai
171
- !C1 U+0E21 momathai
172
- !C2 U+0E22 yoyakthai
173
- !C3 U+0E23 roruathai
174
- !C4 U+0E24 ruthai
175
- !C5 U+0E25 lolingthai
176
- !C6 U+0E26 luthai
177
- !C7 U+0E27 wowaenthai
178
- !C8 U+0E28 sosalathai
179
- !C9 U+0E29 sorusithai
180
- !CA U+0E2A sosuathai
181
- !CB U+0E2B hohipthai
182
- !CC U+0E2C lochulathai
183
- !CD U+0E2D oangthai
184
- !CE U+0E2E honokhukthai
185
- !CF U+0E2F paiyannoithai
186
- !D0 U+0E30 saraathai
187
- !D1 U+0E31 maihanakatthai
188
- !D2 U+0E32 saraaathai
189
- !D3 U+0E33 saraamthai
190
- !D4 U+0E34 saraithai
191
- !D5 U+0E35 saraiithai
192
- !D6 U+0E36 sarauethai
193
- !D7 U+0E37 saraueethai
194
- !D8 U+0E38 sarauthai
195
- !D9 U+0E39 sarauuthai
196
- !DA U+0E3A phinthuthai
197
- !DF U+0E3F bahtthai
198
- !E0 U+0E40 saraethai
199
- !E1 U+0E41 saraaethai
200
- !E2 U+0E42 saraothai
201
- !E3 U+0E43 saraaimaimuanthai
202
- !E4 U+0E44 saraaimaimalaithai
203
- !E5 U+0E45 lakkhangyaothai
204
- !E6 U+0E46 maiyamokthai
205
- !E7 U+0E47 maitaikhuthai
206
- !E8 U+0E48 maiekthai
207
- !E9 U+0E49 maithothai
208
- !EA U+0E4A maitrithai
209
- !EB U+0E4B maichattawathai
210
- !EC U+0E4C thanthakhatthai
211
- !ED U+0E4D nikhahitthai
212
- !EE U+0E4E yamakkanthai
213
- !EF U+0E4F fongmanthai
214
- !F0 U+0E50 zerothai
215
- !F1 U+0E51 onethai
216
- !F2 U+0E52 twothai
217
- !F3 U+0E53 threethai
218
- !F4 U+0E54 fourthai
219
- !F5 U+0E55 fivethai
220
- !F6 U+0E56 sixthai
221
- !F7 U+0E57 seventhai
222
- !F8 U+0E58 eightthai
223
- !F9 U+0E59 ninethai
224
- !FA U+0E5A angkhankhuthai
225
- !FB U+0E5B khomutthai
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+20AC Euro
130
+ !85 U+2026 ellipsis
131
+ !91 U+2018 quoteleft
132
+ !92 U+2019 quoteright
133
+ !93 U+201C quotedblleft
134
+ !94 U+201D quotedblright
135
+ !95 U+2022 bullet
136
+ !96 U+2013 endash
137
+ !97 U+2014 emdash
138
+ !A0 U+00A0 space
139
+ !A1 U+0E01 kokaithai
140
+ !A2 U+0E02 khokhaithai
141
+ !A3 U+0E03 khokhuatthai
142
+ !A4 U+0E04 khokhwaithai
143
+ !A5 U+0E05 khokhonthai
144
+ !A6 U+0E06 khorakhangthai
145
+ !A7 U+0E07 ngonguthai
146
+ !A8 U+0E08 chochanthai
147
+ !A9 U+0E09 chochingthai
148
+ !AA U+0E0A chochangthai
149
+ !AB U+0E0B sosothai
150
+ !AC U+0E0C chochoethai
151
+ !AD U+0E0D yoyingthai
152
+ !AE U+0E0E dochadathai
153
+ !AF U+0E0F topatakthai
154
+ !B0 U+0E10 thothanthai
155
+ !B1 U+0E11 thonangmonthothai
156
+ !B2 U+0E12 thophuthaothai
157
+ !B3 U+0E13 nonenthai
158
+ !B4 U+0E14 dodekthai
159
+ !B5 U+0E15 totaothai
160
+ !B6 U+0E16 thothungthai
161
+ !B7 U+0E17 thothahanthai
162
+ !B8 U+0E18 thothongthai
163
+ !B9 U+0E19 nonuthai
164
+ !BA U+0E1A bobaimaithai
165
+ !BB U+0E1B poplathai
166
+ !BC U+0E1C phophungthai
167
+ !BD U+0E1D fofathai
168
+ !BE U+0E1E phophanthai
169
+ !BF U+0E1F fofanthai
170
+ !C0 U+0E20 phosamphaothai
171
+ !C1 U+0E21 momathai
172
+ !C2 U+0E22 yoyakthai
173
+ !C3 U+0E23 roruathai
174
+ !C4 U+0E24 ruthai
175
+ !C5 U+0E25 lolingthai
176
+ !C6 U+0E26 luthai
177
+ !C7 U+0E27 wowaenthai
178
+ !C8 U+0E28 sosalathai
179
+ !C9 U+0E29 sorusithai
180
+ !CA U+0E2A sosuathai
181
+ !CB U+0E2B hohipthai
182
+ !CC U+0E2C lochulathai
183
+ !CD U+0E2D oangthai
184
+ !CE U+0E2E honokhukthai
185
+ !CF U+0E2F paiyannoithai
186
+ !D0 U+0E30 saraathai
187
+ !D1 U+0E31 maihanakatthai
188
+ !D2 U+0E32 saraaathai
189
+ !D3 U+0E33 saraamthai
190
+ !D4 U+0E34 saraithai
191
+ !D5 U+0E35 saraiithai
192
+ !D6 U+0E36 sarauethai
193
+ !D7 U+0E37 saraueethai
194
+ !D8 U+0E38 sarauthai
195
+ !D9 U+0E39 sarauuthai
196
+ !DA U+0E3A phinthuthai
197
+ !DF U+0E3F bahtthai
198
+ !E0 U+0E40 saraethai
199
+ !E1 U+0E41 saraaethai
200
+ !E2 U+0E42 saraothai
201
+ !E3 U+0E43 saraaimaimuanthai
202
+ !E4 U+0E44 saraaimaimalaithai
203
+ !E5 U+0E45 lakkhangyaothai
204
+ !E6 U+0E46 maiyamokthai
205
+ !E7 U+0E47 maitaikhuthai
206
+ !E8 U+0E48 maiekthai
207
+ !E9 U+0E49 maithothai
208
+ !EA U+0E4A maitrithai
209
+ !EB U+0E4B maichattawathai
210
+ !EC U+0E4C thanthakhatthai
211
+ !ED U+0E4D nikhahitthai
212
+ !EE U+0E4E yamakkanthai
213
+ !EF U+0E4F fongmanthai
214
+ !F0 U+0E50 zerothai
215
+ !F1 U+0E51 onethai
216
+ !F2 U+0E52 twothai
217
+ !F3 U+0E53 threethai
218
+ !F4 U+0E54 fourthai
219
+ !F5 U+0E55 fivethai
220
+ !F6 U+0E56 sixthai
221
+ !F7 U+0E57 seventhai
222
+ !F8 U+0E58 eightthai
223
+ !F9 U+0E59 ninethai
224
+ !FA U+0E5A angkhankhuthai
225
+ !FB U+0E5B khomutthai
FPDF/makefont/iso-8859-1.map CHANGED
@@ -1,256 +1,256 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+0080 .notdef
130
- !81 U+0081 .notdef
131
- !82 U+0082 .notdef
132
- !83 U+0083 .notdef
133
- !84 U+0084 .notdef
134
- !85 U+0085 .notdef
135
- !86 U+0086 .notdef
136
- !87 U+0087 .notdef
137
- !88 U+0088 .notdef
138
- !89 U+0089 .notdef
139
- !8A U+008A .notdef
140
- !8B U+008B .notdef
141
- !8C U+008C .notdef
142
- !8D U+008D .notdef
143
- !8E U+008E .notdef
144
- !8F U+008F .notdef
145
- !90 U+0090 .notdef
146
- !91 U+0091 .notdef
147
- !92 U+0092 .notdef
148
- !93 U+0093 .notdef
149
- !94 U+0094 .notdef
150
- !95 U+0095 .notdef
151
- !96 U+0096 .notdef
152
- !97 U+0097 .notdef
153
- !98 U+0098 .notdef
154
- !99 U+0099 .notdef
155
- !9A U+009A .notdef
156
- !9B U+009B .notdef
157
- !9C U+009C .notdef
158
- !9D U+009D .notdef
159
- !9E U+009E .notdef
160
- !9F U+009F .notdef
161
- !A0 U+00A0 space
162
- !A1 U+00A1 exclamdown
163
- !A2 U+00A2 cent
164
- !A3 U+00A3 sterling
165
- !A4 U+00A4 currency
166
- !A5 U+00A5 yen
167
- !A6 U+00A6 brokenbar
168
- !A7 U+00A7 section
169
- !A8 U+00A8 dieresis
170
- !A9 U+00A9 copyright
171
- !AA U+00AA ordfeminine
172
- !AB U+00AB guillemotleft
173
- !AC U+00AC logicalnot
174
- !AD U+00AD hyphen
175
- !AE U+00AE registered
176
- !AF U+00AF macron
177
- !B0 U+00B0 degree
178
- !B1 U+00B1 plusminus
179
- !B2 U+00B2 twosuperior
180
- !B3 U+00B3 threesuperior
181
- !B4 U+00B4 acute
182
- !B5 U+00B5 mu
183
- !B6 U+00B6 paragraph
184
- !B7 U+00B7 periodcentered
185
- !B8 U+00B8 cedilla
186
- !B9 U+00B9 onesuperior
187
- !BA U+00BA ordmasculine
188
- !BB U+00BB guillemotright
189
- !BC U+00BC onequarter
190
- !BD U+00BD onehalf
191
- !BE U+00BE threequarters
192
- !BF U+00BF questiondown
193
- !C0 U+00C0 Agrave
194
- !C1 U+00C1 Aacute
195
- !C2 U+00C2 Acircumflex
196
- !C3 U+00C3 Atilde
197
- !C4 U+00C4 Adieresis
198
- !C5 U+00C5 Aring
199
- !C6 U+00C6 AE
200
- !C7 U+00C7 Ccedilla
201
- !C8 U+00C8 Egrave
202
- !C9 U+00C9 Eacute
203
- !CA U+00CA Ecircumflex
204
- !CB U+00CB Edieresis
205
- !CC U+00CC Igrave
206
- !CD U+00CD Iacute
207
- !CE U+00CE Icircumflex
208
- !CF U+00CF Idieresis
209
- !D0 U+00D0 Eth
210
- !D1 U+00D1 Ntilde
211
- !D2 U+00D2 Ograve
212
- !D3 U+00D3 Oacute
213
- !D4 U+00D4 Ocircumflex
214
- !D5 U+00D5 Otilde
215
- !D6 U+00D6 Odieresis
216
- !D7 U+00D7 multiply
217
- !D8 U+00D8 Oslash
218
- !D9 U+00D9 Ugrave
219
- !DA U+00DA Uacute
220
- !DB U+00DB Ucircumflex
221
- !DC U+00DC Udieresis
222
- !DD U+00DD Yacute
223
- !DE U+00DE Thorn
224
- !DF U+00DF germandbls
225
- !E0 U+00E0 agrave
226
- !E1 U+00E1 aacute
227
- !E2 U+00E2 acircumflex
228
- !E3 U+00E3 atilde
229
- !E4 U+00E4 adieresis
230
- !E5 U+00E5 aring
231
- !E6 U+00E6 ae
232
- !E7 U+00E7 ccedilla
233
- !E8 U+00E8 egrave
234
- !E9 U+00E9 eacute
235
- !EA U+00EA ecircumflex
236
- !EB U+00EB edieresis
237
- !EC U+00EC igrave
238
- !ED U+00ED iacute
239
- !EE U+00EE icircumflex
240
- !EF U+00EF idieresis
241
- !F0 U+00F0 eth
242
- !F1 U+00F1 ntilde
243
- !F2 U+00F2 ograve
244
- !F3 U+00F3 oacute
245
- !F4 U+00F4 ocircumflex
246
- !F5 U+00F5 otilde
247
- !F6 U+00F6 odieresis
248
- !F7 U+00F7 divide
249
- !F8 U+00F8 oslash
250
- !F9 U+00F9 ugrave
251
- !FA U+00FA uacute
252
- !FB U+00FB ucircumflex
253
- !FC U+00FC udieresis
254
- !FD U+00FD yacute
255
- !FE U+00FE thorn
256
- !FF U+00FF ydieresis
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+0080 .notdef
130
+ !81 U+0081 .notdef
131
+ !82 U+0082 .notdef
132
+ !83 U+0083 .notdef
133
+ !84 U+0084 .notdef
134
+ !85 U+0085 .notdef
135
+ !86 U+0086 .notdef
136
+ !87 U+0087 .notdef
137
+ !88 U+0088 .notdef
138
+ !89 U+0089 .notdef
139
+ !8A U+008A .notdef
140
+ !8B U+008B .notdef
141
+ !8C U+008C .notdef
142
+ !8D U+008D .notdef
143
+ !8E U+008E .notdef
144
+ !8F U+008F .notdef
145
+ !90 U+0090 .notdef
146
+ !91 U+0091 .notdef
147
+ !92 U+0092 .notdef
148
+ !93 U+0093 .notdef
149
+ !94 U+0094 .notdef
150
+ !95 U+0095 .notdef
151
+ !96 U+0096 .notdef
152
+ !97 U+0097 .notdef
153
+ !98 U+0098 .notdef
154
+ !99 U+0099 .notdef
155
+ !9A U+009A .notdef
156
+ !9B U+009B .notdef
157
+ !9C U+009C .notdef
158
+ !9D U+009D .notdef
159
+ !9E U+009E .notdef
160
+ !9F U+009F .notdef
161
+ !A0 U+00A0 space
162
+ !A1 U+00A1 exclamdown
163
+ !A2 U+00A2 cent
164
+ !A3 U+00A3 sterling
165
+ !A4 U+00A4 currency
166
+ !A5 U+00A5 yen
167
+ !A6 U+00A6 brokenbar
168
+ !A7 U+00A7 section
169
+ !A8 U+00A8 dieresis
170
+ !A9 U+00A9 copyright
171
+ !AA U+00AA ordfeminine
172
+ !AB U+00AB guillemotleft
173
+ !AC U+00AC logicalnot
174
+ !AD U+00AD hyphen
175
+ !AE U+00AE registered
176
+ !AF U+00AF macron
177
+ !B0 U+00B0 degree
178
+ !B1 U+00B1 plusminus
179
+ !B2 U+00B2 twosuperior
180
+ !B3 U+00B3 threesuperior
181
+ !B4 U+00B4 acute
182
+ !B5 U+00B5 mu
183
+ !B6 U+00B6 paragraph
184
+ !B7 U+00B7 periodcentered
185
+ !B8 U+00B8 cedilla
186
+ !B9 U+00B9 onesuperior
187
+ !BA U+00BA ordmasculine
188
+ !BB U+00BB guillemotright
189
+ !BC U+00BC onequarter
190
+ !BD U+00BD onehalf
191
+ !BE U+00BE threequarters
192
+ !BF U+00BF questiondown
193
+ !C0 U+00C0 Agrave
194
+ !C1 U+00C1 Aacute
195
+ !C2 U+00C2 Acircumflex
196
+ !C3 U+00C3 Atilde
197
+ !C4 U+00C4 Adieresis
198
+ !C5 U+00C5 Aring
199
+ !C6 U+00C6 AE
200
+ !C7 U+00C7 Ccedilla
201
+ !C8 U+00C8 Egrave
202
+ !C9 U+00C9 Eacute
203
+ !CA U+00CA Ecircumflex
204
+ !CB U+00CB Edieresis
205
+ !CC U+00CC Igrave
206
+ !CD U+00CD Iacute
207
+ !CE U+00CE Icircumflex
208
+ !CF U+00CF Idieresis
209
+ !D0 U+00D0 Eth
210
+ !D1 U+00D1 Ntilde
211
+ !D2 U+00D2 Ograve
212
+ !D3 U+00D3 Oacute
213
+ !D4 U+00D4 Ocircumflex
214
+ !D5 U+00D5 Otilde
215
+ !D6 U+00D6 Odieresis
216
+ !D7 U+00D7 multiply
217
+ !D8 U+00D8 Oslash
218
+ !D9 U+00D9 Ugrave
219
+ !DA U+00DA Uacute
220
+ !DB U+00DB Ucircumflex
221
+ !DC U+00DC Udieresis
222
+ !DD U+00DD Yacute
223
+ !DE U+00DE Thorn
224
+ !DF U+00DF germandbls
225
+ !E0 U+00E0 agrave
226
+ !E1 U+00E1 aacute
227
+ !E2 U+00E2 acircumflex
228
+ !E3 U+00E3 atilde
229
+ !E4 U+00E4 adieresis
230
+ !E5 U+00E5 aring
231
+ !E6 U+00E6 ae
232
+ !E7 U+00E7 ccedilla
233
+ !E8 U+00E8 egrave
234
+ !E9 U+00E9 eacute
235
+ !EA U+00EA ecircumflex
236
+ !EB U+00EB edieresis
237
+ !EC U+00EC igrave
238
+ !ED U+00ED iacute
239
+ !EE U+00EE icircumflex
240
+ !EF U+00EF idieresis
241
+ !F0 U+00F0 eth
242
+ !F1 U+00F1 ntilde
243
+ !F2 U+00F2 ograve
244
+ !F3 U+00F3 oacute
245
+ !F4 U+00F4 ocircumflex
246
+ !F5 U+00F5 otilde
247
+ !F6 U+00F6 odieresis
248
+ !F7 U+00F7 divide
249
+ !F8 U+00F8 oslash
250
+ !F9 U+00F9 ugrave
251
+ !FA U+00FA uacute
252
+ !FB U+00FB ucircumflex
253
+ !FC U+00FC udieresis
254
+ !FD U+00FD yacute
255
+ !FE U+00FE thorn
256
+ !FF U+00FF ydieresis
FPDF/makefont/iso-8859-11.map CHANGED
@@ -1,248 +1,248 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+0080 .notdef
130
- !81 U+0081 .notdef
131
- !82 U+0082 .notdef
132
- !83 U+0083 .notdef
133
- !84 U+0084 .notdef
134
- !85 U+0085 .notdef
135
- !86 U+0086 .notdef
136
- !87 U+0087 .notdef
137
- !88 U+0088 .notdef
138
- !89 U+0089 .notdef
139
- !8A U+008A .notdef
140
- !8B U+008B .notdef
141
- !8C U+008C .notdef
142
- !8D U+008D .notdef
143
- !8E U+008E .notdef
144
- !8F U+008F .notdef
145
- !90 U+0090 .notdef
146
- !91 U+0091 .notdef
147
- !92 U+0092 .notdef
148
- !93 U+0093 .notdef
149
- !94 U+0094 .notdef
150
- !95 U+0095 .notdef
151
- !96 U+0096 .notdef
152
- !97 U+0097 .notdef
153
- !98 U+0098 .notdef
154
- !99 U+0099 .notdef
155
- !9A U+009A .notdef
156
- !9B U+009B .notdef
157
- !9C U+009C .notdef
158
- !9D U+009D .notdef
159
- !9E U+009E .notdef
160
- !9F U+009F .notdef
161
- !A0 U+00A0 space
162
- !A1 U+0E01 kokaithai
163
- !A2 U+0E02 khokhaithai
164
- !A3 U+0E03 khokhuatthai
165
- !A4 U+0E04 khokhwaithai
166
- !A5 U+0E05 khokhonthai
167
- !A6 U+0E06 khorakhangthai
168
- !A7 U+0E07 ngonguthai
169
- !A8 U+0E08 chochanthai
170
- !A9 U+0E09 chochingthai
171
- !AA U+0E0A chochangthai
172
- !AB U+0E0B sosothai
173
- !AC U+0E0C chochoethai
174
- !AD U+0E0D yoyingthai
175
- !AE U+0E0E dochadathai
176
- !AF U+0E0F topatakthai
177
- !B0 U+0E10 thothanthai
178
- !B1 U+0E11 thonangmonthothai
179
- !B2 U+0E12 thophuthaothai
180
- !B3 U+0E13 nonenthai
181
- !B4 U+0E14 dodekthai
182
- !B5 U+0E15 totaothai
183
- !B6 U+0E16 thothungthai
184
- !B7 U+0E17 thothahanthai
185
- !B8 U+0E18 thothongthai
186
- !B9 U+0E19 nonuthai
187
- !BA U+0E1A bobaimaithai
188
- !BB U+0E1B poplathai
189
- !BC U+0E1C phophungthai
190
- !BD U+0E1D fofathai
191
- !BE U+0E1E phophanthai
192
- !BF U+0E1F fofanthai
193
- !C0 U+0E20 phosamphaothai
194
- !C1 U+0E21 momathai
195
- !C2 U+0E22 yoyakthai
196
- !C3 U+0E23 roruathai
197
- !C4 U+0E24 ruthai
198
- !C5 U+0E25 lolingthai
199
- !C6 U+0E26 luthai
200
- !C7 U+0E27 wowaenthai
201
- !C8 U+0E28 sosalathai
202
- !C9 U+0E29 sorusithai
203
- !CA U+0E2A sosuathai
204
- !CB U+0E2B hohipthai
205
- !CC U+0E2C lochulathai
206
- !CD U+0E2D oangthai
207
- !CE U+0E2E honokhukthai
208
- !CF U+0E2F paiyannoithai
209
- !D0 U+0E30 saraathai
210
- !D1 U+0E31 maihanakatthai
211
- !D2 U+0E32 saraaathai
212
- !D3 U+0E33 saraamthai
213
- !D4 U+0E34 saraithai
214
- !D5 U+0E35 saraiithai
215
- !D6 U+0E36 sarauethai
216
- !D7 U+0E37 saraueethai
217
- !D8 U+0E38 sarauthai
218
- !D9 U+0E39 sarauuthai
219
- !DA U+0E3A phinthuthai
220
- !DF U+0E3F bahtthai
221
- !E0 U+0E40 saraethai
222
- !E1 U+0E41 saraaethai
223
- !E2 U+0E42 saraothai
224
- !E3 U+0E43 saraaimaimuanthai
225
- !E4 U+0E44 saraaimaimalaithai
226
- !E5 U+0E45 lakkhangyaothai
227
- !E6 U+0E46 maiyamokthai
228
- !E7 U+0E47 maitaikhuthai
229
- !E8 U+0E48 maiekthai
230
- !E9 U+0E49 maithothai
231
- !EA U+0E4A maitrithai
232
- !EB U+0E4B maichattawathai
233
- !EC U+0E4C thanthakhatthai
234
- !ED U+0E4D nikhahitthai
235
- !EE U+0E4E yamakkanthai
236
- !EF U+0E4F fongmanthai
237
- !F0 U+0E50 zerothai
238
- !F1 U+0E51 onethai
239
- !F2 U+0E52 twothai
240
- !F3 U+0E53 threethai
241
- !F4 U+0E54 fourthai
242
- !F5 U+0E55 fivethai
243
- !F6 U+0E56 sixthai
244
- !F7 U+0E57 seventhai
245
- !F8 U+0E58 eightthai
246
- !F9 U+0E59 ninethai
247
- !FA U+0E5A angkhankhuthai
248
- !FB U+0E5B khomutthai
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+0080 .notdef
130
+ !81 U+0081 .notdef
131
+ !82 U+0082 .notdef
132
+ !83 U+0083 .notdef
133
+ !84 U+0084 .notdef
134
+ !85 U+0085 .notdef
135
+ !86 U+0086 .notdef
136
+ !87 U+0087 .notdef
137
+ !88 U+0088 .notdef
138
+ !89 U+0089 .notdef
139
+ !8A U+008A .notdef
140
+ !8B U+008B .notdef
141
+ !8C U+008C .notdef
142
+ !8D U+008D .notdef
143
+ !8E U+008E .notdef
144
+ !8F U+008F .notdef
145
+ !90 U+0090 .notdef
146
+ !91 U+0091 .notdef
147
+ !92 U+0092 .notdef
148
+ !93 U+0093 .notdef
149
+ !94 U+0094 .notdef
150
+ !95 U+0095 .notdef
151
+ !96 U+0096 .notdef
152
+ !97 U+0097 .notdef
153
+ !98 U+0098 .notdef
154
+ !99 U+0099 .notdef
155
+ !9A U+009A .notdef
156
+ !9B U+009B .notdef
157
+ !9C U+009C .notdef
158
+ !9D U+009D .notdef
159
+ !9E U+009E .notdef
160
+ !9F U+009F .notdef
161
+ !A0 U+00A0 space
162
+ !A1 U+0E01 kokaithai
163
+ !A2 U+0E02 khokhaithai
164
+ !A3 U+0E03 khokhuatthai
165
+ !A4 U+0E04 khokhwaithai
166
+ !A5 U+0E05 khokhonthai
167
+ !A6 U+0E06 khorakhangthai
168
+ !A7 U+0E07 ngonguthai
169
+ !A8 U+0E08 chochanthai
170
+ !A9 U+0E09 chochingthai
171
+ !AA U+0E0A chochangthai
172
+ !AB U+0E0B sosothai
173
+ !AC U+0E0C chochoethai
174
+ !AD U+0E0D yoyingthai
175
+ !AE U+0E0E dochadathai
176
+ !AF U+0E0F topatakthai
177
+ !B0 U+0E10 thothanthai
178
+ !B1 U+0E11 thonangmonthothai
179
+ !B2 U+0E12 thophuthaothai
180
+ !B3 U+0E13 nonenthai
181
+ !B4 U+0E14 dodekthai
182
+ !B5 U+0E15 totaothai
183
+ !B6 U+0E16 thothungthai
184
+ !B7 U+0E17 thothahanthai
185
+ !B8 U+0E18 thothongthai
186
+ !B9 U+0E19 nonuthai
187
+ !BA U+0E1A bobaimaithai
188
+ !BB U+0E1B poplathai
189
+ !BC U+0E1C phophungthai
190
+ !BD U+0E1D fofathai
191
+ !BE U+0E1E phophanthai
192
+ !BF U+0E1F fofanthai
193
+ !C0 U+0E20 phosamphaothai
194
+ !C1 U+0E21 momathai
195
+ !C2 U+0E22 yoyakthai
196
+ !C3 U+0E23 roruathai
197
+ !C4 U+0E24 ruthai
198
+ !C5 U+0E25 lolingthai
199
+ !C6 U+0E26 luthai
200
+ !C7 U+0E27 wowaenthai
201
+ !C8 U+0E28 sosalathai
202
+ !C9 U+0E29 sorusithai
203
+ !CA U+0E2A sosuathai
204
+ !CB U+0E2B hohipthai
205
+ !CC U+0E2C lochulathai
206
+ !CD U+0E2D oangthai
207
+ !CE U+0E2E honokhukthai
208
+ !CF U+0E2F paiyannoithai
209
+ !D0 U+0E30 saraathai
210
+ !D1 U+0E31 maihanakatthai
211
+ !D2 U+0E32 saraaathai
212
+ !D3 U+0E33 saraamthai
213
+ !D4 U+0E34 saraithai
214
+ !D5 U+0E35 saraiithai
215
+ !D6 U+0E36 sarauethai
216
+ !D7 U+0E37 saraueethai
217
+ !D8 U+0E38 sarauthai
218
+ !D9 U+0E39 sarauuthai
219
+ !DA U+0E3A phinthuthai
220
+ !DF U+0E3F bahtthai
221
+ !E0 U+0E40 saraethai
222
+ !E1 U+0E41 saraaethai
223
+ !E2 U+0E42 saraothai
224
+ !E3 U+0E43 saraaimaimuanthai
225
+ !E4 U+0E44 saraaimaimalaithai
226
+ !E5 U+0E45 lakkhangyaothai
227
+ !E6 U+0E46 maiyamokthai
228
+ !E7 U+0E47 maitaikhuthai
229
+ !E8 U+0E48 maiekthai
230
+ !E9 U+0E49 maithothai
231
+ !EA U+0E4A maitrithai
232
+ !EB U+0E4B maichattawathai
233
+ !EC U+0E4C thanthakhatthai
234
+ !ED U+0E4D nikhahitthai
235
+ !EE U+0E4E yamakkanthai
236
+ !EF U+0E4F fongmanthai
237
+ !F0 U+0E50 zerothai
238
+ !F1 U+0E51 onethai
239
+ !F2 U+0E52 twothai
240
+ !F3 U+0E53 threethai
241
+ !F4 U+0E54 fourthai
242
+ !F5 U+0E55 fivethai
243
+ !F6 U+0E56 sixthai
244
+ !F7 U+0E57 seventhai
245
+ !F8 U+0E58 eightthai
246
+ !F9 U+0E59 ninethai
247
+ !FA U+0E5A angkhankhuthai
248
+ !FB U+0E5B khomutthai
FPDF/makefont/iso-8859-15.map CHANGED
@@ -1,256 +1,256 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+0080 .notdef
130
- !81 U+0081 .notdef
131
- !82 U+0082 .notdef
132
- !83 U+0083 .notdef
133
- !84 U+0084 .notdef
134
- !85 U+0085 .notdef
135
- !86 U+0086 .notdef
136
- !87 U+0087 .notdef
137
- !88 U+0088 .notdef
138
- !89 U+0089 .notdef
139
- !8A U+008A .notdef
140
- !8B U+008B .notdef
141
- !8C U+008C .notdef
142
- !8D U+008D .notdef
143
- !8E U+008E .notdef
144
- !8F U+008F .notdef
145
- !90 U+0090 .notdef
146
- !91 U+0091 .notdef
147
- !92 U+0092 .notdef
148
- !93 U+0093 .notdef
149
- !94 U+0094 .notdef
150
- !95 U+0095 .notdef
151
- !96 U+0096 .notdef
152
- !97 U+0097 .notdef
153
- !98 U+0098 .notdef
154
- !99 U+0099 .notdef
155
- !9A U+009A .notdef
156
- !9B U+009B .notdef
157
- !9C U+009C .notdef
158
- !9D U+009D .notdef
159
- !9E U+009E .notdef
160
- !9F U+009F .notdef
161
- !A0 U+00A0 space
162
- !A1 U+00A1 exclamdown
163
- !A2 U+00A2 cent
164
- !A3 U+00A3 sterling
165
- !A4 U+20AC Euro
166
- !A5 U+00A5 yen
167
- !A6 U+0160 Scaron
168
- !A7 U+00A7 section
169
- !A8 U+0161 scaron
170
- !A9 U+00A9 copyright
171
- !AA U+00AA ordfeminine
172
- !AB U+00AB guillemotleft
173
- !AC U+00AC logicalnot
174
- !AD U+00AD hyphen
175
- !AE U+00AE registered
176
- !AF U+00AF macron
177
- !B0 U+00B0 degree
178
- !B1 U+00B1 plusminus
179
- !B2 U+00B2 twosuperior
180
- !B3 U+00B3 threesuperior
181
- !B4 U+017D Zcaron
182
- !B5 U+00B5 mu
183
- !B6 U+00B6 paragraph
184
- !B7 U+00B7 periodcentered
185
- !B8 U+017E zcaron
186
- !B9 U+00B9 onesuperior
187
- !BA U+00BA ordmasculine
188
- !BB U+00BB guillemotright
189
- !BC U+0152 OE
190
- !BD U+0153 oe
191
- !BE U+0178 Ydieresis
192
- !BF U+00BF questiondown
193
- !C0 U+00C0 Agrave
194
- !C1 U+00C1 Aacute
195
- !C2 U+00C2 Acircumflex
196
- !C3 U+00C3 Atilde
197
- !C4 U+00C4 Adieresis
198
- !C5 U+00C5 Aring
199
- !C6 U+00C6 AE
200
- !C7 U+00C7 Ccedilla
201
- !C8 U+00C8 Egrave
202
- !C9 U+00C9 Eacute
203
- !CA U+00CA Ecircumflex
204
- !CB U+00CB Edieresis
205
- !CC U+00CC Igrave
206
- !CD U+00CD Iacute
207
- !CE U+00CE Icircumflex
208
- !CF U+00CF Idieresis
209
- !D0 U+00D0 Eth
210
- !D1 U+00D1 Ntilde
211
- !D2 U+00D2 Ograve
212
- !D3 U+00D3 Oacute
213
- !D4 U+00D4 Ocircumflex
214
- !D5 U+00D5 Otilde
215
- !D6 U+00D6 Odieresis
216
- !D7 U+00D7 multiply
217
- !D8 U+00D8 Oslash
218
- !D9 U+00D9 Ugrave
219
- !DA U+00DA Uacute
220
- !DB U+00DB Ucircumflex
221
- !DC U+00DC Udieresis
222
- !DD U+00DD Yacute
223
- !DE U+00DE Thorn
224
- !DF U+00DF germandbls
225
- !E0 U+00E0 agrave
226
- !E1 U+00E1 aacute
227
- !E2 U+00E2 acircumflex
228
- !E3 U+00E3 atilde
229
- !E4 U+00E4 adieresis
230
- !E5 U+00E5 aring
231
- !E6 U+00E6 ae
232
- !E7 U+00E7 ccedilla
233
- !E8 U+00E8 egrave
234
- !E9 U+00E9 eacute
235
- !EA U+00EA ecircumflex
236
- !EB U+00EB edieresis
237
- !EC U+00EC igrave
238
- !ED U+00ED iacute
239
- !EE U+00EE icircumflex
240
- !EF U+00EF idieresis
241
- !F0 U+00F0 eth
242
- !F1 U+00F1 ntilde
243
- !F2 U+00F2 ograve
244
- !F3 U+00F3 oacute
245
- !F4 U+00F4 ocircumflex
246
- !F5 U+00F5 otilde
247
- !F6 U+00F6 odieresis
248
- !F7 U+00F7 divide
249
- !F8 U+00F8 oslash
250
- !F9 U+00F9 ugrave
251
- !FA U+00FA uacute
252
- !FB U+00FB ucircumflex
253
- !FC U+00FC udieresis
254
- !FD U+00FD yacute
255
- !FE U+00FE thorn
256
- !FF U+00FF ydieresis
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+0080 .notdef
130
+ !81 U+0081 .notdef
131
+ !82 U+0082 .notdef
132
+ !83 U+0083 .notdef
133
+ !84 U+0084 .notdef
134
+ !85 U+0085 .notdef
135
+ !86 U+0086 .notdef
136
+ !87 U+0087 .notdef
137
+ !88 U+0088 .notdef
138
+ !89 U+0089 .notdef
139
+ !8A U+008A .notdef
140
+ !8B U+008B .notdef
141
+ !8C U+008C .notdef
142
+ !8D U+008D .notdef
143
+ !8E U+008E .notdef
144
+ !8F U+008F .notdef
145
+ !90 U+0090 .notdef
146
+ !91 U+0091 .notdef
147
+ !92 U+0092 .notdef
148
+ !93 U+0093 .notdef
149
+ !94 U+0094 .notdef
150
+ !95 U+0095 .notdef
151
+ !96 U+0096 .notdef
152
+ !97 U+0097 .notdef
153
+ !98 U+0098 .notdef
154
+ !99 U+0099 .notdef
155
+ !9A U+009A .notdef
156
+ !9B U+009B .notdef
157
+ !9C U+009C .notdef
158
+ !9D U+009D .notdef
159
+ !9E U+009E .notdef
160
+ !9F U+009F .notdef
161
+ !A0 U+00A0 space
162
+ !A1 U+00A1 exclamdown
163
+ !A2 U+00A2 cent
164
+ !A3 U+00A3 sterling
165
+ !A4 U+20AC Euro
166
+ !A5 U+00A5 yen
167
+ !A6 U+0160 Scaron
168
+ !A7 U+00A7 section
169
+ !A8 U+0161 scaron
170
+ !A9 U+00A9 copyright
171
+ !AA U+00AA ordfeminine
172
+ !AB U+00AB guillemotleft
173
+ !AC U+00AC logicalnot
174
+ !AD U+00AD hyphen
175
+ !AE U+00AE registered
176
+ !AF U+00AF macron
177
+ !B0 U+00B0 degree
178
+ !B1 U+00B1 plusminus
179
+ !B2 U+00B2 twosuperior
180
+ !B3 U+00B3 threesuperior
181
+ !B4 U+017D Zcaron
182
+ !B5 U+00B5 mu
183
+ !B6 U+00B6 paragraph
184
+ !B7 U+00B7 periodcentered
185
+ !B8 U+017E zcaron
186
+ !B9 U+00B9 onesuperior
187
+ !BA U+00BA ordmasculine
188
+ !BB U+00BB guillemotright
189
+ !BC U+0152 OE
190
+ !BD U+0153 oe
191
+ !BE U+0178 Ydieresis
192
+ !BF U+00BF questiondown
193
+ !C0 U+00C0 Agrave
194
+ !C1 U+00C1 Aacute
195
+ !C2 U+00C2 Acircumflex
196
+ !C3 U+00C3 Atilde
197
+ !C4 U+00C4 Adieresis
198
+ !C5 U+00C5 Aring
199
+ !C6 U+00C6 AE
200
+ !C7 U+00C7 Ccedilla
201
+ !C8 U+00C8 Egrave
202
+ !C9 U+00C9 Eacute
203
+ !CA U+00CA Ecircumflex
204
+ !CB U+00CB Edieresis
205
+ !CC U+00CC Igrave
206
+ !CD U+00CD Iacute
207
+ !CE U+00CE Icircumflex
208
+ !CF U+00CF Idieresis
209
+ !D0 U+00D0 Eth
210
+ !D1 U+00D1 Ntilde
211
+ !D2 U+00D2 Ograve
212
+ !D3 U+00D3 Oacute
213
+ !D4 U+00D4 Ocircumflex
214
+ !D5 U+00D5 Otilde
215
+ !D6 U+00D6 Odieresis
216
+ !D7 U+00D7 multiply
217
+ !D8 U+00D8 Oslash
218
+ !D9 U+00D9 Ugrave
219
+ !DA U+00DA Uacute
220
+ !DB U+00DB Ucircumflex
221
+ !DC U+00DC Udieresis
222
+ !DD U+00DD Yacute
223
+ !DE U+00DE Thorn
224
+ !DF U+00DF germandbls
225
+ !E0 U+00E0 agrave
226
+ !E1 U+00E1 aacute
227
+ !E2 U+00E2 acircumflex
228
+ !E3 U+00E3 atilde
229
+ !E4 U+00E4 adieresis
230
+ !E5 U+00E5 aring
231
+ !E6 U+00E6 ae
232
+ !E7 U+00E7 ccedilla
233
+ !E8 U+00E8 egrave
234
+ !E9 U+00E9 eacute
235
+ !EA U+00EA ecircumflex
236
+ !EB U+00EB edieresis
237
+ !EC U+00EC igrave
238
+ !ED U+00ED iacute
239
+ !EE U+00EE icircumflex
240
+ !EF U+00EF idieresis
241
+ !F0 U+00F0 eth
242
+ !F1 U+00F1 ntilde
243
+ !F2 U+00F2 ograve
244
+ !F3 U+00F3 oacute
245
+ !F4 U+00F4 ocircumflex
246
+ !F5 U+00F5 otilde
247
+ !F6 U+00F6 odieresis
248
+ !F7 U+00F7 divide
249
+ !F8 U+00F8 oslash
250
+ !F9 U+00F9 ugrave
251
+ !FA U+00FA uacute
252
+ !FB U+00FB ucircumflex
253
+ !FC U+00FC udieresis
254
+ !FD U+00FD yacute
255
+ !FE U+00FE thorn
256
+ !FF U+00FF ydieresis
FPDF/makefont/iso-8859-16.map CHANGED
@@ -1,256 +1,256 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+0080 .notdef
130
- !81 U+0081 .notdef
131
- !82 U+0082 .notdef
132
- !83 U+0083 .notdef
133
- !84 U+0084 .notdef
134
- !85 U+0085 .notdef
135
- !86 U+0086 .notdef
136
- !87 U+0087 .notdef
137
- !88 U+0088 .notdef
138
- !89 U+0089 .notdef
139
- !8A U+008A .notdef
140
- !8B U+008B .notdef
141
- !8C U+008C .notdef
142
- !8D U+008D .notdef
143
- !8E U+008E .notdef
144
- !8F U+008F .notdef
145
- !90 U+0090 .notdef
146
- !91 U+0091 .notdef
147
- !92 U+0092 .notdef
148
- !93 U+0093 .notdef
149
- !94 U+0094 .notdef
150
- !95 U+0095 .notdef
151
- !96 U+0096 .notdef
152
- !97 U+0097 .notdef
153
- !98 U+0098 .notdef
154
- !99 U+0099 .notdef
155
- !9A U+009A .notdef
156
- !9B U+009B .notdef
157
- !9C U+009C .notdef
158
- !9D U+009D .notdef
159
- !9E U+009E .notdef
160
- !9F U+009F .notdef
161
- !A0 U+00A0 space
162
- !A1 U+0104 Aogonek
163
- !A2 U+0105 aogonek
164
- !A3 U+0141 Lslash
165
- !A4 U+20AC Euro
166
- !A5 U+201E quotedblbase
167
- !A6 U+0160 Scaron
168
- !A7 U+00A7 section
169
- !A8 U+0161 scaron
170
- !A9 U+00A9 copyright
171
- !AA U+0218 Scommaaccent
172
- !AB U+00AB guillemotleft
173
- !AC U+0179 Zacute
174
- !AD U+00AD hyphen
175
- !AE U+017A zacute
176
- !AF U+017B Zdotaccent
177
- !B0 U+00B0 degree
178
- !B1 U+00B1 plusminus
179
- !B2 U+010C Ccaron
180
- !B3 U+0142 lslash
181
- !B4 U+017D Zcaron
182
- !B5 U+201D quotedblright
183
- !B6 U+00B6 paragraph
184
- !B7 U+00B7 periodcentered
185
- !B8 U+017E zcaron
186
- !B9 U+010D ccaron
187
- !BA U+0219 scommaaccent
188
- !BB U+00BB guillemotright
189
- !BC U+0152 OE
190
- !BD U+0153 oe
191
- !BE U+0178 Ydieresis
192
- !BF U+017C zdotaccent
193
- !C0 U+00C0 Agrave
194
- !C1 U+00C1 Aacute
195
- !C2 U+00C2 Acircumflex
196
- !C3 U+0102 Abreve
197
- !C4 U+00C4 Adieresis
198
- !C5 U+0106 Cacute
199
- !C6 U+00C6 AE
200
- !C7 U+00C7 Ccedilla
201
- !C8 U+00C8 Egrave
202
- !C9 U+00C9 Eacute
203
- !CA U+00CA Ecircumflex
204
- !CB U+00CB Edieresis
205
- !CC U+00CC Igrave
206
- !CD U+00CD Iacute
207
- !CE U+00CE Icircumflex
208
- !CF U+00CF Idieresis
209
- !D0 U+0110 Dcroat
210
- !D1 U+0143 Nacute
211
- !D2 U+00D2 Ograve
212
- !D3 U+00D3 Oacute
213
- !D4 U+00D4 Ocircumflex
214
- !D5 U+0150 Ohungarumlaut
215
- !D6 U+00D6 Odieresis
216
- !D7 U+015A Sacute
217
- !D8 U+0170 Uhungarumlaut
218
- !D9 U+00D9 Ugrave
219
- !DA U+00DA Uacute
220
- !DB U+00DB Ucircumflex
221
- !DC U+00DC Udieresis
222
- !DD U+0118 Eogonek
223
- !DE U+021A Tcommaaccent
224
- !DF U+00DF germandbls
225
- !E0 U+00E0 agrave
226
- !E1 U+00E1 aacute
227
- !E2 U+00E2 acircumflex
228
- !E3 U+0103 abreve
229
- !E4 U+00E4 adieresis
230
- !E5 U+0107 cacute
231
- !E6 U+00E6 ae
232
- !E7 U+00E7 ccedilla
233
- !E8 U+00E8 egrave
234
- !E9 U+00E9 eacute
235
- !EA U+00EA ecircumflex
236
- !EB U+00EB edieresis
237
- !EC U+00EC igrave
238
- !ED U+00ED iacute
239
- !EE U+00EE icircumflex
240
- !EF U+00EF idieresis
241
- !F0 U+0111 dcroat
242
- !F1 U+0144 nacute
243
- !F2 U+00F2 ograve
244
- !F3 U+00F3 oacute
245
- !F4 U+00F4 ocircumflex
246
- !F5 U+0151 ohungarumlaut
247
- !F6 U+00F6 odieresis
248
- !F7 U+015B sacute
249
- !F8 U+0171 uhungarumlaut
250
- !F9 U+00F9 ugrave
251
- !FA U+00FA uacute
252
- !FB U+00FB ucircumflex
253
- !FC U+00FC udieresis
254
- !FD U+0119 eogonek
255
- !FE U+021B tcommaaccent
256
- !FF U+00FF ydieresis
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+0080 .notdef
130
+ !81 U+0081 .notdef
131
+ !82 U+0082 .notdef
132
+ !83 U+0083 .notdef
133
+ !84 U+0084 .notdef
134
+ !85 U+0085 .notdef
135
+ !86 U+0086 .notdef
136
+ !87 U+0087 .notdef
137
+ !88 U+0088 .notdef
138
+ !89 U+0089 .notdef
139
+ !8A U+008A .notdef
140
+ !8B U+008B .notdef
141
+ !8C U+008C .notdef
142
+ !8D U+008D .notdef
143
+ !8E U+008E .notdef
144
+ !8F U+008F .notdef
145
+ !90 U+0090 .notdef
146
+ !91 U+0091 .notdef
147
+ !92 U+0092 .notdef
148
+ !93 U+0093 .notdef
149
+ !94 U+0094 .notdef
150
+ !95 U+0095 .notdef
151
+ !96 U+0096 .notdef
152
+ !97 U+0097 .notdef
153
+ !98 U+0098 .notdef
154
+ !99 U+0099 .notdef
155
+ !9A U+009A .notdef
156
+ !9B U+009B .notdef
157
+ !9C U+009C .notdef
158
+ !9D U+009D .notdef
159
+ !9E U+009E .notdef
160
+ !9F U+009F .notdef
161
+ !A0 U+00A0 space
162
+ !A1 U+0104 Aogonek
163
+ !A2 U+0105 aogonek
164
+ !A3 U+0141 Lslash
165
+ !A4 U+20AC Euro
166
+ !A5 U+201E quotedblbase
167
+ !A6 U+0160 Scaron
168
+ !A7 U+00A7 section
169
+ !A8 U+0161 scaron
170
+ !A9 U+00A9 copyright
171
+ !AA U+0218 Scommaaccent
172
+ !AB U+00AB guillemotleft
173
+ !AC U+0179 Zacute
174
+ !AD U+00AD hyphen
175
+ !AE U+017A zacute
176
+ !AF U+017B Zdotaccent
177
+ !B0 U+00B0 degree
178
+ !B1 U+00B1 plusminus
179
+ !B2 U+010C Ccaron
180
+ !B3 U+0142 lslash
181
+ !B4 U+017D Zcaron
182
+ !B5 U+201D quotedblright
183
+ !B6 U+00B6 paragraph
184
+ !B7 U+00B7 periodcentered
185
+ !B8 U+017E zcaron
186
+ !B9 U+010D ccaron
187
+ !BA U+0219 scommaaccent
188
+ !BB U+00BB guillemotright
189
+ !BC U+0152 OE
190
+ !BD U+0153 oe
191
+ !BE U+0178 Ydieresis
192
+ !BF U+017C zdotaccent
193
+ !C0 U+00C0 Agrave
194
+ !C1 U+00C1 Aacute
195
+ !C2 U+00C2 Acircumflex
196
+ !C3 U+0102 Abreve
197
+ !C4 U+00C4 Adieresis
198
+ !C5 U+0106 Cacute
199
+ !C6 U+00C6 AE
200
+ !C7 U+00C7 Ccedilla
201
+ !C8 U+00C8 Egrave
202
+ !C9 U+00C9 Eacute
203
+ !CA U+00CA Ecircumflex
204
+ !CB U+00CB Edieresis
205
+ !CC U+00CC Igrave
206
+ !CD U+00CD Iacute
207
+ !CE U+00CE Icircumflex
208
+ !CF U+00CF Idieresis
209
+ !D0 U+0110 Dcroat
210
+ !D1 U+0143 Nacute
211
+ !D2 U+00D2 Ograve
212
+ !D3 U+00D3 Oacute
213
+ !D4 U+00D4 Ocircumflex
214
+ !D5 U+0150 Ohungarumlaut
215
+ !D6 U+00D6 Odieresis
216
+ !D7 U+015A Sacute
217
+ !D8 U+0170 Uhungarumlaut
218
+ !D9 U+00D9 Ugrave
219
+ !DA U+00DA Uacute
220
+ !DB U+00DB Ucircumflex
221
+ !DC U+00DC Udieresis
222
+ !DD U+0118 Eogonek
223
+ !DE U+021A Tcommaaccent
224
+ !DF U+00DF germandbls
225
+ !E0 U+00E0 agrave
226
+ !E1 U+00E1 aacute
227
+ !E2 U+00E2 acircumflex
228
+ !E3 U+0103 abreve
229
+ !E4 U+00E4 adieresis
230
+ !E5 U+0107 cacute
231
+ !E6 U+00E6 ae
232
+ !E7 U+00E7 ccedilla
233
+ !E8 U+00E8 egrave
234
+ !E9 U+00E9 eacute
235
+ !EA U+00EA ecircumflex
236
+ !EB U+00EB edieresis
237
+ !EC U+00EC igrave
238
+ !ED U+00ED iacute
239
+ !EE U+00EE icircumflex
240
+ !EF U+00EF idieresis
241
+ !F0 U+0111 dcroat
242
+ !F1 U+0144 nacute
243
+ !F2 U+00F2 ograve
244
+ !F3 U+00F3 oacute
245
+ !F4 U+00F4 ocircumflex
246
+ !F5 U+0151 ohungarumlaut
247
+ !F6 U+00F6 odieresis
248
+ !F7 U+015B sacute
249
+ !F8 U+0171 uhungarumlaut
250
+ !F9 U+00F9 ugrave
251
+ !FA U+00FA uacute
252
+ !FB U+00FB ucircumflex
253
+ !FC U+00FC udieresis
254
+ !FD U+0119 eogonek
255
+ !FE U+021B tcommaaccent
256
+ !FF U+00FF ydieresis
FPDF/makefont/iso-8859-2.map CHANGED
@@ -1,256 +1,256 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+0080 .notdef
130
- !81 U+0081 .notdef
131
- !82 U+0082 .notdef
132
- !83 U+0083 .notdef
133
- !84 U+0084 .notdef
134
- !85 U+0085 .notdef
135
- !86 U+0086 .notdef
136
- !87 U+0087 .notdef
137
- !88 U+0088 .notdef
138
- !89 U+0089 .notdef
139
- !8A U+008A .notdef
140
- !8B U+008B .notdef
141
- !8C U+008C .notdef
142
- !8D U+008D .notdef
143
- !8E U+008E .notdef
144
- !8F U+008F .notdef
145
- !90 U+0090 .notdef
146
- !91 U+0091 .notdef
147
- !92 U+0092 .notdef
148
- !93 U+0093 .notdef
149
- !94 U+0094 .notdef
150
- !95 U+0095 .notdef
151
- !96 U+0096 .notdef
152
- !97 U+0097 .notdef
153
- !98 U+0098 .notdef
154
- !99 U+0099 .notdef
155
- !9A U+009A .notdef
156
- !9B U+009B .notdef
157
- !9C U+009C .notdef
158
- !9D U+009D .notdef
159
- !9E U+009E .notdef
160
- !9F U+009F .notdef
161
- !A0 U+00A0 space
162
- !A1 U+0104 Aogonek
163
- !A2 U+02D8 breve
164
- !A3 U+0141 Lslash
165
- !A4 U+00A4 currency
166
- !A5 U+013D Lcaron
167
- !A6 U+015A Sacute
168
- !A7 U+00A7 section
169
- !A8 U+00A8 dieresis
170
- !A9 U+0160 Scaron
171
- !AA U+015E Scedilla
172
- !AB U+0164 Tcaron
173
- !AC U+0179 Zacute
174
- !AD U+00AD hyphen
175
- !AE U+017D Zcaron
176
- !AF U+017B Zdotaccent
177
- !B0 U+00B0 degree
178
- !B1 U+0105 aogonek
179
- !B2 U+02DB ogonek
180
- !B3 U+0142 lslash
181
- !B4 U+00B4 acute
182
- !B5 U+013E lcaron
183
- !B6 U+015B sacute
184
- !B7 U+02C7 caron
185
- !B8 U+00B8 cedilla
186
- !B9 U+0161 scaron
187
- !BA U+015F scedilla
188
- !BB U+0165 tcaron
189
- !BC U+017A zacute
190
- !BD U+02DD hungarumlaut
191
- !BE U+017E zcaron
192
- !BF U+017C zdotaccent
193
- !C0 U+0154 Racute
194
- !C1 U+00C1 Aacute
195
- !C2 U+00C2 Acircumflex
196
- !C3 U+0102 Abreve
197
- !C4 U+00C4 Adieresis
198
- !C5 U+0139 Lacute
199
- !C6 U+0106 Cacute
200
- !C7 U+00C7 Ccedilla
201
- !C8 U+010C Ccaron
202
- !C9 U+00C9 Eacute
203
- !CA U+0118 Eogonek
204
- !CB U+00CB Edieresis
205
- !CC U+011A Ecaron
206
- !CD U+00CD Iacute
207
- !CE U+00CE Icircumflex
208
- !CF U+010E Dcaron
209
- !D0 U+0110 Dcroat
210
- !D1 U+0143 Nacute
211
- !D2 U+0147 Ncaron
212
- !D3 U+00D3 Oacute
213
- !D4 U+00D4 Ocircumflex
214
- !D5 U+0150 Ohungarumlaut
215
- !D6 U+00D6 Odieresis
216
- !D7 U+00D7 multiply
217
- !D8 U+0158 Rcaron
218
- !D9 U+016E Uring
219
- !DA U+00DA Uacute
220
- !DB U+0170 Uhungarumlaut
221
- !DC U+00DC Udieresis
222
- !DD U+00DD Yacute
223
- !DE U+0162 Tcommaaccent
224
- !DF U+00DF germandbls
225
- !E0 U+0155 racute
226
- !E1 U+00E1 aacute
227
- !E2 U+00E2 acircumflex
228
- !E3 U+0103 abreve
229
- !E4 U+00E4 adieresis
230
- !E5 U+013A lacute
231
- !E6 U+0107 cacute
232
- !E7 U+00E7 ccedilla
233
- !E8 U+010D ccaron
234
- !E9 U+00E9 eacute
235
- !EA U+0119 eogonek
236
- !EB U+00EB edieresis
237
- !EC U+011B ecaron
238
- !ED U+00ED iacute
239
- !EE U+00EE icircumflex
240
- !EF U+010F dcaron
241
- !F0 U+0111 dcroat
242
- !F1 U+0144 nacute
243
- !F2 U+0148 ncaron
244
- !F3 U+00F3 oacute
245
- !F4 U+00F4 ocircumflex
246
- !F5 U+0151 ohungarumlaut
247
- !F6 U+00F6 odieresis
248
- !F7 U+00F7 divide
249
- !F8 U+0159 rcaron
250
- !F9 U+016F uring
251
- !FA U+00FA uacute
252
- !FB U+0171 uhungarumlaut
253
- !FC U+00FC udieresis
254
- !FD U+00FD yacute
255
- !FE U+0163 tcommaaccent
256
- !FF U+02D9 dotaccent
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+0080 .notdef
130
+ !81 U+0081 .notdef
131
+ !82 U+0082 .notdef
132
+ !83 U+0083 .notdef
133
+ !84 U+0084 .notdef
134
+ !85 U+0085 .notdef
135
+ !86 U+0086 .notdef
136
+ !87 U+0087 .notdef
137
+ !88 U+0088 .notdef
138
+ !89 U+0089 .notdef
139
+ !8A U+008A .notdef
140
+ !8B U+008B .notdef
141
+ !8C U+008C .notdef
142
+ !8D U+008D .notdef
143
+ !8E U+008E .notdef
144
+ !8F U+008F .notdef
145
+ !90 U+0090 .notdef
146
+ !91 U+0091 .notdef
147
+ !92 U+0092 .notdef
148
+ !93 U+0093 .notdef
149
+ !94 U+0094 .notdef
150
+ !95 U+0095 .notdef
151
+ !96 U+0096 .notdef
152
+ !97 U+0097 .notdef
153
+ !98 U+0098 .notdef
154
+ !99 U+0099 .notdef
155
+ !9A U+009A .notdef
156
+ !9B U+009B .notdef
157
+ !9C U+009C .notdef
158
+ !9D U+009D .notdef
159
+ !9E U+009E .notdef
160
+ !9F U+009F .notdef
161
+ !A0 U+00A0 space
162
+ !A1 U+0104 Aogonek
163
+ !A2 U+02D8 breve
164
+ !A3 U+0141 Lslash
165
+ !A4 U+00A4 currency
166
+ !A5 U+013D Lcaron
167
+ !A6 U+015A Sacute
168
+ !A7 U+00A7 section
169
+ !A8 U+00A8 dieresis
170
+ !A9 U+0160 Scaron
171
+ !AA U+015E Scedilla
172
+ !AB U+0164 Tcaron
173
+ !AC U+0179 Zacute
174
+ !AD U+00AD hyphen
175
+ !AE U+017D Zcaron
176
+ !AF U+017B Zdotaccent
177
+ !B0 U+00B0 degree
178
+ !B1 U+0105 aogonek
179
+ !B2 U+02DB ogonek
180
+ !B3 U+0142 lslash
181
+ !B4 U+00B4 acute
182
+ !B5 U+013E lcaron
183
+ !B6 U+015B sacute
184
+ !B7 U+02C7 caron
185
+ !B8 U+00B8 cedilla
186
+ !B9 U+0161 scaron
187
+ !BA U+015F scedilla
188
+ !BB U+0165 tcaron
189
+ !BC U+017A zacute
190
+ !BD U+02DD hungarumlaut
191
+ !BE U+017E zcaron
192
+ !BF U+017C zdotaccent
193
+ !C0 U+0154 Racute
194
+ !C1 U+00C1 Aacute
195
+ !C2 U+00C2 Acircumflex
196
+ !C3 U+0102 Abreve
197
+ !C4 U+00C4 Adieresis
198
+ !C5 U+0139 Lacute
199
+ !C6 U+0106 Cacute
200
+ !C7 U+00C7 Ccedilla
201
+ !C8 U+010C Ccaron
202
+ !C9 U+00C9 Eacute
203
+ !CA U+0118 Eogonek
204
+ !CB U+00CB Edieresis
205
+ !CC U+011A Ecaron
206
+ !CD U+00CD Iacute
207
+ !CE U+00CE Icircumflex
208
+ !CF U+010E Dcaron
209
+ !D0 U+0110 Dcroat
210
+ !D1 U+0143 Nacute
211
+ !D2 U+0147 Ncaron
212
+ !D3 U+00D3 Oacute
213
+ !D4 U+00D4 Ocircumflex
214
+ !D5 U+0150 Ohungarumlaut
215
+ !D6 U+00D6 Odieresis
216
+ !D7 U+00D7 multiply
217
+ !D8 U+0158 Rcaron
218
+ !D9 U+016E Uring
219
+ !DA U+00DA Uacute
220
+ !DB U+0170 Uhungarumlaut
221
+ !DC U+00DC Udieresis
222
+ !DD U+00DD Yacute
223
+ !DE U+0162 Tcommaaccent
224
+ !DF U+00DF germandbls
225
+ !E0 U+0155 racute
226
+ !E1 U+00E1 aacute
227
+ !E2 U+00E2 acircumflex
228
+ !E3 U+0103 abreve
229
+ !E4 U+00E4 adieresis
230
+ !E5 U+013A lacute
231
+ !E6 U+0107 cacute
232
+ !E7 U+00E7 ccedilla
233
+ !E8 U+010D ccaron
234
+ !E9 U+00E9 eacute
235
+ !EA U+0119 eogonek
236
+ !EB U+00EB edieresis
237
+ !EC U+011B ecaron
238
+ !ED U+00ED iacute
239
+ !EE U+00EE icircumflex
240
+ !EF U+010F dcaron
241
+ !F0 U+0111 dcroat
242
+ !F1 U+0144 nacute
243
+ !F2 U+0148 ncaron
244
+ !F3 U+00F3 oacute
245
+ !F4 U+00F4 ocircumflex
246
+ !F5 U+0151 ohungarumlaut
247
+ !F6 U+00F6 odieresis
248
+ !F7 U+00F7 divide
249
+ !F8 U+0159 rcaron
250
+ !F9 U+016F uring
251
+ !FA U+00FA uacute
252
+ !FB U+0171 uhungarumlaut
253
+ !FC U+00FC udieresis
254
+ !FD U+00FD yacute
255
+ !FE U+0163 tcommaaccent
256
+ !FF U+02D9 dotaccent
FPDF/makefont/iso-8859-4.map CHANGED
@@ -1,256 +1,256 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+0080 .notdef
130
- !81 U+0081 .notdef
131
- !82 U+0082 .notdef
132
- !83 U+0083 .notdef
133
- !84 U+0084 .notdef
134
- !85 U+0085 .notdef
135
- !86 U+0086 .notdef
136
- !87 U+0087 .notdef
137
- !88 U+0088 .notdef
138
- !89 U+0089 .notdef
139
- !8A U+008A .notdef
140
- !8B U+008B .notdef
141
- !8C U+008C .notdef
142
- !8D U+008D .notdef
143
- !8E U+008E .notdef
144
- !8F U+008F .notdef
145
- !90 U+0090 .notdef
146
- !91 U+0091 .notdef
147
- !92 U+0092 .notdef
148
- !93 U+0093 .notdef
149
- !94 U+0094 .notdef
150
- !95 U+0095 .notdef
151
- !96 U+0096 .notdef
152
- !97 U+0097 .notdef
153
- !98 U+0098 .notdef
154
- !99 U+0099 .notdef
155
- !9A U+009A .notdef
156
- !9B U+009B .notdef
157
- !9C U+009C .notdef
158
- !9D U+009D .notdef
159
- !9E U+009E .notdef
160
- !9F U+009F .notdef
161
- !A0 U+00A0 space
162
- !A1 U+0104 Aogonek
163
- !A2 U+0138 kgreenlandic
164
- !A3 U+0156 Rcommaaccent
165
- !A4 U+00A4 currency
166
- !A5 U+0128 Itilde
167
- !A6 U+013B Lcommaaccent
168
- !A7 U+00A7 section
169
- !A8 U+00A8 dieresis
170
- !A9 U+0160 Scaron
171
- !AA U+0112 Emacron
172
- !AB U+0122 Gcommaaccent
173
- !AC U+0166 Tbar
174
- !AD U+00AD hyphen
175
- !AE U+017D Zcaron
176
- !AF U+00AF macron
177
- !B0 U+00B0 degree
178
- !B1 U+0105 aogonek
179
- !B2 U+02DB ogonek
180
- !B3 U+0157 rcommaaccent
181
- !B4 U+00B4 acute
182
- !B5 U+0129 itilde
183
- !B6 U+013C lcommaaccent
184
- !B7 U+02C7 caron
185
- !B8 U+00B8 cedilla
186
- !B9 U+0161 scaron
187
- !BA U+0113 emacron
188
- !BB U+0123 gcommaaccent
189
- !BC U+0167 tbar
190
- !BD U+014A Eng
191
- !BE U+017E zcaron
192
- !BF U+014B eng
193
- !C0 U+0100 Amacron
194
- !C1 U+00C1 Aacute
195
- !C2 U+00C2 Acircumflex
196
- !C3 U+00C3 Atilde
197
- !C4 U+00C4 Adieresis
198
- !C5 U+00C5 Aring
199
- !C6 U+00C6 AE
200
- !C7 U+012E Iogonek
201
- !C8 U+010C Ccaron
202
- !C9 U+00C9 Eacute
203
- !CA U+0118 Eogonek
204
- !CB U+00CB Edieresis
205
- !CC U+0116 Edotaccent
206
- !CD U+00CD Iacute
207
- !CE U+00CE Icircumflex
208
- !CF U+012A Imacron
209
- !D0 U+0110 Dcroat
210
- !D1 U+0145 Ncommaaccent
211
- !D2 U+014C Omacron
212
- !D3 U+0136 Kcommaaccent
213
- !D4 U+00D4 Ocircumflex
214
- !D5 U+00D5 Otilde
215
- !D6 U+00D6 Odieresis
216
- !D7 U+00D7 multiply
217
- !D8 U+00D8 Oslash
218
- !D9 U+0172 Uogonek
219
- !DA U+00DA Uacute
220
- !DB U+00DB Ucircumflex
221
- !DC U+00DC Udieresis
222
- !DD U+0168 Utilde
223
- !DE U+016A Umacron
224
- !DF U+00DF germandbls
225
- !E0 U+0101 amacron
226
- !E1 U+00E1 aacute
227
- !E2 U+00E2 acircumflex
228
- !E3 U+00E3 atilde
229
- !E4 U+00E4 adieresis
230
- !E5 U+00E5 aring
231
- !E6 U+00E6 ae
232
- !E7 U+012F iogonek
233
- !E8 U+010D ccaron
234
- !E9 U+00E9 eacute
235
- !EA U+0119 eogonek
236
- !EB U+00EB edieresis
237
- !EC U+0117 edotaccent
238
- !ED U+00ED iacute
239
- !EE U+00EE icircumflex
240
- !EF U+012B imacron
241
- !F0 U+0111 dcroat
242
- !F1 U+0146 ncommaaccent
243
- !F2 U+014D omacron
244
- !F3 U+0137 kcommaaccent
245
- !F4 U+00F4 ocircumflex
246
- !F5 U+00F5 otilde
247
- !F6 U+00F6 odieresis
248
- !F7 U+00F7 divide
249
- !F8 U+00F8 oslash
250
- !F9 U+0173 uogonek
251
- !FA U+00FA uacute
252
- !FB U+00FB ucircumflex
253
- !FC U+00FC udieresis
254
- !FD U+0169 utilde
255
- !FE U+016B umacron
256
- !FF U+02D9 dotaccent
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+0080 .notdef
130
+ !81 U+0081 .notdef
131
+ !82 U+0082 .notdef
132
+ !83 U+0083 .notdef
133
+ !84 U+0084 .notdef
134
+ !85 U+0085 .notdef
135
+ !86 U+0086 .notdef
136
+ !87 U+0087 .notdef
137
+ !88 U+0088 .notdef
138
+ !89 U+0089 .notdef
139
+ !8A U+008A .notdef
140
+ !8B U+008B .notdef
141
+ !8C U+008C .notdef
142
+ !8D U+008D .notdef
143
+ !8E U+008E .notdef
144
+ !8F U+008F .notdef
145
+ !90 U+0090 .notdef
146
+ !91 U+0091 .notdef
147
+ !92 U+0092 .notdef
148
+ !93 U+0093 .notdef
149
+ !94 U+0094 .notdef
150
+ !95 U+0095 .notdef
151
+ !96 U+0096 .notdef
152
+ !97 U+0097 .notdef
153
+ !98 U+0098 .notdef
154
+ !99 U+0099 .notdef
155
+ !9A U+009A .notdef
156
+ !9B U+009B .notdef
157
+ !9C U+009C .notdef
158
+ !9D U+009D .notdef
159
+ !9E U+009E .notdef
160
+ !9F U+009F .notdef
161
+ !A0 U+00A0 space
162
+ !A1 U+0104 Aogonek
163
+ !A2 U+0138 kgreenlandic
164
+ !A3 U+0156 Rcommaaccent
165
+ !A4 U+00A4 currency
166
+ !A5 U+0128 Itilde
167
+ !A6 U+013B Lcommaaccent
168
+ !A7 U+00A7 section
169
+ !A8 U+00A8 dieresis
170
+ !A9 U+0160 Scaron
171
+ !AA U+0112 Emacron
172
+ !AB U+0122 Gcommaaccent
173
+ !AC U+0166 Tbar
174
+ !AD U+00AD hyphen
175
+ !AE U+017D Zcaron
176
+ !AF U+00AF macron
177
+ !B0 U+00B0 degree
178
+ !B1 U+0105 aogonek
179
+ !B2 U+02DB ogonek
180
+ !B3 U+0157 rcommaaccent
181
+ !B4 U+00B4 acute
182
+ !B5 U+0129 itilde
183
+ !B6 U+013C lcommaaccent
184
+ !B7 U+02C7 caron
185
+ !B8 U+00B8 cedilla
186
+ !B9 U+0161 scaron
187
+ !BA U+0113 emacron
188
+ !BB U+0123 gcommaaccent
189
+ !BC U+0167 tbar
190
+ !BD U+014A Eng
191
+ !BE U+017E zcaron
192
+ !BF U+014B eng
193
+ !C0 U+0100 Amacron
194
+ !C1 U+00C1 Aacute
195
+ !C2 U+00C2 Acircumflex
196
+ !C3 U+00C3 Atilde
197
+ !C4 U+00C4 Adieresis
198
+ !C5 U+00C5 Aring
199
+ !C6 U+00C6 AE
200
+ !C7 U+012E Iogonek
201
+ !C8 U+010C Ccaron
202
+ !C9 U+00C9 Eacute
203
+ !CA U+0118 Eogonek
204
+ !CB U+00CB Edieresis
205
+ !CC U+0116 Edotaccent
206
+ !CD U+00CD Iacute
207
+ !CE U+00CE Icircumflex
208
+ !CF U+012A Imacron
209
+ !D0 U+0110 Dcroat
210
+ !D1 U+0145 Ncommaaccent
211
+ !D2 U+014C Omacron
212
+ !D3 U+0136 Kcommaaccent
213
+ !D4 U+00D4 Ocircumflex
214
+ !D5 U+00D5 Otilde
215
+ !D6 U+00D6 Odieresis
216
+ !D7 U+00D7 multiply
217
+ !D8 U+00D8 Oslash
218
+ !D9 U+0172 Uogonek
219
+ !DA U+00DA Uacute
220
+ !DB U+00DB Ucircumflex
221
+ !DC U+00DC Udieresis
222
+ !DD U+0168 Utilde
223
+ !DE U+016A Umacron
224
+ !DF U+00DF germandbls
225
+ !E0 U+0101 amacron
226
+ !E1 U+00E1 aacute
227
+ !E2 U+00E2 acircumflex
228
+ !E3 U+00E3 atilde
229
+ !E4 U+00E4 adieresis
230
+ !E5 U+00E5 aring
231
+ !E6 U+00E6 ae
232
+ !E7 U+012F iogonek
233
+ !E8 U+010D ccaron
234
+ !E9 U+00E9 eacute
235
+ !EA U+0119 eogonek
236
+ !EB U+00EB edieresis
237
+ !EC U+0117 edotaccent
238
+ !ED U+00ED iacute
239
+ !EE U+00EE icircumflex
240
+ !EF U+012B imacron
241
+ !F0 U+0111 dcroat
242
+ !F1 U+0146 ncommaaccent
243
+ !F2 U+014D omacron
244
+ !F3 U+0137 kcommaaccent
245
+ !F4 U+00F4 ocircumflex
246
+ !F5 U+00F5 otilde
247
+ !F6 U+00F6 odieresis
248
+ !F7 U+00F7 divide
249
+ !F8 U+00F8 oslash
250
+ !F9 U+0173 uogonek
251
+ !FA U+00FA uacute
252
+ !FB U+00FB ucircumflex
253
+ !FC U+00FC udieresis
254
+ !FD U+0169 utilde
255
+ !FE U+016B umacron
256
+ !FF U+02D9 dotaccent
FPDF/makefont/iso-8859-5.map CHANGED
@@ -1,256 +1,256 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+0080 .notdef
130
- !81 U+0081 .notdef
131
- !82 U+0082 .notdef
132
- !83 U+0083 .notdef
133
- !84 U+0084 .notdef
134
- !85 U+0085 .notdef
135
- !86 U+0086 .notdef
136
- !87 U+0087 .notdef
137
- !88 U+0088 .notdef
138
- !89 U+0089 .notdef
139
- !8A U+008A .notdef
140
- !8B U+008B .notdef
141
- !8C U+008C .notdef
142
- !8D U+008D .notdef
143
- !8E U+008E .notdef
144
- !8F U+008F .notdef
145
- !90 U+0090 .notdef
146
- !91 U+0091 .notdef
147
- !92 U+0092 .notdef
148
- !93 U+0093 .notdef
149
- !94 U+0094 .notdef
150
- !95 U+0095 .notdef
151
- !96 U+0096 .notdef
152
- !97 U+0097 .notdef
153
- !98 U+0098 .notdef
154
- !99 U+0099 .notdef
155
- !9A U+009A .notdef
156
- !9B U+009B .notdef
157
- !9C U+009C .notdef
158
- !9D U+009D .notdef
159
- !9E U+009E .notdef
160
- !9F U+009F .notdef
161
- !A0 U+00A0 space
162
- !A1 U+0401 afii10023
163
- !A2 U+0402 afii10051
164
- !A3 U+0403 afii10052
165
- !A4 U+0404 afii10053
166
- !A5 U+0405 afii10054
167
- !A6 U+0406 afii10055
168
- !A7 U+0407 afii10056
169
- !A8 U+0408 afii10057
170
- !A9 U+0409 afii10058
171
- !AA U+040A afii10059
172
- !AB U+040B afii10060
173
- !AC U+040C afii10061
174
- !AD U+00AD hyphen
175
- !AE U+040E afii10062
176
- !AF U+040F afii10145
177
- !B0 U+0410 afii10017
178
- !B1 U+0411 afii10018
179
- !B2 U+0412 afii10019
180
- !B3 U+0413 afii10020
181
- !B4 U+0414 afii10021
182
- !B5 U+0415 afii10022
183
- !B6 U+0416 afii10024
184
- !B7 U+0417 afii10025
185
- !B8 U+0418 afii10026
186
- !B9 U+0419 afii10027
187
- !BA U+041A afii10028
188
- !BB U+041B afii10029
189
- !BC U+041C afii10030
190
- !BD U+041D afii10031
191
- !BE U+041E afii10032
192
- !BF U+041F afii10033
193
- !C0 U+0420 afii10034
194
- !C1 U+0421 afii10035
195
- !C2 U+0422 afii10036
196
- !C3 U+0423 afii10037
197
- !C4 U+0424 afii10038
198
- !C5 U+0425 afii10039
199
- !C6 U+0426 afii10040
200
- !C7 U+0427 afii10041
201
- !C8 U+0428 afii10042
202
- !C9 U+0429 afii10043
203
- !CA U+042A afii10044
204
- !CB U+042B afii10045
205
- !CC U+042C afii10046
206
- !CD U+042D afii10047
207
- !CE U+042E afii10048
208
- !CF U+042F afii10049
209
- !D0 U+0430 afii10065
210
- !D1 U+0431 afii10066
211
- !D2 U+0432 afii10067
212
- !D3 U+0433 afii10068
213
- !D4 U+0434 afii10069
214
- !D5 U+0435 afii10070
215
- !D6 U+0436 afii10072
216
- !D7 U+0437 afii10073
217
- !D8 U+0438 afii10074
218
- !D9 U+0439 afii10075
219
- !DA U+043A afii10076
220
- !DB U+043B afii10077
221
- !DC U+043C afii10078
222
- !DD U+043D afii10079
223
- !DE U+043E afii10080
224
- !DF U+043F afii10081
225
- !E0 U+0440 afii10082
226
- !E1 U+0441 afii10083
227
- !E2 U+0442 afii10084
228
- !E3 U+0443 afii10085
229
- !E4 U+0444 afii10086
230
- !E5 U+0445 afii10087
231
- !E6 U+0446 afii10088
232
- !E7 U+0447 afii10089
233
- !E8 U+0448 afii10090
234
- !E9 U+0449 afii10091
235
- !EA U+044A afii10092
236
- !EB U+044B afii10093
237
- !EC U+044C afii10094
238
- !ED U+044D afii10095
239
- !EE U+044E afii10096
240
- !EF U+044F afii10097
241
- !F0 U+2116 afii61352
242
- !F1 U+0451 afii10071
243
- !F2 U+0452 afii10099
244
- !F3 U+0453 afii10100
245
- !F4 U+0454 afii10101
246
- !F5 U+0455 afii10102
247
- !F6 U+0456 afii10103
248
- !F7 U+0457 afii10104
249
- !F8 U+0458 afii10105
250
- !F9 U+0459 afii10106
251
- !FA U+045A afii10107
252
- !FB U+045B afii10108
253
- !FC U+045C afii10109
254
- !FD U+00A7 section
255
- !FE U+045E afii10110
256
- !FF U+045F afii10193
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+0080 .notdef
130
+ !81 U+0081 .notdef
131
+ !82 U+0082 .notdef
132
+ !83 U+0083 .notdef
133
+ !84 U+0084 .notdef
134
+ !85 U+0085 .notdef
135
+ !86 U+0086 .notdef
136
+ !87 U+0087 .notdef
137
+ !88 U+0088 .notdef
138
+ !89 U+0089 .notdef
139
+ !8A U+008A .notdef
140
+ !8B U+008B .notdef
141
+ !8C U+008C .notdef
142
+ !8D U+008D .notdef
143
+ !8E U+008E .notdef
144
+ !8F U+008F .notdef
145
+ !90 U+0090 .notdef
146
+ !91 U+0091 .notdef
147
+ !92 U+0092 .notdef
148
+ !93 U+0093 .notdef
149
+ !94 U+0094 .notdef
150
+ !95 U+0095 .notdef
151
+ !96 U+0096 .notdef
152
+ !97 U+0097 .notdef
153
+ !98 U+0098 .notdef
154
+ !99 U+0099 .notdef
155
+ !9A U+009A .notdef
156
+ !9B U+009B .notdef
157
+ !9C U+009C .notdef
158
+ !9D U+009D .notdef
159
+ !9E U+009E .notdef
160
+ !9F U+009F .notdef
161
+ !A0 U+00A0 space
162
+ !A1 U+0401 afii10023
163
+ !A2 U+0402 afii10051
164
+ !A3 U+0403 afii10052
165
+ !A4 U+0404 afii10053
166
+ !A5 U+0405 afii10054
167
+ !A6 U+0406 afii10055
168
+ !A7 U+0407 afii10056
169
+ !A8 U+0408 afii10057
170
+ !A9 U+0409 afii10058
171
+ !AA U+040A afii10059
172
+ !AB U+040B afii10060
173
+ !AC U+040C afii10061
174
+ !AD U+00AD hyphen
175
+ !AE U+040E afii10062
176
+ !AF U+040F afii10145
177
+ !B0 U+0410 afii10017
178
+ !B1 U+0411 afii10018
179
+ !B2 U+0412 afii10019
180
+ !B3 U+0413 afii10020
181
+ !B4 U+0414 afii10021
182
+ !B5 U+0415 afii10022
183
+ !B6 U+0416 afii10024
184
+ !B7 U+0417 afii10025
185
+ !B8 U+0418 afii10026
186
+ !B9 U+0419 afii10027
187
+ !BA U+041A afii10028
188
+ !BB U+041B afii10029
189
+ !BC U+041C afii10030
190
+ !BD U+041D afii10031
191
+ !BE U+041E afii10032
192
+ !BF U+041F afii10033
193
+ !C0 U+0420 afii10034
194
+ !C1 U+0421 afii10035
195
+ !C2 U+0422 afii10036
196
+ !C3 U+0423 afii10037
197
+ !C4 U+0424 afii10038
198
+ !C5 U+0425 afii10039
199
+ !C6 U+0426 afii10040
200
+ !C7 U+0427 afii10041
201
+ !C8 U+0428 afii10042
202
+ !C9 U+0429 afii10043
203
+ !CA U+042A afii10044
204
+ !CB U+042B afii10045
205
+ !CC U+042C afii10046
206
+ !CD U+042D afii10047
207
+ !CE U+042E afii10048
208
+ !CF U+042F afii10049
209
+ !D0 U+0430 afii10065
210
+ !D1 U+0431 afii10066
211
+ !D2 U+0432 afii10067
212
+ !D3 U+0433 afii10068
213
+ !D4 U+0434 afii10069
214
+ !D5 U+0435 afii10070
215
+ !D6 U+0436 afii10072
216
+ !D7 U+0437 afii10073
217
+ !D8 U+0438 afii10074
218
+ !D9 U+0439 afii10075
219
+ !DA U+043A afii10076
220
+ !DB U+043B afii10077
221
+ !DC U+043C afii10078
222
+ !DD U+043D afii10079
223
+ !DE U+043E afii10080
224
+ !DF U+043F afii10081
225
+ !E0 U+0440 afii10082
226
+ !E1 U+0441 afii10083
227
+ !E2 U+0442 afii10084
228
+ !E3 U+0443 afii10085
229
+ !E4 U+0444 afii10086
230
+ !E5 U+0445 afii10087
231
+ !E6 U+0446 afii10088
232
+ !E7 U+0447 afii10089
233
+ !E8 U+0448 afii10090
234
+ !E9 U+0449 afii10091
235
+ !EA U+044A afii10092
236
+ !EB U+044B afii10093
237
+ !EC U+044C afii10094
238
+ !ED U+044D afii10095
239
+ !EE U+044E afii10096
240
+ !EF U+044F afii10097
241
+ !F0 U+2116 afii61352
242
+ !F1 U+0451 afii10071
243
+ !F2 U+0452 afii10099
244
+ !F3 U+0453 afii10100
245
+ !F4 U+0454 afii10101
246
+ !F5 U+0455 afii10102
247
+ !F6 U+0456 afii10103
248
+ !F7 U+0457 afii10104
249
+ !F8 U+0458 afii10105
250
+ !F9 U+0459 afii10106
251
+ !FA U+045A afii10107
252
+ !FB U+045B afii10108
253
+ !FC U+045C afii10109
254
+ !FD U+00A7 section
255
+ !FE U+045E afii10110
256
+ !FF U+045F afii10193
FPDF/makefont/iso-8859-7.map CHANGED
@@ -1,250 +1,250 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+0080 .notdef
130
- !81 U+0081 .notdef
131
- !82 U+0082 .notdef
132
- !83 U+0083 .notdef
133
- !84 U+0084 .notdef
134
- !85 U+0085 .notdef
135
- !86 U+0086 .notdef
136
- !87 U+0087 .notdef
137
- !88 U+0088 .notdef
138
- !89 U+0089 .notdef
139
- !8A U+008A .notdef
140
- !8B U+008B .notdef
141
- !8C U+008C .notdef
142
- !8D U+008D .notdef
143
- !8E U+008E .notdef
144
- !8F U+008F .notdef
145
- !90 U+0090 .notdef
146
- !91 U+0091 .notdef
147
- !92 U+0092 .notdef
148
- !93 U+0093 .notdef
149
- !94 U+0094 .notdef
150
- !95 U+0095 .notdef
151
- !96 U+0096 .notdef
152
- !97 U+0097 .notdef
153
- !98 U+0098 .notdef
154
- !99 U+0099 .notdef
155
- !9A U+009A .notdef
156
- !9B U+009B .notdef
157
- !9C U+009C .notdef
158
- !9D U+009D .notdef
159
- !9E U+009E .notdef
160
- !9F U+009F .notdef
161
- !A0 U+00A0 space
162
- !A1 U+2018 quoteleft
163
- !A2 U+2019 quoteright
164
- !A3 U+00A3 sterling
165
- !A6 U+00A6 brokenbar
166
- !A7 U+00A7 section
167
- !A8 U+00A8 dieresis
168
- !A9 U+00A9 copyright
169
- !AB U+00AB guillemotleft
170
- !AC U+00AC logicalnot
171
- !AD U+00AD hyphen
172
- !AF U+2015 afii00208
173
- !B0 U+00B0 degree
174
- !B1 U+00B1 plusminus
175
- !B2 U+00B2 twosuperior
176
- !B3 U+00B3 threesuperior
177
- !B4 U+0384 tonos
178
- !B5 U+0385 dieresistonos
179
- !B6 U+0386 Alphatonos
180
- !B7 U+00B7 periodcentered
181
- !B8 U+0388 Epsilontonos
182
- !B9 U+0389 Etatonos
183
- !BA U+038A Iotatonos
184
- !BB U+00BB guillemotright
185
- !BC U+038C Omicrontonos
186
- !BD U+00BD onehalf
187
- !BE U+038E Upsilontonos
188
- !BF U+038F Omegatonos
189
- !C0 U+0390 iotadieresistonos
190
- !C1 U+0391 Alpha
191
- !C2 U+0392 Beta
192
- !C3 U+0393 Gamma
193
- !C4 U+0394 Delta
194
- !C5 U+0395 Epsilon
195
- !C6 U+0396 Zeta
196
- !C7 U+0397 Eta
197
- !C8 U+0398 Theta
198
- !C9 U+0399 Iota
199
- !CA U+039A Kappa
200
- !CB U+039B Lambda
201
- !CC U+039C Mu
202
- !CD U+039D Nu
203
- !CE U+039E Xi
204
- !CF U+039F Omicron
205
- !D0 U+03A0 Pi
206
- !D1 U+03A1 Rho
207
- !D3 U+03A3 Sigma
208
- !D4 U+03A4 Tau
209
- !D5 U+03A5 Upsilon
210
- !D6 U+03A6 Phi
211
- !D7 U+03A7 Chi
212
- !D8 U+03A8 Psi
213
- !D9 U+03A9 Omega
214
- !DA U+03AA Iotadieresis
215
- !DB U+03AB Upsilondieresis
216
- !DC U+03AC alphatonos
217
- !DD U+03AD epsilontonos
218
- !DE U+03AE etatonos
219
- !DF U+03AF iotatonos
220
- !E0 U+03B0 upsilondieresistonos
221
- !E1 U+03B1 alpha
222
- !E2 U+03B2 beta
223
- !E3 U+03B3 gamma
224
- !E4 U+03B4 delta
225
- !E5 U+03B5 epsilon
226
- !E6 U+03B6 zeta
227
- !E7 U+03B7 eta
228
- !E8 U+03B8 theta
229
- !E9 U+03B9 iota
230
- !EA U+03BA kappa
231
- !EB U+03BB lambda
232
- !EC U+03BC mu
233
- !ED U+03BD nu
234
- !EE U+03BE xi
235
- !EF U+03BF omicron
236
- !F0 U+03C0 pi
237
- !F1 U+03C1 rho
238
- !F2 U+03C2 sigma1
239
- !F3 U+03C3 sigma
240
- !F4 U+03C4 tau
241
- !F5 U+03C5 upsilon
242
- !F6 U+03C6 phi
243
- !F7 U+03C7 chi
244
- !F8 U+03C8 psi
245
- !F9 U+03C9 omega
246
- !FA U+03CA iotadieresis
247
- !FB U+03CB upsilondieresis
248
- !FC U+03CC omicrontonos
249
- !FD U+03CD upsilontonos
250
- !FE U+03CE omegatonos
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+0080 .notdef
130
+ !81 U+0081 .notdef
131
+ !82 U+0082 .notdef
132
+ !83 U+0083 .notdef
133
+ !84 U+0084 .notdef
134
+ !85 U+0085 .notdef
135
+ !86 U+0086 .notdef
136
+ !87 U+0087 .notdef
137
+ !88 U+0088 .notdef
138
+ !89 U+0089 .notdef
139
+ !8A U+008A .notdef
140
+ !8B U+008B .notdef
141
+ !8C U+008C .notdef
142
+ !8D U+008D .notdef
143
+ !8E U+008E .notdef
144
+ !8F U+008F .notdef
145
+ !90 U+0090 .notdef
146
+ !91 U+0091 .notdef
147
+ !92 U+0092 .notdef
148
+ !93 U+0093 .notdef
149
+ !94 U+0094 .notdef
150
+ !95 U+0095 .notdef
151
+ !96 U+0096 .notdef
152
+ !97 U+0097 .notdef
153
+ !98 U+0098 .notdef
154
+ !99 U+0099 .notdef
155
+ !9A U+009A .notdef
156
+ !9B U+009B .notdef
157
+ !9C U+009C .notdef
158
+ !9D U+009D .notdef
159
+ !9E U+009E .notdef
160
+ !9F U+009F .notdef
161
+ !A0 U+00A0 space
162
+ !A1 U+2018 quoteleft
163
+ !A2 U+2019 quoteright
164
+ !A3 U+00A3 sterling
165
+ !A6 U+00A6 brokenbar
166
+ !A7 U+00A7 section
167
+ !A8 U+00A8 dieresis
168
+ !A9 U+00A9 copyright
169
+ !AB U+00AB guillemotleft
170
+ !AC U+00AC logicalnot
171
+ !AD U+00AD hyphen
172
+ !AF U+2015 afii00208
173
+ !B0 U+00B0 degree
174
+ !B1 U+00B1 plusminus
175
+ !B2 U+00B2 twosuperior
176
+ !B3 U+00B3 threesuperior
177
+ !B4 U+0384 tonos
178
+ !B5 U+0385 dieresistonos
179
+ !B6 U+0386 Alphatonos
180
+ !B7 U+00B7 periodcentered
181
+ !B8 U+0388 Epsilontonos
182
+ !B9 U+0389 Etatonos
183
+ !BA U+038A Iotatonos
184
+ !BB U+00BB guillemotright
185
+ !BC U+038C Omicrontonos
186
+ !BD U+00BD onehalf
187
+ !BE U+038E Upsilontonos
188
+ !BF U+038F Omegatonos
189
+ !C0 U+0390 iotadieresistonos
190
+ !C1 U+0391 Alpha
191
+ !C2 U+0392 Beta
192
+ !C3 U+0393 Gamma
193
+ !C4 U+0394 Delta
194
+ !C5 U+0395 Epsilon
195
+ !C6 U+0396 Zeta
196
+ !C7 U+0397 Eta
197
+ !C8 U+0398 Theta
198
+ !C9 U+0399 Iota
199
+ !CA U+039A Kappa
200
+ !CB U+039B Lambda
201
+ !CC U+039C Mu
202
+ !CD U+039D Nu
203
+ !CE U+039E Xi
204
+ !CF U+039F Omicron
205
+ !D0 U+03A0 Pi
206
+ !D1 U+03A1 Rho
207
+ !D3 U+03A3 Sigma
208
+ !D4 U+03A4 Tau
209
+ !D5 U+03A5 Upsilon
210
+ !D6 U+03A6 Phi
211
+ !D7 U+03A7 Chi
212
+ !D8 U+03A8 Psi
213
+ !D9 U+03A9 Omega
214
+ !DA U+03AA Iotadieresis
215
+ !DB U+03AB Upsilondieresis
216
+ !DC U+03AC alphatonos
217
+ !DD U+03AD epsilontonos
218
+ !DE U+03AE etatonos
219
+ !DF U+03AF iotatonos
220
+ !E0 U+03B0 upsilondieresistonos
221
+ !E1 U+03B1 alpha
222
+ !E2 U+03B2 beta
223
+ !E3 U+03B3 gamma
224
+ !E4 U+03B4 delta
225
+ !E5 U+03B5 epsilon
226
+ !E6 U+03B6 zeta
227
+ !E7 U+03B7 eta
228
+ !E8 U+03B8 theta
229
+ !E9 U+03B9 iota
230
+ !EA U+03BA kappa
231
+ !EB U+03BB lambda
232
+ !EC U+03BC mu
233
+ !ED U+03BD nu
234
+ !EE U+03BE xi
235
+ !EF U+03BF omicron
236
+ !F0 U+03C0 pi
237
+ !F1 U+03C1 rho
238
+ !F2 U+03C2 sigma1
239
+ !F3 U+03C3 sigma
240
+ !F4 U+03C4 tau
241
+ !F5 U+03C5 upsilon
242
+ !F6 U+03C6 phi
243
+ !F7 U+03C7 chi
244
+ !F8 U+03C8 psi
245
+ !F9 U+03C9 omega
246
+ !FA U+03CA iotadieresis
247
+ !FB U+03CB upsilondieresis
248
+ !FC U+03CC omicrontonos
249
+ !FD U+03CD upsilontonos
250
+ !FE U+03CE omegatonos
FPDF/makefont/iso-8859-9.map CHANGED
@@ -1,256 +1,256 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+0080 .notdef
130
- !81 U+0081 .notdef
131
- !82 U+0082 .notdef
132
- !83 U+0083 .notdef
133
- !84 U+0084 .notdef
134
- !85 U+0085 .notdef
135
- !86 U+0086 .notdef
136
- !87 U+0087 .notdef
137
- !88 U+0088 .notdef
138
- !89 U+0089 .notdef
139
- !8A U+008A .notdef
140
- !8B U+008B .notdef
141
- !8C U+008C .notdef
142
- !8D U+008D .notdef
143
- !8E U+008E .notdef
144
- !8F U+008F .notdef
145
- !90 U+0090 .notdef
146
- !91 U+0091 .notdef
147
- !92 U+0092 .notdef
148
- !93 U+0093 .notdef
149
- !94 U+0094 .notdef
150
- !95 U+0095 .notdef
151
- !96 U+0096 .notdef
152
- !97 U+0097 .notdef
153
- !98 U+0098 .notdef
154
- !99 U+0099 .notdef
155
- !9A U+009A .notdef
156
- !9B U+009B .notdef
157
- !9C U+009C .notdef
158
- !9D U+009D .notdef
159
- !9E U+009E .notdef
160
- !9F U+009F .notdef
161
- !A0 U+00A0 space
162
- !A1 U+00A1 exclamdown
163
- !A2 U+00A2 cent
164
- !A3 U+00A3 sterling
165
- !A4 U+00A4 currency
166
- !A5 U+00A5 yen
167
- !A6 U+00A6 brokenbar
168
- !A7 U+00A7 section
169
- !A8 U+00A8 dieresis
170
- !A9 U+00A9 copyright
171
- !AA U+00AA ordfeminine
172
- !AB U+00AB guillemotleft
173
- !AC U+00AC logicalnot
174
- !AD U+00AD hyphen
175
- !AE U+00AE registered
176
- !AF U+00AF macron
177
- !B0 U+00B0 degree
178
- !B1 U+00B1 plusminus
179
- !B2 U+00B2 twosuperior
180
- !B3 U+00B3 threesuperior
181
- !B4 U+00B4 acute
182
- !B5 U+00B5 mu
183
- !B6 U+00B6 paragraph
184
- !B7 U+00B7 periodcentered
185
- !B8 U+00B8 cedilla
186
- !B9 U+00B9 onesuperior
187
- !BA U+00BA ordmasculine
188
- !BB U+00BB guillemotright
189
- !BC U+00BC onequarter
190
- !BD U+00BD onehalf
191
- !BE U+00BE threequarters
192
- !BF U+00BF questiondown
193
- !C0 U+00C0 Agrave
194
- !C1 U+00C1 Aacute
195
- !C2 U+00C2 Acircumflex
196
- !C3 U+00C3 Atilde
197
- !C4 U+00C4 Adieresis
198
- !C5 U+00C5 Aring
199
- !C6 U+00C6 AE
200
- !C7 U+00C7 Ccedilla
201
- !C8 U+00C8 Egrave
202
- !C9 U+00C9 Eacute
203
- !CA U+00CA Ecircumflex
204
- !CB U+00CB Edieresis
205
- !CC U+00CC Igrave
206
- !CD U+00CD Iacute
207
- !CE U+00CE Icircumflex
208
- !CF U+00CF Idieresis
209
- !D0 U+011E Gbreve
210
- !D1 U+00D1 Ntilde
211
- !D2 U+00D2 Ograve
212
- !D3 U+00D3 Oacute
213
- !D4 U+00D4 Ocircumflex
214
- !D5 U+00D5 Otilde
215
- !D6 U+00D6 Odieresis
216
- !D7 U+00D7 multiply
217
- !D8 U+00D8 Oslash
218
- !D9 U+00D9 Ugrave
219
- !DA U+00DA Uacute
220
- !DB U+00DB Ucircumflex
221
- !DC U+00DC Udieresis
222
- !DD U+0130 Idotaccent
223
- !DE U+015E Scedilla
224
- !DF U+00DF germandbls
225
- !E0 U+00E0 agrave
226
- !E1 U+00E1 aacute
227
- !E2 U+00E2 acircumflex
228
- !E3 U+00E3 atilde
229
- !E4 U+00E4 adieresis
230
- !E5 U+00E5 aring
231
- !E6 U+00E6 ae
232
- !E7 U+00E7 ccedilla
233
- !E8 U+00E8 egrave
234
- !E9 U+00E9 eacute
235
- !EA U+00EA ecircumflex
236
- !EB U+00EB edieresis
237
- !EC U+00EC igrave
238
- !ED U+00ED iacute
239
- !EE U+00EE icircumflex
240
- !EF U+00EF idieresis
241
- !F0 U+011F gbreve
242
- !F1 U+00F1 ntilde
243
- !F2 U+00F2 ograve
244
- !F3 U+00F3 oacute
245
- !F4 U+00F4 ocircumflex
246
- !F5 U+00F5 otilde
247
- !F6 U+00F6 odieresis
248
- !F7 U+00F7 divide
249
- !F8 U+00F8 oslash
250
- !F9 U+00F9 ugrave
251
- !FA U+00FA uacute
252
- !FB U+00FB ucircumflex
253
- !FC U+00FC udieresis
254
- !FD U+0131 dotlessi
255
- !FE U+015F scedilla
256
- !FF U+00FF ydieresis
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+0080 .notdef
130
+ !81 U+0081 .notdef
131
+ !82 U+0082 .notdef
132
+ !83 U+0083 .notdef
133
+ !84 U+0084 .notdef
134
+ !85 U+0085 .notdef
135
+ !86 U+0086 .notdef
136
+ !87 U+0087 .notdef
137
+ !88 U+0088 .notdef
138
+ !89 U+0089 .notdef
139
+ !8A U+008A .notdef
140
+ !8B U+008B .notdef
141
+ !8C U+008C .notdef
142
+ !8D U+008D .notdef
143
+ !8E U+008E .notdef
144
+ !8F U+008F .notdef
145
+ !90 U+0090 .notdef
146
+ !91 U+0091 .notdef
147
+ !92 U+0092 .notdef
148
+ !93 U+0093 .notdef
149
+ !94 U+0094 .notdef
150
+ !95 U+0095 .notdef
151
+ !96 U+0096 .notdef
152
+ !97 U+0097 .notdef
153
+ !98 U+0098 .notdef
154
+ !99 U+0099 .notdef
155
+ !9A U+009A .notdef
156
+ !9B U+009B .notdef
157
+ !9C U+009C .notdef
158
+ !9D U+009D .notdef
159
+ !9E U+009E .notdef
160
+ !9F U+009F .notdef
161
+ !A0 U+00A0 space
162
+ !A1 U+00A1 exclamdown
163
+ !A2 U+00A2 cent
164
+ !A3 U+00A3 sterling
165
+ !A4 U+00A4 currency
166
+ !A5 U+00A5 yen
167
+ !A6 U+00A6 brokenbar
168
+ !A7 U+00A7 section
169
+ !A8 U+00A8 dieresis
170
+ !A9 U+00A9 copyright
171
+ !AA U+00AA ordfeminine
172
+ !AB U+00AB guillemotleft
173
+ !AC U+00AC logicalnot
174
+ !AD U+00AD hyphen
175
+ !AE U+00AE registered
176
+ !AF U+00AF macron
177
+ !B0 U+00B0 degree
178
+ !B1 U+00B1 plusminus
179
+ !B2 U+00B2 twosuperior
180
+ !B3 U+00B3 threesuperior
181
+ !B4 U+00B4 acute
182
+ !B5 U+00B5 mu
183
+ !B6 U+00B6 paragraph
184
+ !B7 U+00B7 periodcentered
185
+ !B8 U+00B8 cedilla
186
+ !B9 U+00B9 onesuperior
187
+ !BA U+00BA ordmasculine
188
+ !BB U+00BB guillemotright
189
+ !BC U+00BC onequarter
190
+ !BD U+00BD onehalf
191
+ !BE U+00BE threequarters
192
+ !BF U+00BF questiondown
193
+ !C0 U+00C0 Agrave
194
+ !C1 U+00C1 Aacute
195
+ !C2 U+00C2 Acircumflex
196
+ !C3 U+00C3 Atilde
197
+ !C4 U+00C4 Adieresis
198
+ !C5 U+00C5 Aring
199
+ !C6 U+00C6 AE
200
+ !C7 U+00C7 Ccedilla
201
+ !C8 U+00C8 Egrave
202
+ !C9 U+00C9 Eacute
203
+ !CA U+00CA Ecircumflex
204
+ !CB U+00CB Edieresis
205
+ !CC U+00CC Igrave
206
+ !CD U+00CD Iacute
207
+ !CE U+00CE Icircumflex
208
+ !CF U+00CF Idieresis
209
+ !D0 U+011E Gbreve
210
+ !D1 U+00D1 Ntilde
211
+ !D2 U+00D2 Ograve
212
+ !D3 U+00D3 Oacute
213
+ !D4 U+00D4 Ocircumflex
214
+ !D5 U+00D5 Otilde
215
+ !D6 U+00D6 Odieresis
216
+ !D7 U+00D7 multiply
217
+ !D8 U+00D8 Oslash
218
+ !D9 U+00D9 Ugrave
219
+ !DA U+00DA Uacute
220
+ !DB U+00DB Ucircumflex
221
+ !DC U+00DC Udieresis
222
+ !DD U+0130 Idotaccent
223
+ !DE U+015E Scedilla
224
+ !DF U+00DF germandbls
225
+ !E0 U+00E0 agrave
226
+ !E1 U+00E1 aacute
227
+ !E2 U+00E2 acircumflex
228
+ !E3 U+00E3 atilde
229
+ !E4 U+00E4 adieresis
230
+ !E5 U+00E5 aring
231
+ !E6 U+00E6 ae
232
+ !E7 U+00E7 ccedilla
233
+ !E8 U+00E8 egrave
234
+ !E9 U+00E9 eacute
235
+ !EA U+00EA ecircumflex
236
+ !EB U+00EB edieresis
237
+ !EC U+00EC igrave
238
+ !ED U+00ED iacute
239
+ !EE U+00EE icircumflex
240
+ !EF U+00EF idieresis
241
+ !F0 U+011F gbreve
242
+ !F1 U+00F1 ntilde
243
+ !F2 U+00F2 ograve
244
+ !F3 U+00F3 oacute
245
+ !F4 U+00F4 ocircumflex
246
+ !F5 U+00F5 otilde
247
+ !F6 U+00F6 odieresis
248
+ !F7 U+00F7 divide
249
+ !F8 U+00F8 oslash
250
+ !F9 U+00F9 ugrave
251
+ !FA U+00FA uacute
252
+ !FB U+00FB ucircumflex
253
+ !FC U+00FC udieresis
254
+ !FD U+0131 dotlessi
255
+ !FE U+015F scedilla
256
+ !FF U+00FF ydieresis
FPDF/makefont/koi8-r.map CHANGED
@@ -1,256 +1,256 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+2500 SF100000
130
- !81 U+2502 SF110000
131
- !82 U+250C SF010000
132
- !83 U+2510 SF030000
133
- !84 U+2514 SF020000
134
- !85 U+2518 SF040000
135
- !86 U+251C SF080000
136
- !87 U+2524 SF090000
137
- !88 U+252C SF060000
138
- !89 U+2534 SF070000
139
- !8A U+253C SF050000
140
- !8B U+2580 upblock
141
- !8C U+2584 dnblock
142
- !8D U+2588 block
143
- !8E U+258C lfblock
144
- !8F U+2590 rtblock
145
- !90 U+2591 ltshade
146
- !91 U+2592 shade
147
- !92 U+2593 dkshade
148
- !93 U+2320 integraltp
149
- !94 U+25A0 filledbox
150
- !95 U+2219 periodcentered
151
- !96 U+221A radical
152
- !97 U+2248 approxequal
153
- !98 U+2264 lessequal
154
- !99 U+2265 greaterequal
155
- !9A U+00A0 space
156
- !9B U+2321 integralbt
157
- !9C U+00B0 degree
158
- !9D U+00B2 twosuperior
159
- !9E U+00B7 periodcentered
160
- !9F U+00F7 divide
161
- !A0 U+2550 SF430000
162
- !A1 U+2551 SF240000
163
- !A2 U+2552 SF510000
164
- !A3 U+0451 afii10071
165
- !A4 U+2553 SF520000
166
- !A5 U+2554 SF390000
167
- !A6 U+2555 SF220000
168
- !A7 U+2556 SF210000
169
- !A8 U+2557 SF250000
170
- !A9 U+2558 SF500000
171
- !AA U+2559 SF490000
172
- !AB U+255A SF380000
173
- !AC U+255B SF280000
174
- !AD U+255C SF270000
175
- !AE U+255D SF260000
176
- !AF U+255E SF360000
177
- !B0 U+255F SF370000
178
- !B1 U+2560 SF420000
179
- !B2 U+2561 SF190000
180
- !B3 U+0401 afii10023
181
- !B4 U+2562 SF200000
182
- !B5 U+2563 SF230000
183
- !B6 U+2564 SF470000
184
- !B7 U+2565 SF480000
185
- !B8 U+2566 SF410000
186
- !B9 U+2567 SF450000
187
- !BA U+2568 SF460000
188
- !BB U+2569 SF400000
189
- !BC U+256A SF540000
190
- !BD U+256B SF530000
191
- !BE U+256C SF440000
192
- !BF U+00A9 copyright
193
- !C0 U+044E afii10096
194
- !C1 U+0430 afii10065
195
- !C2 U+0431 afii10066
196
- !C3 U+0446 afii10088
197
- !C4 U+0434 afii10069
198
- !C5 U+0435 afii10070
199
- !C6 U+0444 afii10086
200
- !C7 U+0433 afii10068
201
- !C8 U+0445 afii10087
202
- !C9 U+0438 afii10074
203
- !CA U+0439 afii10075
204
- !CB U+043A afii10076
205
- !CC U+043B afii10077
206
- !CD U+043C afii10078
207
- !CE U+043D afii10079
208
- !CF U+043E afii10080
209
- !D0 U+043F afii10081
210
- !D1 U+044F afii10097
211
- !D2 U+0440 afii10082
212
- !D3 U+0441 afii10083
213
- !D4 U+0442 afii10084
214
- !D5 U+0443 afii10085
215
- !D6 U+0436 afii10072
216
- !D7 U+0432 afii10067
217
- !D8 U+044C afii10094
218
- !D9 U+044B afii10093
219
- !DA U+0437 afii10073
220
- !DB U+0448 afii10090
221
- !DC U+044D afii10095
222
- !DD U+0449 afii10091
223
- !DE U+0447 afii10089
224
- !DF U+044A afii10092
225
- !E0 U+042E afii10048
226
- !E1 U+0410 afii10017
227
- !E2 U+0411 afii10018
228
- !E3 U+0426 afii10040
229
- !E4 U+0414 afii10021
230
- !E5 U+0415 afii10022
231
- !E6 U+0424 afii10038
232
- !E7 U+0413 afii10020
233
- !E8 U+0425 afii10039
234
- !E9 U+0418 afii10026
235
- !EA U+0419 afii10027
236
- !EB U+041A afii10028
237
- !EC U+041B afii10029
238
- !ED U+041C afii10030
239
- !EE U+041D afii10031
240
- !EF U+041E afii10032
241
- !F0 U+041F afii10033
242
- !F1 U+042F afii10049
243
- !F2 U+0420 afii10034
244
- !F3 U+0421 afii10035
245
- !F4 U+0422 afii10036
246
- !F5 U+0423 afii10037
247
- !F6 U+0416 afii10024
248
- !F7 U+0412 afii10019
249
- !F8 U+042C afii10046
250
- !F9 U+042B afii10045
251
- !FA U+0417 afii10025
252
- !FB U+0428 afii10042
253
- !FC U+042D afii10047
254
- !FD U+0429 afii10043
255
- !FE U+0427 afii10041
256
- !FF U+042A afii10044
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+2500 SF100000
130
+ !81 U+2502 SF110000
131
+ !82 U+250C SF010000
132
+ !83 U+2510 SF030000
133
+ !84 U+2514 SF020000
134
+ !85 U+2518 SF040000
135
+ !86 U+251C SF080000
136
+ !87 U+2524 SF090000
137
+ !88 U+252C SF060000
138
+ !89 U+2534 SF070000
139
+ !8A U+253C SF050000
140
+ !8B U+2580 upblock
141
+ !8C U+2584 dnblock
142
+ !8D U+2588 block
143
+ !8E U+258C lfblock
144
+ !8F U+2590 rtblock
145
+ !90 U+2591 ltshade
146
+ !91 U+2592 shade
147
+ !92 U+2593 dkshade
148
+ !93 U+2320 integraltp
149
+ !94 U+25A0 filledbox
150
+ !95 U+2219 periodcentered
151
+ !96 U+221A radical
152
+ !97 U+2248 approxequal
153
+ !98 U+2264 lessequal
154
+ !99 U+2265 greaterequal
155
+ !9A U+00A0 space
156
+ !9B U+2321 integralbt
157
+ !9C U+00B0 degree
158
+ !9D U+00B2 twosuperior
159
+ !9E U+00B7 periodcentered
160
+ !9F U+00F7 divide
161
+ !A0 U+2550 SF430000
162
+ !A1 U+2551 SF240000
163
+ !A2 U+2552 SF510000
164
+ !A3 U+0451 afii10071
165
+ !A4 U+2553 SF520000
166
+ !A5 U+2554 SF390000
167
+ !A6 U+2555 SF220000
168
+ !A7 U+2556 SF210000
169
+ !A8 U+2557 SF250000
170
+ !A9 U+2558 SF500000
171
+ !AA U+2559 SF490000
172
+ !AB U+255A SF380000
173
+ !AC U+255B SF280000
174
+ !AD U+255C SF270000
175
+ !AE U+255D SF260000
176
+ !AF U+255E SF360000
177
+ !B0 U+255F SF370000
178
+ !B1 U+2560 SF420000
179
+ !B2 U+2561 SF190000
180
+ !B3 U+0401 afii10023
181
+ !B4 U+2562 SF200000
182
+ !B5 U+2563 SF230000
183
+ !B6 U+2564 SF470000
184
+ !B7 U+2565 SF480000
185
+ !B8 U+2566 SF410000
186
+ !B9 U+2567 SF450000
187
+ !BA U+2568 SF460000
188
+ !BB U+2569 SF400000
189
+ !BC U+256A SF540000
190
+ !BD U+256B SF530000
191
+ !BE U+256C SF440000
192
+ !BF U+00A9 copyright
193
+ !C0 U+044E afii10096
194
+ !C1 U+0430 afii10065
195
+ !C2 U+0431 afii10066
196
+ !C3 U+0446 afii10088
197
+ !C4 U+0434 afii10069
198
+ !C5 U+0435 afii10070
199
+ !C6 U+0444 afii10086
200
+ !C7 U+0433 afii10068
201
+ !C8 U+0445 afii10087
202
+ !C9 U+0438 afii10074
203
+ !CA U+0439 afii10075
204
+ !CB U+043A afii10076
205
+ !CC U+043B afii10077
206
+ !CD U+043C afii10078
207
+ !CE U+043D afii10079
208
+ !CF U+043E afii10080
209
+ !D0 U+043F afii10081
210
+ !D1 U+044F afii10097
211
+ !D2 U+0440 afii10082
212
+ !D3 U+0441 afii10083
213
+ !D4 U+0442 afii10084
214
+ !D5 U+0443 afii10085
215
+ !D6 U+0436 afii10072
216
+ !D7 U+0432 afii10067
217
+ !D8 U+044C afii10094
218
+ !D9 U+044B afii10093
219
+ !DA U+0437 afii10073
220
+ !DB U+0448 afii10090
221
+ !DC U+044D afii10095
222
+ !DD U+0449 afii10091
223
+ !DE U+0447 afii10089
224
+ !DF U+044A afii10092
225
+ !E0 U+042E afii10048
226
+ !E1 U+0410 afii10017
227
+ !E2 U+0411 afii10018
228
+ !E3 U+0426 afii10040
229
+ !E4 U+0414 afii10021
230
+ !E5 U+0415 afii10022
231
+ !E6 U+0424 afii10038
232
+ !E7 U+0413 afii10020
233
+ !E8 U+0425 afii10039
234
+ !E9 U+0418 afii10026
235
+ !EA U+0419 afii10027
236
+ !EB U+041A afii10028
237
+ !EC U+041B afii10029
238
+ !ED U+041C afii10030
239
+ !EE U+041D afii10031
240
+ !EF U+041E afii10032
241
+ !F0 U+041F afii10033
242
+ !F1 U+042F afii10049
243
+ !F2 U+0420 afii10034
244
+ !F3 U+0421 afii10035
245
+ !F4 U+0422 afii10036
246
+ !F5 U+0423 afii10037
247
+ !F6 U+0416 afii10024
248
+ !F7 U+0412 afii10019
249
+ !F8 U+042C afii10046
250
+ !F9 U+042B afii10045
251
+ !FA U+0417 afii10025
252
+ !FB U+0428 afii10042
253
+ !FC U+042D afii10047
254
+ !FD U+0429 afii10043
255
+ !FE U+0427 afii10041
256
+ !FF U+042A afii10044
FPDF/makefont/koi8-u.map CHANGED
@@ -1,256 +1,256 @@
1
- !00 U+0000 .notdef
2
- !01 U+0001 .notdef
3
- !02 U+0002 .notdef
4
- !03 U+0003 .notdef
5
- !04 U+0004 .notdef
6
- !05 U+0005 .notdef
7
- !06 U+0006 .notdef
8
- !07 U+0007 .notdef
9
- !08 U+0008 .notdef
10
- !09 U+0009 .notdef
11
- !0A U+000A .notdef
12
- !0B U+000B .notdef
13
- !0C U+000C .notdef
14
- !0D U+000D .notdef
15
- !0E U+000E .notdef
16
- !0F U+000F .notdef
17
- !10 U+0010 .notdef
18
- !11 U+0011 .notdef
19
- !12 U+0012 .notdef
20
- !13 U+0013 .notdef
21
- !14 U+0014 .notdef
22
- !15 U+0015 .notdef
23
- !16 U+0016 .notdef
24
- !17 U+0017 .notdef
25
- !18 U+0018 .notdef
26
- !19 U+0019 .notdef
27
- !1A U+001A .notdef
28
- !1B U+001B .notdef
29
- !1C U+001C .notdef
30
- !1D U+001D .notdef
31
- !1E U+001E .notdef
32
- !1F U+001F .notdef
33
- !20 U+0020 space
34
- !21 U+0021 exclam
35
- !22 U+0022 quotedbl
36
- !23 U+0023 numbersign
37
- !24 U+0024 dollar
38
- !25 U+0025 percent
39
- !26 U+0026 ampersand
40
- !27 U+0027 quotesingle
41
- !28 U+0028 parenleft
42
- !29 U+0029 parenright
43
- !2A U+002A asterisk
44
- !2B U+002B plus
45
- !2C U+002C comma
46
- !2D U+002D hyphen
47
- !2E U+002E period
48
- !2F U+002F slash
49
- !30 U+0030 zero
50
- !31 U+0031 one
51
- !32 U+0032 two
52
- !33 U+0033 three
53
- !34 U+0034 four
54
- !35 U+0035 five
55
- !36 U+0036 six
56
- !37 U+0037 seven
57
- !38 U+0038 eight
58
- !39 U+0039 nine
59
- !3A U+003A colon
60
- !3B U+003B semicolon
61
- !3C U+003C less
62
- !3D U+003D equal
63
- !3E U+003E greater
64
- !3F U+003F question
65
- !40 U+0040 at
66
- !41 U+0041 A
67
- !42 U+0042 B
68
- !43 U+0043 C
69
- !44 U+0044 D
70
- !45 U+0045 E
71
- !46 U+0046 F
72
- !47 U+0047 G
73
- !48 U+0048 H
74
- !49 U+0049 I
75
- !4A U+004A J
76
- !4B U+004B K
77
- !4C U+004C L
78
- !4D U+004D M
79
- !4E U+004E N
80
- !4F U+004F O
81
- !50 U+0050 P
82
- !51 U+0051 Q
83
- !52 U+0052 R
84
- !53 U+0053 S
85
- !54 U+0054 T
86
- !55 U+0055 U
87
- !56 U+0056 V
88
- !57 U+0057 W
89
- !58 U+0058 X
90
- !59 U+0059 Y
91
- !5A U+005A Z
92
- !5B U+005B bracketleft
93
- !5C U+005C backslash
94
- !5D U+005D bracketright
95
- !5E U+005E asciicircum
96
- !5F U+005F underscore
97
- !60 U+0060 grave
98
- !61 U+0061 a
99
- !62 U+0062 b
100
- !63 U+0063 c
101
- !64 U+0064 d
102
- !65 U+0065 e
103
- !66 U+0066 f
104
- !67 U+0067 g
105
- !68 U+0068 h
106
- !69 U+0069 i
107
- !6A U+006A j
108
- !6B U+006B k
109
- !6C U+006C l
110
- !6D U+006D m
111
- !6E U+006E n
112
- !6F U+006F o
113
- !70 U+0070 p
114
- !71 U+0071 q
115
- !72 U+0072 r
116
- !73 U+0073 s
117
- !74 U+0074 t
118
- !75 U+0075 u
119
- !76 U+0076 v
120
- !77 U+0077 w
121
- !78 U+0078 x
122
- !79 U+0079 y
123
- !7A U+007A z
124
- !7B U+007B braceleft
125
- !7C U+007C bar
126
- !7D U+007D braceright
127
- !7E U+007E asciitilde
128
- !7F U+007F .notdef
129
- !80 U+2500 SF100000
130
- !81 U+2502 SF110000
131
- !82 U+250C SF010000
132
- !83 U+2510 SF030000
133
- !84 U+2514 SF020000
134
- !85 U+2518 SF040000
135
- !86 U+251C SF080000
136
- !87 U+2524 SF090000
137
- !88 U+252C SF060000
138
- !89 U+2534 SF070000
139
- !8A U+253C SF050000
140
- !8B U+2580 upblock
141
- !8C U+2584 dnblock
142
- !8D U+2588 block
143
- !8E U+258C lfblock
144
- !8F U+2590 rtblock
145
- !90 U+2591 ltshade
146
- !91 U+2592 shade
147
- !92 U+2593 dkshade
148
- !93 U+2320 integraltp
149
- !94 U+25A0 filledbox
150
- !95 U+2022 bullet
151
- !96 U+221A radical
152
- !97 U+2248 approxequal
153
- !98 U+2264 lessequal
154
- !99 U+2265 greaterequal
155
- !9A U+00A0 space
156
- !9B U+2321 integralbt
157
- !9C U+00B0 degree
158
- !9D U+00B2 twosuperior
159
- !9E U+00B7 periodcentered
160
- !9F U+00F7 divide
161
- !A0 U+2550 SF430000
162
- !A1 U+2551 SF240000
163
- !A2 U+2552 SF510000
164
- !A3 U+0451 afii10071
165
- !A4 U+0454 afii10101
166
- !A5 U+2554 SF390000
167
- !A6 U+0456 afii10103
168
- !A7 U+0457 afii10104
169
- !A8 U+2557 SF250000
170
- !A9 U+2558 SF500000
171
- !AA U+2559 SF490000
172
- !AB U+255A SF380000
173
- !AC U+255B SF280000
174
- !AD U+0491 afii10098
175
- !AE U+255D SF260000
176
- !AF U+255E SF360000
177
- !B0 U+255F SF370000
178
- !B1 U+2560 SF420000
179
- !B2 U+2561 SF190000
180
- !B3 U+0401 afii10023
181
- !B4 U+0404 afii10053
182
- !B5 U+2563 SF230000
183
- !B6 U+0406 afii10055
184
- !B7 U+0407 afii10056
185
- !B8 U+2566 SF410000
186
- !B9 U+2567 SF450000
187
- !BA U+2568 SF460000
188
- !BB U+2569 SF400000
189
- !BC U+256A SF540000
190
- !BD U+0490 afii10050
191
- !BE U+256C SF440000
192
- !BF U+00A9 copyright
193
- !C0 U+044E afii10096
194
- !C1 U+0430 afii10065
195
- !C2 U+0431 afii10066
196
- !C3 U+0446 afii10088
197
- !C4 U+0434 afii10069
198
- !C5 U+0435 afii10070
199
- !C6 U+0444 afii10086
200
- !C7 U+0433 afii10068
201
- !C8 U+0445 afii10087
202
- !C9 U+0438 afii10074
203
- !CA U+0439 afii10075
204
- !CB U+043A afii10076
205
- !CC U+043B afii10077
206
- !CD U+043C afii10078
207
- !CE U+043D afii10079
208
- !CF U+043E afii10080
209
- !D0 U+043F afii10081
210
- !D1 U+044F afii10097
211
- !D2 U+0440 afii10082
212
- !D3 U+0441 afii10083
213
- !D4 U+0442 afii10084
214
- !D5 U+0443 afii10085
215
- !D6 U+0436 afii10072
216
- !D7 U+0432 afii10067
217
- !D8 U+044C afii10094
218
- !D9 U+044B afii10093
219
- !DA U+0437 afii10073
220
- !DB U+0448 afii10090
221
- !DC U+044D afii10095
222
- !DD U+0449 afii10091
223
- !DE U+0447 afii10089
224
- !DF U+044A afii10092
225
- !E0 U+042E afii10048
226
- !E1 U+0410 afii10017
227
- !E2 U+0411 afii10018
228
- !E3 U+0426 afii10040
229
- !E4 U+0414 afii10021
230
- !E5 U+0415 afii10022
231
- !E6 U+0424 afii10038
232
- !E7 U+0413 afii10020
233
- !E8 U+0425 afii10039
234
- !E9 U+0418 afii10026
235
- !EA U+0419 afii10027
236
- !EB U+041A afii10028
237
- !EC U+041B afii10029
238
- !ED U+041C afii10030
239
- !EE U+041D afii10031
240
- !EF U+041E afii10032
241
- !F0 U+041F afii10033
242
- !F1 U+042F afii10049
243
- !F2 U+0420 afii10034
244
- !F3 U+0421 afii10035
245
- !F4 U+0422 afii10036
246
- !F5 U+0423 afii10037
247
- !F6 U+0416 afii10024
248
- !F7 U+0412 afii10019
249
- !F8 U+042C afii10046
250
- !F9 U+042B afii10045
251
- !FA U+0417 afii10025
252
- !FB U+0428 afii10042
253
- !FC U+042D afii10047
254
- !FD U+0429 afii10043
255
- !FE U+0427 afii10041
256
- !FF U+042A afii10044
1
+ !00 U+0000 .notdef
2
+ !01 U+0001 .notdef
3
+ !02 U+0002 .notdef
4
+ !03 U+0003 .notdef
5
+ !04 U+0004 .notdef
6
+ !05 U+0005 .notdef
7
+ !06 U+0006 .notdef
8
+ !07 U+0007 .notdef
9
+ !08 U+0008 .notdef
10
+ !09 U+0009 .notdef
11
+ !0A U+000A .notdef
12
+ !0B U+000B .notdef
13
+ !0C U+000C .notdef
14
+ !0D U+000D .notdef
15
+ !0E U+000E .notdef
16
+ !0F U+000F .notdef
17
+ !10 U+0010 .notdef
18
+ !11 U+0011 .notdef
19
+ !12 U+0012 .notdef
20
+ !13 U+0013 .notdef
21
+ !14 U+0014 .notdef
22
+ !15 U+0015 .notdef
23
+ !16 U+0016 .notdef
24
+ !17 U+0017 .notdef
25
+ !18 U+0018 .notdef
26
+ !19 U+0019 .notdef
27
+ !1A U+001A .notdef
28
+ !1B U+001B .notdef
29
+ !1C U+001C .notdef
30
+ !1D U+001D .notdef
31
+ !1E U+001E .notdef
32
+ !1F U+001F .notdef
33
+ !20 U+0020 space
34
+ !21 U+0021 exclam
35
+ !22 U+0022 quotedbl
36
+ !23 U+0023 numbersign
37
+ !24 U+0024 dollar
38
+ !25 U+0025 percent
39
+ !26 U+0026 ampersand
40
+ !27 U+0027 quotesingle
41
+ !28 U+0028 parenleft
42
+ !29 U+0029 parenright
43
+ !2A U+002A asterisk
44
+ !2B U+002B plus
45
+ !2C U+002C comma
46
+ !2D U+002D hyphen
47
+ !2E U+002E period
48
+ !2F U+002F slash
49
+ !30 U+0030 zero
50
+ !31 U+0031 one
51
+ !32 U+0032 two
52
+ !33 U+0033 three
53
+ !34 U+0034 four
54
+ !35 U+0035 five
55
+ !36 U+0036 six
56
+ !37 U+0037 seven
57
+ !38 U+0038 eight
58
+ !39 U+0039 nine
59
+ !3A U+003A colon
60
+ !3B U+003B semicolon
61
+ !3C U+003C less
62
+ !3D U+003D equal
63
+ !3E U+003E greater
64
+ !3F U+003F question
65
+ !40 U+0040 at
66
+ !41 U+0041 A
67
+ !42 U+0042 B
68
+ !43 U+0043 C
69
+ !44 U+0044 D
70
+ !45 U+0045 E
71
+ !46 U+0046 F
72
+ !47 U+0047 G
73
+ !48 U+0048 H
74
+ !49 U+0049 I
75
+ !4A U+004A J
76
+ !4B U+004B K
77
+ !4C U+004C L
78
+ !4D U+004D M
79
+ !4E U+004E N
80
+ !4F U+004F O
81
+ !50 U+0050 P
82
+ !51 U+0051 Q
83
+ !52 U+0052 R
84
+ !53 U+0053 S
85
+ !54 U+0054 T
86
+ !55 U+0055 U
87
+ !56 U+0056 V
88
+ !57 U+0057 W
89
+ !58 U+0058 X
90
+ !59 U+0059 Y
91
+ !5A U+005A Z
92
+ !5B U+005B bracketleft
93
+ !5C U+005C backslash
94
+ !5D U+005D bracketright
95
+ !5E U+005E asciicircum
96
+ !5F U+005F underscore
97
+ !60 U+0060 grave
98
+ !61 U+0061 a
99
+ !62 U+0062 b
100
+ !63 U+0063 c
101
+ !64 U+0064 d
102
+ !65 U+0065 e
103
+ !66 U+0066 f
104
+ !67 U+0067 g
105
+ !68 U+0068 h
106
+ !69 U+0069 i
107
+ !6A U+006A j
108
+ !6B U+006B k
109
+ !6C U+006C l
110
+ !6D U+006D m
111
+ !6E U+006E n
112
+ !6F U+006F o
113
+ !70 U+0070 p
114
+ !71 U+0071 q
115
+ !72 U+0072 r
116
+ !73 U+0073 s
117
+ !74 U+0074 t
118
+ !75 U+0075 u
119
+ !76 U+0076 v
120
+ !77 U+0077 w
121
+ !78 U+0078 x
122
+ !79 U+0079 y
123
+ !7A U+007A z
124
+ !7B U+007B braceleft
125
+ !7C U+007C bar
126
+ !7D U+007D braceright
127
+ !7E U+007E asciitilde
128
+ !7F U+007F .notdef
129
+ !80 U+2500 SF100000
130
+ !81 U+2502 SF110000
131
+ !82 U+250C SF010000
132
+ !83 U+2510 SF030000
133
+ !84 U+2514 SF020000
134
+ !85 U+2518 SF040000
135
+ !86 U+251C SF080000
136
+ !87 U+2524 SF090000
137
+ !88 U+252C SF060000
138
+ !89 U+2534 SF070000
139
+ !8A U+253C SF050000
140
+ !8B U+2580 upblock
141
+ !8C U+2584 dnblock
142
+ !8D U+2588 block
143
+ !8E U+258C lfblock
144
+ !8F U+2590 rtblock
145
+ !90 U+2591 ltshade
146
+ !91 U+2592 shade
147
+ !92 U+2593 dkshade
148
+ !93 U+2320 integraltp
149
+ !94 U+25A0 filledbox
150
+ !95 U+2022 bullet
151
+ !96 U+221A radical
152
+ !97 U+2248 approxequal
153
+ !98 U+2264 lessequal
154
+ !99 U+2265 greaterequal
155
+ !9A U+00A0 space
156
+ !9B U+2321 integralbt
157
+ !9C U+00B0 degree
158
+ !9D U+00B2 twosuperior
159
+ !9E U+00B7 periodcentered
160
+ !9F U+00F7 divide
161
+ !A0 U+2550 SF430000
162
+ !A1 U+2551 SF240000
163
+ !A2 U+2552 SF510000
164
+ !A3 U+0451 afii10071
165
+ !A4 U+0454 afii10101
166
+ !A5 U+2554 SF390000
167
+ !A6 U+0456 afii10103
168
+ !A7 U+0457 afii10104
169
+ !A8 U+2557 SF250000
170
+ !A9 U+2558 SF500000
171
+ !AA U+2559 SF490000
172
+ !AB U+255A SF380000
173
+ !AC U+255B SF280000
174
+ !AD U+0491 afii10098
175
+ !AE U+255D SF260000
176
+ !AF U+255E SF360000
177
+ !B0 U+255F SF370000
178
+ !B1 U+2560 SF420000
179
+ !B2 U+2561 SF190000
180
+ !B3 U+0401 afii10023
181
+ !B4 U+0404 afii10053
182
+ !B5 U+2563 SF230000
183
+ !B6 U+0406 afii10055
184
+ !B7 U+0407 afii10056
185
+ !B8 U+2566 SF410000
186
+ !B9 U+2567 SF450000
187
+ !BA U+2568 SF460000
188
+ !BB U+2569 SF400000
189
+ !BC U+256A SF540000
190
+ !BD U+0490 afii10050
191
+ !BE U+256C SF440000
192
+ !BF U+00A9 copyright
193
+ !C0 U+044E afii10096
194
+ !C1 U+0430 afii10065
195
+ !C2 U+0431 afii10066
196
+ !C3 U+0446 afii10088
197
+ !C4 U+0434 afii10069
198
+ !C5 U+0435 afii10070
199
+ !C6 U+0444 afii10086
200
+ !C7 U+0433 afii10068
201
+ !C8 U+0445 afii10087
202
+ !C9 U+0438 afii10074
203
+ !CA U+0439 afii10075
204
+ !CB U+043A afii10076
205
+ !CC U+043B afii10077
206
+ !CD U+043C afii10078
207
+ !CE U+043D afii10079
208
+ !CF U+043E afii10080
209
+ !D0 U+043F afii10081
210
+ !D1 U+044F afii10097
211
+ !D2 U+0440 afii10082
212
+ !D3 U+0441 afii10083
213
+ !D4 U+0442 afii10084
214
+ !D5 U+0443 afii10085
215
+ !D6 U+0436 afii10072
216
+ !D7 U+0432 afii10067
217
+ !D8 U+044C afii10094
218
+ !D9 U+044B afii10093
219
+ !DA U+0437 afii10073
220
+ !DB U+0448 afii10090
221
+ !DC U+044D afii10095
222
+ !DD U+0449 afii10091
223
+ !DE U+0447 afii10089
224
+ !DF U+044A afii10092
225
+ !E0 U+042E afii10048
226
+ !E1 U+0410 afii10017
227
+ !E2 U+0411 afii10018
228
+ !E3 U+0426 afii10040
229
+ !E4 U+0414 afii10021
230
+ !E5 U+0415 afii10022
231
+ !E6 U+0424 afii10038
232
+ !E7 U+0413 afii10020
233
+ !E8 U+0425 afii10039
234
+ !E9 U+0418 afii10026
235
+ !EA U+0419 afii10027
236
+ !EB U+041A afii10028
237
+ !EC U+041B afii10029
238
+ !ED U+041C afii10030
239
+ !EE U+041D afii10031
240
+ !EF U+041E afii10032
241
+ !F0 U+041F afii10033
242
+ !F1 U+042F afii10049
243
+ !F2 U+0420 afii10034
244
+ !F3 U+0421 afii10035
245
+ !F4 U+0422 afii10036
246
+ !F5 U+0423 afii10037
247
+ !F6 U+0416 afii10024
248
+ !F7 U+0412 afii10019
249
+ !F8 U+042C afii10046
250
+ !F9 U+042B afii10045
251
+ !FA U+0417 afii10025
252
+ !FB U+0428 afii10042
253
+ !FC U+042D afii10047
254
+ !FD U+0429 afii10043
255
+ !FE U+0427 afii10041
256
+ !FF U+042A afii10044
Functions/EWD_UFAQ_Deactivation_Survey.php CHANGED
@@ -1,69 +1,69 @@
1
- <?php
2
- add_action('current_screen', 'EWD_UFAQ_Deactivation_Survey');
3
- function EWD_UFAQ_Deactivation_Survey() {
4
- if (in_array(get_current_screen()->id, array( 'plugins', 'plugins-network' ), true)) {
5
- add_action('admin_enqueue_scripts', 'EWD_UFAQ_Enqueue_Deactivation_Scripts');
6
- add_action( 'admin_footer', 'EWD_UFAQ_Deactivation_Survey_HTML');
7
- }
8
- }
9
-
10
- function EWD_UFAQ_Enqueue_Deactivation_Scripts() {
11
- wp_enqueue_style('ewd-ufaq-deactivation-css', EWD_UFAQ_CD_PLUGIN_URL . 'css/ewd-ufaq-plugin-deactivation.css');
12
- wp_enqueue_script('ewd-ufaq-deactivation-js', EWD_UFAQ_CD_PLUGIN_URL . 'js/ewd-ufaq-plugin-deactivation.js', array('jquery'));
13
-
14
- wp_localize_script('ewd-ufaq-deactivation-js', 'ewd_ufaq_deactivation_data', array('site_url' => site_url()));
15
- }
16
-
17
- function EWD_UFAQ_Deactivation_Survey_HTML() {
18
- $Install_Time = get_option("EWD_UFAQ_Install_Time");
19
-
20
- $options = array(
21
- 1 => array(
22
- 'title' => esc_html__( 'I no longer need the plugin', 'ultimate-faqs' ),
23
- ),
24
- 2 => array(
25
- 'title' => esc_html__( 'I\'m switching to a different plugin', 'ultimate-faqs' ),
26
- 'details' => esc_html__( 'Please share which plugin', 'ultimate-faqs' ),
27
- ),
28
- 3 => array(
29
- 'title' => esc_html__( 'I couldn\'t get the plugin to work', 'ultimate-faqs' ),
30
- 'details' => esc_html__( 'Please share what wasn\'t working', 'ultimate-faqs' ),
31
- ),
32
- 4 => array(
33
- 'title' => esc_html__( 'It\'s a temporary deactivation', 'ultimate-faqs' ),
34
- ),
35
- 5 => array(
36
- 'title' => esc_html__( 'Other', 'ultimate-faqs' ),
37
- 'details' => esc_html__( 'Please share the reason', 'ultimate-faqs' ),
38
- ),
39
- );
40
- ?>
41
- <div class="ewd-ufaq-deactivate-survey-modal" id="ewd-ufaq-deactivate-survey-ultimate-faqs">
42
- <div class="ewd-ufaq-deactivate-survey-wrap">
43
- <form class="ewd-ufaq-deactivate-survey" method="post" data-installtime="<?php echo $Install_Time; ?>">
44
- <span class="ewd-ufaq-deactivate-survey-title"><span class="dashicons dashicons-testimonial"></span><?php echo ' ' . __( 'Quick Feedback', 'ultimate-faqs' ); ?></span>
45
- <span class="ewd-ufaq-deactivate-survey-desc"><?php echo __('If you have a moment, please share why you are deactivating Ultimate FAQs:', 'ultimate-faqs' ); ?></span>
46
- <div class="ewd-ufaq-deactivate-survey-options">
47
- <?php foreach ( $options as $id => $option ) : ?>
48
- <div class="ewd-ufaq-deactivate-survey-option">
49
- <label for="ewd-ufaq-deactivate-survey-option-ultimate-faqs-<?php echo $id; ?>" class="ewd-ufaq-deactivate-survey-option-label">
50
- <input id="ewd-ufaq-deactivate-survey-option-ultimate-faqs-<?php echo $id; ?>" class="ewd-ufaq-deactivate-survey-option-input" type="radio" name="code" value="<?php echo $id; ?>" />
51
- <span class="ewd-ufaq-deactivate-survey-option-reason"><?php echo $option['title']; ?></span>
52
- </label>
53
- <?php if ( ! empty( $option['details'] ) ) : ?>
54
- <input class="ewd-ufaq-deactivate-survey-option-details" type="text" placeholder="<?php echo $option['details']; ?>" />
55
- <?php endif; ?>
56
- </div>
57
- <?php endforeach; ?>
58
- </div>
59
- <div class="ewd-ufaq-deactivate-survey-footer">
60
- <button type="submit" class="ewd-ufaq-deactivate-survey-submit button button-primary button-large"><?php _e('Submit and Deactivate', 'ultimate-faqs' ); ?></button>
61
- <a href="#" class="ewd-ufaq-deactivate-survey-deactivate"><?php _e('Skip and Deactivate', 'ultimate-faqs' ); ?></a>
62
- </div>
63
- </form>
64
- </div>
65
- </div>
66
- <?php
67
- }
68
-
69
  ?>
1
+ <?php
2
+ add_action('current_screen', 'EWD_UFAQ_Deactivation_Survey');
3
+ function EWD_UFAQ_Deactivation_Survey() {
4
+ if (in_array(get_current_screen()->id, array( 'plugins', 'plugins-network' ), true)) {
5
+ add_action('admin_enqueue_scripts', 'EWD_UFAQ_Enqueue_Deactivation_Scripts');
6
+ add_action( 'admin_footer', 'EWD_UFAQ_Deactivation_Survey_HTML');
7
+ }
8
+ }
9
+
10
+ function EWD_UFAQ_Enqueue_Deactivation_Scripts() {
11
+ wp_enqueue_style('ewd-ufaq-deactivation-css', EWD_UFAQ_CD_PLUGIN_URL . 'css/ewd-ufaq-plugin-deactivation.css');
12
+ wp_enqueue_script('ewd-ufaq-deactivation-js', EWD_UFAQ_CD_PLUGIN_URL . 'js/ewd-ufaq-plugin-deactivation.js', array('jquery'));
13
+
14
+ wp_localize_script('ewd-ufaq-deactivation-js', 'ewd_ufaq_deactivation_data', array('site_url' => site_url()));
15
+ }
16
+
17
+ function EWD_UFAQ_Deactivation_Survey_HTML() {
18
+ $Install_Time = get_option("EWD_UFAQ_Install_Time");
19
+
20
+ $options = array(
21
+ 1 => array(
22
+ 'title' => esc_html__( 'I no longer need the plugin', 'ultimate-faqs' ),
23
+ ),
24
+ 2 => array(
25
+ 'title' => esc_html__( 'I\'m switching to a different plugin', 'ultimate-faqs' ),
26
+ 'details' => esc_html__( 'Please share which plugin', 'ultimate-faqs' ),
27
+ ),
28
+ 3 => array(
29
+ 'title' => esc_html__( 'I couldn\'t get the plugin to work', 'ultimate-faqs' ),
30
+ 'details' => esc_html__( 'Please share what wasn\'t working', 'ultimate-faqs' ),
31
+ ),
32
+ 4 => array(
33
+ 'title' => esc_html__( 'It\'s a temporary deactivation', 'ultimate-faqs' ),
34
+ ),
35
+ 5 => array(
36
+ 'title' => esc_html__( 'Other', 'ultimate-faqs' ),
37
+ 'details' => esc_html__( 'Please share the reason', 'ultimate-faqs' ),
38
+ ),
39
+ );
40
+ ?>
41
+ <div class="ewd-ufaq-deactivate-survey-modal" id="ewd-ufaq-deactivate-survey-ultimate-faqs">
42
+ <div class="ewd-ufaq-deactivate-survey-wrap">
43
+ <form class="ewd-ufaq-deactivate-survey" method="post" data-installtime="<?php echo $Install_Time; ?>">
44
+ <span class="ewd-ufaq-deactivate-survey-title"><span class="dashicons dashicons-testimonial"></span><?php echo ' ' . __( 'Quick Feedback', 'ultimate-faqs' ); ?></span>
45
+ <span class="ewd-ufaq-deactivate-survey-desc"><?php echo __('If you have a moment, please share why you are deactivating Ultimate FAQs:', 'ultimate-faqs' ); ?></span>
46
+ <div class="ewd-ufaq-deactivate-survey-options">
47
+ <?php foreach ( $options as $id => $option ) : ?>
48
+ <div class="ewd-ufaq-deactivate-survey-option">
49
+ <label for="ewd-ufaq-deactivate-survey-option-ultimate-faqs-<?php echo $id; ?>" class="ewd-ufaq-deactivate-survey-option-label">
50
+ <input id="ewd-ufaq-deactivate-survey-option-ultimate-faqs-<?php echo $id; ?>" class="ewd-ufaq-deactivate-survey-option-input" type="radio" name="code" value="<?php echo $id; ?>" />
51
+ <span class="ewd-ufaq-deactivate-survey-option-reason"><?php echo $option['title']; ?></span>
52
+ </label>
53
+ <?php if ( ! empty( $option['details'] ) ) : ?>
54
+ <input class="ewd-ufaq-deactivate-survey-option-details" type="text" placeholder="<?php echo $option['details']; ?>" />
55
+ <?php endif; ?>
56
+ </div>
57
+ <?php endforeach; ?>
58
+ </div>
59
+ <div class="ewd-ufaq-deactivate-survey-footer">
60
+ <button type="submit" class="ewd-ufaq-deactivate-survey-submit button button-primary button-large"><?php _e('Submit and Deactivate', 'ultimate-faqs' ); ?></button>
61
+ <a href="#" class="ewd-ufaq-deactivate-survey-deactivate"><?php _e('Skip and Deactivate', 'ultimate-faqs' ); ?></a>
62
+ </div>
63
+ </form>
64
+ </div>
65
+ </div>
66
+ <?php
67
+ }
68
+
69
  ?>
Functions/EWD_UFAQ_Initial_Data.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /* Adds a small amount of sample data to the UPCP database for demonstration purposes */
3
+ function EWD_UFAQ_Output_Welcome_Screen() {
4
+ include EWD_UFAQ_CD_PLUGIN_PATH . 'html/WelcomeScreen.php';
5
+ }
6
+
7
+ function EWD_UFAQ_Initial_Install_Screen() {
8
+ add_dashboard_page(
9
+ esc_html__( 'Ultimate FAQs - Welcome!', 'ultimate-faqs' ),
10
+ esc_html__( 'Ultimate FAQs - Welcome!', 'ultimate-faqs' ),
11
+ 'manage_options',
12
+ 'ewd-ufaq-getting-started',
13
+ 'EWD_UFAQ_Output_Welcome_Screen'
14
+ );
15
+ }
16
+
17
+ function EWD_UFAQ_Remove_Install_Screen_Admin_Menu() {
18
+ remove_submenu_page( 'index.php', 'ewd-ufaq-getting-started' );
19
+ }
20
+
21
+ function EWD_UFAQ_Welcome_Screen_Redirect() {
22
+ if ( ! get_transient( 'ewd-ufaq-getting-started' ) ) {
23
+ return;
24
+ }
25
+
26
+ delete_transient( 'ewd-ufaq-getting-started' );
27
+
28
+ if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
29
+ return;
30
+ }
31
+
32
+ $FAQs = get_posts(array('post_type' => 'ufaq'));
33
+ if (!empty($FAQs)) {
34
+ set_transient('ewd-ufaq-admin-install-notice', true, 5);
35
+ return;
36
+ }
37
+
38
+ wp_safe_redirect( admin_url( 'index.php?page=ewd-ufaq-getting-started' ) );
39
+ exit;
40
+ }
41
+
42
+ add_action( 'admin_menu', 'EWD_UFAQ_Initial_Install_Screen' );
43
+ add_action( 'admin_head', 'EWD_UFAQ_Remove_Install_Screen_Admin_Menu' );
44
+ add_action( 'admin_init', 'EWD_UFAQ_Welcome_Screen_Redirect', 9999 );
45
+ ?>
Functions/Process_Ajax.php CHANGED
@@ -184,4 +184,57 @@ function EWD_UFAQ_Dismiss_Pointers() {
184
 
185
  die();
186
  }
187
- add_action('wp_ajax_ufaq-dismiss-wp-pointers','EWD_UFAQ_Dismiss_Pointers');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
 
185
  die();
186
  }
187
+ add_action('wp_ajax_ufaq-dismiss-wp-pointers','EWD_UFAQ_Dismiss_Pointers');
188
+
189
+ /* WELCOME SCREEN AJAX INSTALL FUNCTIONS */
190
+ function EWD_UFAQ_AJAX_Add_Category() {
191
+ global $wpdb;
192
+
193
+ $Category_Name = (isset($_POST['category_name']) ? stripslashes_deep($_POST['category_name']) : '');
194
+ $Category_Description = (isset($_POST['category_description']) ? stripslashes_deep($_POST['category_description']) : '');
195
+
196
+ $Category_Term_IDs = wp_insert_term( $Category_Name, 'ufaq-category', array('description' => $Category_Description) );
197
+
198
+ echo json_encode(array('category_name' => $Category_Name, 'category_id' => $Category_Term_IDs['term_id']));
199
+
200
+ exit();
201
+ }
202
+ add_action('wp_ajax_ewd_ufaq_welcome_add_category', 'EWD_UFAQ_AJAX_Add_Category');
203
+
204
+ function EWD_UFAQ_AJAX_Add_FAQ_Page() {
205
+ wp_insert_post(array(
206
+ 'post_title' => (isset($_POST['faq_page_title']) ? stripslashes_deep($_POST['faq_page_title']) : ''),
207
+ 'post_content' => '<!-- wp:paragraph --><p> [ultimate-faqs] </p><!-- /wp:paragraph -->',
208
+ 'post_status' => 'publish',
209
+ 'post_type' => 'page'
210
+ ));
211
+
212
+ exit();
213
+ }
214
+ add_action('wp_ajax_ewd_ufaq_welcome_add_faq_page', 'EWD_UFAQ_AJAX_Add_FAQ_Page');
215
+
216
+ function EWD_UFAQ_AJAX_Set_Options() {
217
+ update_option("EWD_UFAQ_FAQ_Accordion", $_POST['faq_accordion']);
218
+ update_option("EWD_UFAQ_Toggle", $_POST['faq_toggle']);
219
+ update_option("EWD_UFAQ_Group_By_Category", $_POST['group_by_category']);
220
+ update_option("EWD_UFAQ_Order_By", $_POST['order_by_setting']);
221
+
222
+ exit();
223
+ }
224
+ add_action('wp_ajax_ewd_ufaq_welcome_set_options', 'EWD_UFAQ_AJAX_Set_Options');
225
+
226
+ function EWD_UFAQ_AJAX_Add_FAQ() {
227
+ $FAQ_Post_ID = wp_insert_post(array(
228
+ 'post_title' => (isset($_POST['faq_question']) ? stripslashes_deep($_POST['faq_question']) : ''),
229
+ 'post_content' => (isset($_POST['faq_answer']) ? stripslashes_deep($_POST['faq_answer']) : ''),
230
+ 'post_status' => 'publish',
231
+ 'post_type' => 'page'
232
+ ));
233
+
234
+ if (isset($_POST['faq_category']) and $_POST['faq_category']) {
235
+ wp_set_post_terms($FAQ_Post_ID, $_POST['faq_category'], 'ufaq-category');
236
+ }
237
+
238
+ exit();
239
+ }
240
+ add_action('wp_ajax_ewd_ufaq_welcome_add_faq', 'EWD_UFAQ_AJAX_Add_FAQ');
Main.php CHANGED
@@ -1,405 +1,405 @@
1
- <?php
2
- /*
3
- Plugin Name: Ultimate FAQ
4
- Plugin URI: http://www.EtoileWebDesign.com/wordpress-plugins/
5
- Description: FAQ plugin that lets you easily create, order and publicize FAQs using shortcodes, with many unique styles, WooCommerce FAQs and AJAX FAQ search
6
- Author: Etoile Web Design
7
- Author URI: http://www.EtoileWebDesign.com/wordpress-plugins/
8
- Terms and Conditions: http://www.etoilewebdesign.com/plugin-terms-and-conditions/
9
- Text Domain: ultimate-faqs
10
- Version: 1.8.15
11
- */
12
-
13
- global $ewd_ufaq_message;
14
- global $UFAQ_Full_Version;
15
- global $EWD_UFAQ_Version;
16
-
17
- $EWD_UFAQ_Version = '1.8.0d';
18
-
19
- define( 'EWD_UFAQ_CD_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
20
- define( 'EWD_UFAQ_CD_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
21
-
22
- //define('WP_DEBUG', true);
23
-
24
- register_activation_hook(__FILE__,'Set_EWD_UFAQ_Options');
25
- register_activation_hook(__FILE__,'Run_UFAQ_Tutorial');
26
- register_activation_hook(__FILE__,'EWD_UFAQ_Show_Dashboard_Link');
27
- add_filter('upgrader_post_install', 'Set_EWD_UFAQ_Options');
28
-
29
- /* Hooks neccessary admin tasks */
30
- if ( is_admin() ){
31
- add_action('widgets_init', 'Update_EWD_UFAQ_Content');
32
- add_action('admin_notices', 'EWD_UFAQ_Error_Notices');
33
- add_action('admin_enqueue_scripts', 'Add_EWD_UFAQ_Scripts', 10, 1);
34
- add_action('admin_head', 'EWD_UFAQ_Admin_Options');
35
- }
36
-
37
- function EWD_UFAQ_Enable_Sub_Menu() {
38
- global $submenu;
39
-
40
- $Admin_Approval = get_option("EWD_UFAQ_Admin_Approval");
41
- $Access_Role = get_option("UPCP_Access_Role");
42
-
43
- if ($Access_Role == "") {$Access_Role = "edit_posts";}
44
-
45
- remove_menu_page('edit.php?post_type=ufaq');
46
-
47
- add_menu_page( 'Ultimate FAQs', 'FAQs', $Access_Role, 'EWD-UFAQ-Options', 'EWD_UFAQ_Output_Pages', 'dashicons-format-chat', '49.1' );
48
- add_submenu_page('EWD-UFAQ-Options', 'FAQ Options', 'FAQ Options', $Access_Role, 'EWD-UFAQ-Options&DisplayPage=Options', 'EWD_UFAQ_Output_Pages');
49
- if ($Admin_Approval == "Yes") {
50
- $submenu['EWD-UFAQ-Options'][6] = $submenu['EWD-UFAQ-Options'][1];
51
- $submenu['EWD-UFAQ-Options'][1] = array( 'Approved FAQs', $Access_Role, "edit.php?post_type=ufaq&post_status=publish", "Approved FAQs" );
52
- $submenu['EWD-UFAQ-Options'][2] = array( 'Awaiting Approval', $Access_Role, "edit.php?post_type=ufaq&post_status=draft", "Awaiting Approval" );
53
- $submenu['EWD-UFAQ-Options'][3] = array( 'Add New', $Access_Role, "post-new.php?post_type=ufaq", "Add New" );
54
- $submenu['EWD-UFAQ-Options'][4] = array( 'FAQ Categories', $Access_Role, "edit-tags.php?taxonomy=ufaq-category&post_type=ufaq", "FAQ Categories" );
55
- $submenu['EWD-UFAQ-Options'][5] = array( 'FAQ Tags', $Access_Role, "edit-tags.php?taxonomy=ufaq-tag&post_type=ufaq", "FAQ Tags" );
56
- }
57
- else {
58
- $submenu['EWD-UFAQ-Options'][5] = $submenu['EWD-UFAQ-Options'][1];
59
- $submenu['EWD-UFAQ-Options'][1] = array( 'FAQs', $Access_Role, "edit.php?post_type=ufaq", "FAQs" );
60
- $submenu['EWD-UFAQ-Options'][2] = array( 'Add New', $Access_Role, "post-new.php?post_type=ufaq", "Add New" );
61
- $submenu['EWD-UFAQ-Options'][3] = array( 'FAQ Categories', $Access_Role, "edit-tags.php?taxonomy=ufaq-category&post_type=ufaq", "FAQ Categories" );
62
- $submenu['EWD-UFAQ-Options'][4] = array( 'FAQ Tags', $Access_Role, "edit-tags.php?taxonomy=ufaq-tag&post_type=ufaq", "FAQ Tags" );
63
- }
64
- add_submenu_page('EWD-UFAQ-Options', 'FAQ Export', 'FAQ Export', $Access_Role, 'EWD-UFAQ-Options&DisplayPage=Export', 'EWD_UFAQ_Output_Pages');
65
- add_submenu_page('EWD-UFAQ-Options', 'FAQ Import', 'FAQ Import', $Access_Role, 'EWD-UFAQ-Options&DisplayPage=ImportPosts', 'EWD_UFAQ_Output_Pages');
66
-
67
- $submenu['EWD-UFAQ-Options'][0][0] = "Dashboard";
68
- ksort($submenu['EWD-UFAQ-Options']);
69
- }
70
- add_action('admin_menu' , 'EWD_UFAQ_Enable_Sub_Menu', 1);
71
-
72
- function EWD_UFAQ_Add_Header_Bar($Called = "No") {
73
- global $pagenow, $post;
74
-
75
- if ($Called != "Yes" and (!isset($_GET['post_type']) or $_GET['post_type'] != "ufaq") and (!is_object($post) or $post->post_type != 'ufaq')) {return;}
76
-
77
- $Admin_Approval = get_option("EWD_UFAQ_Admin_Approval"); ?>
78
-
79
- <div class="EWD_UFAQ_Menu">
80
- <h2 class="nav-tab-wrapper">
81
- <a id="ewd-ufaq-dash-mobile-menu-open" href="#" class="MenuTab nav-tab"><?php _e("MENU", 'ultimate-faqs'); ?><span id="ewd-ufaq-dash-mobile-menu-down-caret">&nbsp;&nbsp;&#9660;</span><span id="ewd-ufaq-dash-mobile-menu-up-caret">&nbsp;&nbsp;&#9650;</span></a>
82
- <a id="Dashboard_Menu" href='admin.php?page=EWD-UFAQ-Options' class="MenuTab nav-tab <?php if (!isset($_GET['post_type']) and (isset($_GET['DisplayPage']) and ($_GET['DisplayPage'] == '' or $_GET['DisplayPage'] == 'Dashboard'))) {echo 'nav-tab-active';}?>"><?php _e("Dashboard", 'ultimate-faqs'); ?></a>
83
- <?php if ($Admin_Approval == "Yes") { ?>
84
- <a id="Approved_FAQs_Menu" href='edit.php?post_type=ufaq&post_status=publish' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit.php' and (!isset($_GET['post_status']) or $_GET['post_status'] == 'publish')) {echo 'nav-tab-active';}?>"><?php _e("Approved FAQs", 'ultimate-faqs'); ?></a>
85
- <a id="FAQs_Awaiting_Approval_Menu" href='edit.php?post_type=ufaq&post_status=draft' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit.php' and $_GET['post_status'] == 'draft') {echo 'nav-tab-active';}?>"><?php _e("Awaiting Approval", 'ultimate-faqs'); ?></a>
86
- <?php } else { ?>
87
- <a id="FAQs_Menu" href='edit.php?post_type=ufaq' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit.php') {echo 'nav-tab-active';}?>"><?php _e("FAQs", 'ultimate-faqs'); ?></a>
88
- <?php } ?>
89
- <a id="Add_New_Menu" href='post-new.php?post_type=ufaq' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'post-new.php') {echo 'nav-tab-active';}?>"><?php _e("Add New", 'ultimate-faqs'); ?></a>
90
- <a id="FAQ_Categories_Menu" href='edit-tags.php?taxonomy=ufaq-category&post_type=ufaq' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit-tags.php' and $_GET['taxonomy'] == "ufaq-category") {echo 'nav-tab-active';}?>"><?php _e("Categories", 'ultimate-faqs'); ?></a>
91
- <a id="FAQ_Categories_Menu" href='edit-tags.php?taxonomy=ufaq-tag&post_type=ufaq' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit-tags.php' and $_GET['taxonomy'] == "ufaq-tag") {echo 'nav-tab-active';}?>"><?php _e("Tags", 'ultimate-faqs'); ?></a>
92
- <a id="Options_Menu" href='admin.php?page=EWD-UFAQ-Options&DisplayPage=Options' class="MenuTab nav-tab <?php if (!isset($_GET['post_type']) and isset($_GET['DisplayPage']) and $_GET['DisplayPage'] == 'Options') {echo 'nav-tab-active';}?>"><?php _e("Options", 'ultimate-faqs'); ?></a>
93
- <a id="WooCommerce_Import_Menu" href='admin.php?page=EWD-UFAQ-Options&DisplayPage=Export' class="MenuTab nav-tab <?php if (!isset($_GET['post_type']) and isset($_GET['DisplayPage']) and $_GET['DisplayPage'] == 'Export') {echo 'nav-tab-active';}?>"><?php _e("Export", 'ultimate-faqs'); ?></a>
94
- <a id="WooCommerce_Import_Menu" href='admin.php?page=EWD-UFAQ-Options&DisplayPage=ImportPosts' class="MenuTab nav-tab <?php if (!isset($_GET['post_type']) and isset($_GET['DisplayPage']) and $_GET['DisplayPage'] == 'ImportPosts') {echo 'nav-tab-active';}?>"><?php _e("Import", 'ultimate-faqs'); ?></a>
95
- </h2>
96
- </div>
97
- <?php }
98
- add_action('admin_notices', 'EWD_UFAQ_Add_Header_Bar');
99
-
100
- /* Add localization support */
101
- function EWD_UFAQ_localization_setup() {
102
- load_plugin_textdomain('ultimate-faqs', false, dirname(plugin_basename(__FILE__)) . '/lang/');
103
- }
104
- add_action('after_setup_theme', 'EWD_UFAQ_localization_setup');
105
-
106
- // Add settings link on plugin page
107
- function EWD_UFAQ_plugin_settings_link($links) {
108
- $settings_link = '<a href="admin.php?page=EWD-UFAQ-Options">Settings</a>';
109
- array_unshift($links, $settings_link);
110
- return $links;
111
- }
112
- $plugin = plugin_basename(__FILE__);
113
- add_filter("plugin_action_links_$plugin", 'EWD_UFAQ_plugin_settings_link' );
114
-
115
- function Add_EWD_UFAQ_Scripts($hook) {
116
- global $post, $EWD_UFAQ_Version;
117
-
118
- wp_enqueue_script('ewd-ufaq-review-ask', plugins_url("js/ewd-ufaq-dashboard-review-ask.js", __FILE__), array('jquery'), $EWD_UFAQ_Version);
119
-
120
- if ((isset($_GET['post_type']) && $_GET['post_type'] == 'ufaq') or
121
- (isset($_GET['page']) && $_GET['page'] == 'EWD-UFAQ-Options')) {
122
- $url_one = plugins_url("ultimate-faqs/js/sorttable.js");
123
- $url_two = plugins_url("ultimate-faqs/js/Admin.js");
124
- $url_three = plugins_url("ultimate-faqs/js/spectrum.js");
125
-
126
- wp_enqueue_script('jquery-ui-sortable');
127
- wp_enqueue_script('sortable', $url_one, array('jquery'));
128
- wp_enqueue_script('UFAQ Admin', $url_two, array('jquery'), $EWD_UFAQ_Version);
129
- wp_enqueue_script('spectrum', $url_three, array('jquery'));
130
- }
131
-
132
- if ($hook == 'edit.php' or $hook == 'post-new.php' or $hook == 'post.php') {
133
- if (isset($post->post_type) and $post->post_type == 'product') {
134
- wp_enqueue_script('ewd-ufaq-wc-admin', plugins_url("js/ewd-ufaq-wc-admin.js", __FILE__), array('jquery'), $EWD_UFAQ_Version);
135
- }
136
- }
137
-
138
- if (isset($_GET['page']) && $_GET['page'] == 'ewd-ufaq-getting-started') {
139
- wp_enqueue_script('ewd-ufaq-getting-started', EWD_UFAQ_CD_PLUGIN_URL . 'js/ewd-ufaq-getting-started.js', array('jquery'), $EWD_UFAQ_Version);
140
- wp_enqueue_script('spectrum', EWD_UFAQ_CD_PLUGIN_URL . 'js/spectrum.js', array('jquery'), $EWD_UFAQ_Version);
141
- wp_enqueue_script('UFAQ Admin', EWD_UFAQ_CD_PLUGIN_URL . 'js/Admin.js', array('jquery', 'jquery-ui-sortable', 'spectrum'), $EWD_UFAQ_Version);
142
- }
143
- }
144
-
145
- function EWD_UFAQ_Admin_Options() {
146
- global $EWD_UFAQ_Version;
147
-
148
- wp_enqueue_style( 'ewd-ufaq-admin', plugins_url("ultimate-faqs/css/Admin.css"), array(), $EWD_UFAQ_Version);
149
- wp_enqueue_style( 'ewd-ufaq-spectrum', plugins_url("ultimate-faqs/css/spectrum.css"));
150
- wp_enqueue_style( 'ewd-ufaq-welcome-screen', EWD_UFAQ_CD_PLUGIN_URL . 'css/ewd-ufaq-welcome-screen.css', array(), $EWD_UFAQ_Version);
151
- }
152
-
153
- add_action( 'wp_enqueue_scripts', 'Add_EWD_UFAQ_FrontEnd_Scripts' );
154
- function Add_EWD_UFAQ_FrontEnd_Scripts() {
155
- global $EWD_UFAQ_Version;
156
-
157
- wp_register_script('ewd-ufaq-js', plugins_url( '/js/ewd-ufaq-js.js' , __FILE__ ), array( 'jquery' ), $EWD_UFAQ_Version);
158
-
159
- $Highlight_Search_Term = get_option("EWD_UFAQ_Highlight_Search_Term");
160
-
161
- $Retrieving_Results = get_option("EWD_UFAQ_Retrieving_Results");
162
- if ($Retrieving_Results == "") {$Retrieving_Results = __("Retrieving Results", 'ultimate-faqs') . "...";}
163
-
164
- $ewd_ufaq_php_data = array(
165
- 'retrieving_results' => $Retrieving_Results,
166
- 'highlight_search_term' => $Highlight_Search_Term
167
- );
168
-
169
- wp_localize_script('ewd-ufaq-js', 'ewd_ufaq_php_data', $ewd_ufaq_php_data );
170
- }
171
-
172
-
173
- add_action( 'wp_enqueue_scripts', 'EWD_UFAQ_Add_Stylesheet' );
174
- function EWD_UFAQ_Add_Stylesheet() {
175
- global $EWD_UFAQ_Version;
176
-
177
- wp_register_style( 'ewd-ufaq-style', plugins_url('css/ewd-ufaq-styles.css', __FILE__) );
178
- wp_enqueue_style( 'ewd-ufaq-style', $EWD_UFAQ_Version );
179
-
180
- wp_register_style( 'ewd-ufaq-rrssb', plugins_url('css/rrssb-min.css', __FILE__) );
181
- wp_enqueue_style( 'ewd-ufaq-rrssb' );
182
- }
183
-
184
- //add_action('activated_plugin','save_ufaq_error');
185
- function save_ufaq_error(){
186
- update_option('plugin_error', ob_get_contents());
187
- file_put_contents("Error.txt", ob_get_contents());
188
- }
189
-
190
- function Set_EWD_UFAQ_Options() {
191
- if (get_option("EWD_UFAQ_Toggle") == "") {update_option("EWD_UFAQ_Toggle", "Yes");}
192
- if (get_option("EWD_UFAQ_Category_Toggle") == "") {update_option("EWD_UFAQ_Category_Toggle", "No");}
193
- if (get_option("EWD_UFAQ_Category_Accordion") == "") {update_option("EWD_UFAQ_Category_Accordion", "No");}
194
- if (get_option("EWD_UFAQ_Expand_Collapse_All") == "") {update_option("EWD_UFAQ_Expand_Collapse_All", "No");}
195
- if (get_option("EWD_UFAQ_FAQ_Accordion") == "") {update_option("EWD_UFAQ_FAQ_Accordion", "No");}
196
- if (get_option("EWD_UFAQ_Hide_Categories") == "") {update_option("EWD_UFAQ_Hide_Categories", "No");}
197
- if (get_option("EWD_UFAQ_Hide_Tags") == "") {update_option("EWD_UFAQ_Hide_Tags", "No");}
198
- if (get_option("EWD_UFAQ_Scroll_To_Top") == "") {update_option("EWD_UFAQ_Scroll_To_Top", "Yes");}
199
- if (get_option("EWD_UFAQ_Display_All_Answers") == "") {update_option("EWD_UFAQ_Display_All_Answers", "No");}
200
- if (get_option("EWD_UFAQ_Display_Author") == "") {update_option("EWD_UFAQ_Display_Author", "Yes");}
201
- if (get_option("EWD_UFAQ_Display_Date") == "") {update_option("EWD_UFAQ_Display_Date", "Yes");}
202
- if (get_option("EWD_UFAQ_Display_Back_To_Top") == "") {update_option("EWD_UFAQ_Display_Back_To_Top", "No");}
203
- if (get_option("EWD_UFAQ_Include_Permalink") == "") {update_option("EWD_UFAQ_Include_Permalink", "Yes");}
204
- if (get_option("EWD_UFAQ_Permalink_Type") == "") {update_option("EWD_UFAQ_Permalink_Type", "SamePage");}
205
- if (get_option("EWD_UFAQ_Show_TinyMCE") == "") {update_option("EWD_UFAQ_Show_TinyMCE", "Yes");}
206
- if (get_option("EWD_UFAQ_Comments_On") == "") {update_option("EWD_UFAQ_Comments_On", "Yes");}
207
- if (get_option("EWD_UFAQ_Access_Role") == "") {update_option("EWD_UFAQ_Access_Role", "edit_posts");}
208
-
209
- if (get_option("EWD_UFAQ_Display_Style") == "") {update_option("EWD_UFAQ_Display_Style", "Default");}
210
- if (get_option("EWD_UFAQ_FAQ_Number_Of_Columns") == "") {update_option("EWD_UFAQ_FAQ_Number_Of_Columns", "One");}
211
- if (get_option("EWD_UFAQ_Color_Block_Shape") == "") {update_option("EWD_UFAQ_Color_Block_Shape", "Square");}
212
- if (get_option("EWD_UFAQ_Page_Type") == "") {update_option("EWD_UFAQ_Page_Type", "Load_More");}
213
- if (get_option("EWD_UFAQ_FAQ_Ratings") == "") {update_option("EWD_UFAQ_FAQ_Ratings", "No");}
214
- if (get_option("EWD_UFAQ_WooCommerce_FAQs") == "") {update_option("EWD_UFAQ_WooCommerce_FAQs", "No");}
215
- if (get_option("EWD_UFAQ_Use_Product") == "") {update_option("EWD_UFAQ_Use_Product", "Yes");}
216
- if (get_option("EWD_UFAQ_Reveal_Effect") == "") {update_option("EWD_UFAQ_Reveal_Effect", "none");}
217
- if (get_option("EWD_UFAQ_Pretty_Permalinks") == "") {update_option("EWD_UFAQ_Pretty_Permalinks", "No");}
218
- if (get_option("EWD_UFAQ_Allow_Proposed_Answer") == "") {update_option("EWD_UFAQ_Allow_Proposed_Answer", "No");}
219
- if (get_option("EWD_UFAQ_Submit_Custom_Fields") == "") {update_option("EWD_UFAQ_Submit_Custom_Fields", "No");}
220
- if (get_option("EWD_UFAQ_Submit_Question_Captcha") == "") {update_option("EWD_UFAQ_Submit_Question_Captcha", "No");}
221
- if (get_option("EWD_UFAQ_Admin_Question_Notification") == "") {update_option("EWD_UFAQ_Admin_Question_Notification", "No");}
222
- if (get_option("EWD_UFAQ_Submit_FAQ_Email") == "") {update_option("EWD_UFAQ_Submit_FAQ_Email", 0);}
223
- if (get_option("EWD_UFAQ_Auto_Complete_Titles") == "") {update_option("EWD_UFAQ_Auto_Complete_Titles", "Yes");}
224
- if (get_option("EWD_UFAQ_Highlight_Search_Term") == "") {update_option("EWD_UFAQ_Highlight_Search_Term", "No");}
225
- if (get_option("EWD_UFAQ_Slug_Base") == "") {update_option("EWD_UFAQ_Slug_Base", "ufaqs");}
226
-
227
- if (get_option("EWD_UFAQ_FAQ_Elements") == "") {
228
- $FAQ_Elements = array();
229
- $FAQ_Elements[0] = "Author_Date";
230
- $FAQ_Elements[1] = "Body";
231
- $FAQ_Elements[2] = "Custom_Fields";
232
- $FAQ_Elements[3] = "Categories";
233
- $FAQ_Elements[4] = "Tags";
234
- $FAQ_Elements[5] = "Ratings";
235
- $FAQ_Elements[6] = "Social_Media";
236
- $FAQ_Elements[7] = "Permalink";
237
- $FAQ_Elements[8] = "Comments";
238
- $FAQ_Elements[9] = "Back_To_Top";
239
-
240
- update_option("EWD_UFAQ_FAQ_Elements", $FAQ_Elements);
241
- }
242
-
243
- if (get_option("EWD_UFAQ_Group_By_Category") == "") {update_option("EWD_UFAQ_Group_By_Category", "No");}
244
- if (get_option("EWD_UFAQ_Group_By_Category_Count") == "") {update_option("EWD_UFAQ_Group_By_Category_Count", "No");}
245
- if (get_option("EWD_UFAQ_Group_By_Order_By") == "") {update_option("EWD_UFAQ_Group_By_Order_By", "name");}
246
- if (get_option("EWD_UFAQ_Group_By_Order") == "") {update_option("EWD_UFAQ_Group_By_Order", "ASC");}
247
- if (get_option("EWD_UFAQ_Order_By") == "") {update_option("EWD_UFAQ_Order_By", "date");}
248
- if (get_option("EWD_UFAQ_Order") == "") {update_option("EWD_UFAQ_Order", "DESC");}
249
-
250
- if (get_option("EWD_UFAQ_Hide_Blank_Fields") == "") {update_option("EWD_UFAQ_Hide_Blank_Fields", "Yes");}
251
-
252
- if (get_option("EWD_UFAQ_Styling_Category_Heading_Type") == "") {update_option("EWD_UFAQ_Styling_Category_Heading_Type", "h4");}
253
- if (get_option("EWD_UFAQ_Styling_FAQ_Heading_Type") == "") {update_option("EWD_UFAQ_Styling_FAQ_Heading_Type", "h4");}
254
- if (get_option("EWD_UFAQ_Toggle_Symbol") == "") {update_option("EWD_UFAQ_Toggle_Symbol", "A");}
255
-
256
- if (get_option("EWD_UFAQ_Full_Version") == "") {update_option("EWD_UFAQ_Full_Version", "No");}
257
- if (get_option("EWD_UFAQ_Install_Flag") == "") {update_option("EWD_UFAQ_Update_Flag", "Yes");}
258
- if (get_option("EWD_UFAQ_Install_Flag") == "") {update_option("EWD_UFAQ_Install_Flag", "Yes");}
259
-
260
- if (get_option("EWD_UFAQ_Install_Version") == "") {update_option("EWD_UFAQ_Install_Version", 1.6);}
261
- if (get_option("EWD_UFAQ_Install_Time") == "") {update_option("EWD_UFAQ_Install_Time", time());}
262
- }
263
-
264
- $UFAQ_Full_Version = get_option("EWD_UFAQ_Full_Version");
265
- if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and isset($_POST['EWD_UFAQ_Upgrade_To_Full']) and $UFAQ_Full_Version == "Yes") {add_action("admin_notices", "EWD_UFAQ_Upgrade_Notice");}
266
-
267
- $PrettyLinks = get_option("EWD_UFAQ_Pretty_Permalinks");
268
- if ($PrettyLinks == "Yes") {
269
- add_filter( 'query_vars', 'EWD_UFAQ_add_query_vars_filter' );
270
- add_filter('init', 'EWD_UFAQ_Rewrite_Rules');
271
- update_option("EWD_UFAQ_Update_RR_Rules", "No");
272
- }
273
-
274
- if (isset($_POST['EWD_UFAQ_Upgrade_To_Full'])) {
275
- add_action('admin_init', 'EWD_UFAQ_Upgrade_To_Full');
276
- }
277
-
278
- $Show_TinyMCE = get_option("EWD_UFAQ_Show_TinyMCE");
279
- if ($Show_TinyMCE == "Yes") {
280
- add_filter( 'mce_buttons', 'EWD_UFAQ_Register_TinyMCE_Buttons' );
281
- add_filter( 'mce_external_plugins', 'EWD_UFAQ_Register_TinyMCE_Javascript' );
282
- add_action('admin_head', 'EWD_UFAQ_Output_TinyMCE_Vars');
283
- }
284
-
285
- function EWD_UFAQ_Register_TinyMCE_Buttons( $buttons ) {
286
- array_push( $buttons, 'separator', 'UFAQ_Shortcodes' );
287
- return $buttons;
288
- }
289
-
290
- function EWD_UFAQ_Register_TinyMCE_Javascript( $plugin_array ) {
291
- $plugin_array['UFAQ_Shortcodes'] = plugins_url( '/js/tinymce-plugin.js',__FILE__ );
292
-
293
- return $plugin_array;
294
- }
295
-
296
- function EWD_UFAQ_Output_TinyMCE_Vars() {
297
- global $UFAQ_Full_Version;
298
- $UFAQ_Categories = get_terms('ufaq-category');
299
-
300
- echo "<script type='text/javascript'>";
301
- echo "var ufaq_premium = '" . $UFAQ_Full_Version . "';\n";
302
- echo "var ufaq_categories = " . json_encode($UFAQ_Categories) . ";\n";
303
- echo "</script>";
304
- }
305
-
306
- function Run_UFAQ_Tutorial() {
307
- update_option("UFAQ_Run_Tutorial", "Yes");
308
- }
309
-
310
- if (get_option("UFAQ_Run_Tutorial") == "Yes" and isset($_GET['page']) and $_GET['page'] == 'EWD-UFAQ-Options') {
311
- add_action( 'admin_enqueue_scripts', 'UFAQ_Set_Pointers', 10, 1);
312
- }
313
-
314
- function UFAQ_Set_Pointers($page) {
315
- $Pointers = UFAQ_Return_Pointers();
316
-
317
- //Arguments: pointers php file, version (dots will be replaced), prefix
318
- $manager = new UFAQPointersManager( $Pointers, '1.0', 'ufaq_admin_pointers' );
319
- $manager->parse();
320
- $pointers = $manager->filter( $page );
321
- if ( empty( $pointers ) ) { // nothing to do if no pointers pass the filter
322
- return;
323
- }
324
- wp_enqueue_style( 'wp-pointer' );
325
- $js_url = plugins_url( 'js/ewd-ufaq-pointers.js', __FILE__ );
326
- wp_enqueue_script( 'ufaq_admin_pointers', $js_url, array('wp-pointer'), NULL, TRUE );
327
- //data to pass to javascript
328
- $data = array(
329
- 'next_label' => __( 'Next' ),
330
- 'close_label' => __('Close'),
331
- 'pointers' => $pointers
332
- );
333
- wp_localize_script( 'ufaq_admin_pointers', 'MyAdminPointers', $data );
334
- //update_option("UFAQ_Run_Tutorial", "No");
335
- }
336
-
337
- function EWD_UFAQ_Show_Dashboard_Link() {
338
- set_transient('ewd-ufaq-getting-started', true, 30);
339
- }
340
-
341
- function UFAQ_Leave_Reply_Text($translation, $text, $domain) {
342
- global $post;
343
- if ($text == 'Leave a Reply' and (is_object($post) and $post->post_type == 'ufaq')) {
344
- $translations = &get_translations_for_domain( $domain);
345
- return $translations->translate( 'Comment on this FAQ' );
346
- }
347
- return $translation;
348
- }
349
- add_filter('gettext', 'UFAQ_Leave_Reply_Text', 10, 4);
350
-
351
-
352
- function UFAQ_Post_Edit_Styles( $hook_suffix ){
353
- $cpt = 'ufaq';
354
- if( in_array( $hook_suffix, array('post.php', 'post-new.php') ) ){
355
- $screen = get_current_screen();
356
- if( is_object( $screen ) && $cpt == $screen->post_type ){
357
- wp_enqueue_style( 'ewd-ufaq-post-edit-styles', plugins_url("ultimate-faqs/css/ewd-ufaq-post-edit-styles.css"), $EWD_UFAQ_Version );
358
- }
359
- }
360
- }
361
- add_action('admin_enqueue_scripts', 'UFAQ_Post_Edit_Styles');
362
-
363
- include "blocks/ewd-ufaq-blocks.php";
364
- include "Functions/Error_Notices.php";
365
- include "Functions/EWD_UFAQ_Add_Social_Media_Buttons.php";
366
- include "Functions/EWD_UFAQ_Add_Views_Column.php";
367
- include "Functions/EWD_UFAQ_Captcha.php";
368
- include "Functions/EWD_UFAQ_Deactivation_Survey.php";
369
- include "Functions/EWD_UFAQ_Export.php";
370
- include "Functions/EWD_UFAQ_Help_Pointers.php";
371
- include "Functions/EWD_UFAQ_Import.php";
372
- include "Functions/EWD_UFAQ_Initial_Data.php";
373
- include "Functions/EWD_UFAQ_Meta_Boxes.php";
374
- include "Functions/EWD_UFAQ_Styling.php";
375
- include "Functions/EWD_UFAQ_Output_Pages.php";
376
- include "Functions/EWD_UFAQ_Pointers_Manager_Interface.php";
377
- include "Functions/EWD_UFAQ_Pointers_Manager_Class.php";
378
- include "Functions/EWD_UFAQ_Rewrite_Rules.php";
379
- include "Functions/EWD_UFAQ_Submit_Question.php";
380
- include "Functions/EWD_UFAQ_Upgrade_Box.php";
381
- include "Functions/EWD_UFAQ_Version_Reversion.php";
382
- include "Functions/EWD_UFAQ_Version_Update.php";
383
- include "Functions/EWD_UFAQ_Widgets.php";
384
- include "Functions/EWD_UFAQ_WooCommerce_Tab.php";
385
- include "Functions/FrontEndAjaxUrl.php";
386
- include "Functions/Full_Upgrade.php";
387
- include "Functions/Process_Ajax.php";
388
- include "Functions/Register_EWD_UFAQ_Posts_Taxonomies.php";
389
- include "Functions/Update_Admin_Databases.php";
390
- include "Functions/Update_EWD_UFAQ_Content.php";
391
-
392
- include "Shortcodes/DisplayFAQs.php";
393
- include "Shortcodes/Display_FAQ_Search.php";
394
- include "Shortcodes/Display_Popular_FAQs.php";
395
- include "Shortcodes/Display_Recent_FAQs.php";
396
- include "Shortcodes/Display_Top_Rated_FAQs.php";
397
- include "Shortcodes/SelectFAQ.php";
398
- include "Shortcodes/SubmitFAQ.php";
399
-
400
- if ($EWD_UFAQ_Version != get_option('EWD_UFAQ_Version')) {
401
- Set_EWD_UFAQ_Options();
402
- EWD_UFAQ_Version_Update();
403
- }
404
-
405
- ?>
1
+ <?php
2
+ /*
3
+ Plugin Name: Ultimate FAQ
4
+ Plugin URI: http://www.EtoileWebDesign.com/wordpress-plugins/
5
+ Description: FAQ plugin that lets you easily create, order and publicize FAQs using shortcodes, with many unique styles, WooCommerce FAQs and AJAX FAQ search
6
+ Author: Etoile Web Design
7
+ Author URI: http://www.EtoileWebDesign.com/wordpress-plugins/
8
+ Terms and Conditions: http://www.etoilewebdesign.com/plugin-terms-and-conditions/
9
+ Text Domain: ultimate-faqs
10
+ Version: 1.8.17
11
+ */
12
+
13
+ global $ewd_ufaq_message;
14
+ global $UFAQ_Full_Version;
15
+ global $EWD_UFAQ_Version;
16
+
17
+ $EWD_UFAQ_Version = '1.8.0d';
18
+
19
+ define( 'EWD_UFAQ_CD_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
20
+ define( 'EWD_UFAQ_CD_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
21
+
22
+ //define('WP_DEBUG', true);
23
+
24
+ register_activation_hook(__FILE__,'Set_EWD_UFAQ_Options');
25
+ register_activation_hook(__FILE__,'Run_UFAQ_Tutorial');
26
+ register_activation_hook(__FILE__,'EWD_UFAQ_Show_Dashboard_Link');
27
+ add_filter('upgrader_post_install', 'Set_EWD_UFAQ_Options');
28
+
29
+ /* Hooks neccessary admin tasks */
30
+ if ( is_admin() ){
31
+ add_action('widgets_init', 'Update_EWD_UFAQ_Content');
32
+ add_action('admin_notices', 'EWD_UFAQ_Error_Notices');
33
+ add_action('admin_enqueue_scripts', 'Add_EWD_UFAQ_Scripts', 10, 1);
34
+ add_action('admin_head', 'EWD_UFAQ_Admin_Options');
35
+ }
36
+
37
+ function EWD_UFAQ_Enable_Sub_Menu() {
38
+ global $submenu;
39
+
40
+ $Admin_Approval = get_option("EWD_UFAQ_Admin_Approval");
41
+ $Access_Role = get_option("UPCP_Access_Role");
42
+
43
+ if ($Access_Role == "") {$Access_Role = "edit_posts";}
44
+
45
+ remove_menu_page('edit.php?post_type=ufaq');
46
+
47
+ add_menu_page( 'Ultimate FAQs', 'FAQs', $Access_Role, 'EWD-UFAQ-Options', 'EWD_UFAQ_Output_Pages', 'dashicons-format-chat', '49.1' );
48
+ add_submenu_page('EWD-UFAQ-Options', 'FAQ Options', 'FAQ Options', $Access_Role, 'EWD-UFAQ-Options&DisplayPage=Options', 'EWD_UFAQ_Output_Pages');
49
+ if ($Admin_Approval == "Yes") {
50
+ $submenu['EWD-UFAQ-Options'][6] = $submenu['EWD-UFAQ-Options'][1];
51
+ $submenu['EWD-UFAQ-Options'][1] = array( 'Approved FAQs', $Access_Role, "edit.php?post_type=ufaq&post_status=publish", "Approved FAQs" );
52
+ $submenu['EWD-UFAQ-Options'][2] = array( 'Awaiting Approval', $Access_Role, "edit.php?post_type=ufaq&post_status=draft", "Awaiting Approval" );
53
+ $submenu['EWD-UFAQ-Options'][3] = array( 'Add New', $Access_Role, "post-new.php?post_type=ufaq", "Add New" );
54
+ $submenu['EWD-UFAQ-Options'][4] = array( 'FAQ Categories', $Access_Role, "edit-tags.php?taxonomy=ufaq-category&post_type=ufaq", "FAQ Categories" );
55
+ $submenu['EWD-UFAQ-Options'][5] = array( 'FAQ Tags', $Access_Role, "edit-tags.php?taxonomy=ufaq-tag&post_type=ufaq", "FAQ Tags" );
56
+ }
57
+ else {
58
+ $submenu['EWD-UFAQ-Options'][5] = $submenu['EWD-UFAQ-Options'][1];
59
+ $submenu['EWD-UFAQ-Options'][1] = array( 'FAQs', $Access_Role, "edit.php?post_type=ufaq", "FAQs" );
60
+ $submenu['EWD-UFAQ-Options'][2] = array( 'Add New', $Access_Role, "post-new.php?post_type=ufaq", "Add New" );
61
+ $submenu['EWD-UFAQ-Options'][3] = array( 'FAQ Categories', $Access_Role, "edit-tags.php?taxonomy=ufaq-category&post_type=ufaq", "FAQ Categories" );
62
+ $submenu['EWD-UFAQ-Options'][4] = array( 'FAQ Tags', $Access_Role, "edit-tags.php?taxonomy=ufaq-tag&post_type=ufaq", "FAQ Tags" );
63
+ }
64
+ add_submenu_page('EWD-UFAQ-Options', 'FAQ Export', 'FAQ Export', $Access_Role, 'EWD-UFAQ-Options&DisplayPage=Export', 'EWD_UFAQ_Output_Pages');
65
+ add_submenu_page('EWD-UFAQ-Options', 'FAQ Import', 'FAQ Import', $Access_Role, 'EWD-UFAQ-Options&DisplayPage=ImportPosts', 'EWD_UFAQ_Output_Pages');
66
+
67
+ $submenu['EWD-UFAQ-Options'][0][0] = "Dashboard";
68
+ ksort($submenu['EWD-UFAQ-Options']);
69
+ }
70
+ add_action('admin_menu' , 'EWD_UFAQ_Enable_Sub_Menu', 1);
71
+
72
+ function EWD_UFAQ_Add_Header_Bar($Called = "No") {
73
+ global $pagenow, $post;
74
+
75
+ if ($Called != "Yes" and (!isset($_GET['post_type']) or $_GET['post_type'] != "ufaq") and (!is_object($post) or $post->post_type != 'ufaq')) {return;}
76
+
77
+ $Admin_Approval = get_option("EWD_UFAQ_Admin_Approval"); ?>
78
+
79
+ <div class="EWD_UFAQ_Menu">
80
+ <h2 class="nav-tab-wrapper">
81
+ <a id="ewd-ufaq-dash-mobile-menu-open" href="#" class="MenuTab nav-tab"><?php _e("MENU", 'ultimate-faqs'); ?><span id="ewd-ufaq-dash-mobile-menu-down-caret">&nbsp;&nbsp;&#9660;</span><span id="ewd-ufaq-dash-mobile-menu-up-caret">&nbsp;&nbsp;&#9650;</span></a>
82
+ <a id="Dashboard_Menu" href='admin.php?page=EWD-UFAQ-Options' class="MenuTab nav-tab <?php if (!isset($_GET['post_type']) and (isset($_GET['DisplayPage']) and ($_GET['DisplayPage'] == '' or $_GET['DisplayPage'] == 'Dashboard'))) {echo 'nav-tab-active';}?>"><?php _e("Dashboard", 'ultimate-faqs'); ?></a>
83
+ <?php if ($Admin_Approval == "Yes") { ?>
84
+ <a id="Approved_FAQs_Menu" href='edit.php?post_type=ufaq&post_status=publish' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit.php' and (!isset($_GET['post_status']) or $_GET['post_status'] == 'publish')) {echo 'nav-tab-active';}?>"><?php _e("Approved FAQs", 'ultimate-faqs'); ?></a>
85
+ <a id="FAQs_Awaiting_Approval_Menu" href='edit.php?post_type=ufaq&post_status=draft' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit.php' and $_GET['post_status'] == 'draft') {echo 'nav-tab-active';}?>"><?php _e("Awaiting Approval", 'ultimate-faqs'); ?></a>
86
+ <?php } else { ?>
87
+ <a id="FAQs_Menu" href='edit.php?post_type=ufaq' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit.php') {echo 'nav-tab-active';}?>"><?php _e("FAQs", 'ultimate-faqs'); ?></a>
88
+ <?php } ?>
89
+ <a id="Add_New_Menu" href='post-new.php?post_type=ufaq' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'post-new.php') {echo 'nav-tab-active';}?>"><?php _e("Add New", 'ultimate-faqs'); ?></a>
90
+ <a id="FAQ_Categories_Menu" href='edit-tags.php?taxonomy=ufaq-category&post_type=ufaq' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit-tags.php' and $_GET['taxonomy'] == "ufaq-category") {echo 'nav-tab-active';}?>"><?php _e("Categories", 'ultimate-faqs'); ?></a>
91
+ <a id="FAQ_Categories_Menu" href='edit-tags.php?taxonomy=ufaq-tag&post_type=ufaq' class="MenuTab nav-tab <?php if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and $pagenow == 'edit-tags.php' and $_GET['taxonomy'] == "ufaq-tag") {echo 'nav-tab-active';}?>"><?php _e("Tags", 'ultimate-faqs'); ?></a>
92
+ <a id="Options_Menu" href='admin.php?page=EWD-UFAQ-Options&DisplayPage=Options' class="MenuTab nav-tab <?php if (!isset($_GET['post_type']) and isset($_GET['DisplayPage']) and $_GET['DisplayPage'] == 'Options') {echo 'nav-tab-active';}?>"><?php _e("Options", 'ultimate-faqs'); ?></a>
93
+ <a id="WooCommerce_Import_Menu" href='admin.php?page=EWD-UFAQ-Options&DisplayPage=Export' class="MenuTab nav-tab <?php if (!isset($_GET['post_type']) and isset($_GET['DisplayPage']) and $_GET['DisplayPage'] == 'Export') {echo 'nav-tab-active';}?>"><?php _e("Export", 'ultimate-faqs'); ?></a>
94
+ <a id="WooCommerce_Import_Menu" href='admin.php?page=EWD-UFAQ-Options&DisplayPage=ImportPosts' class="MenuTab nav-tab <?php if (!isset($_GET['post_type']) and isset($_GET['DisplayPage']) and $_GET['DisplayPage'] == 'ImportPosts') {echo 'nav-tab-active';}?>"><?php _e("Import", 'ultimate-faqs'); ?></a>
95
+ </h2>
96
+ </div>
97
+ <?php }
98
+ add_action('admin_notices', 'EWD_UFAQ_Add_Header_Bar');
99
+
100
+ /* Add localization support */
101
+ function EWD_UFAQ_localization_setup() {
102
+ load_plugin_textdomain('ultimate-faqs', false, dirname(plugin_basename(__FILE__)) . '/lang/');
103
+ }
104
+ add_action('after_setup_theme', 'EWD_UFAQ_localization_setup');
105
+
106
+ // Add settings link on plugin page
107
+ function EWD_UFAQ_plugin_settings_link($links) {
108
+ $settings_link = '<a href="admin.php?page=EWD-UFAQ-Options">Settings</a>';
109
+ array_unshift($links, $settings_link);
110
+ return $links;
111
+ }
112
+ $plugin = plugin_basename(__FILE__);
113
+ add_filter("plugin_action_links_$plugin", 'EWD_UFAQ_plugin_settings_link' );
114
+
115
+ function Add_EWD_UFAQ_Scripts($hook) {
116
+ global $post, $EWD_UFAQ_Version;
117
+
118
+ wp_enqueue_script('ewd-ufaq-review-ask', plugins_url("js/ewd-ufaq-dashboard-review-ask.js", __FILE__), array('jquery'), $EWD_UFAQ_Version);
119
+
120
+ if ((isset($_GET['post_type']) && $_GET['post_type'] == 'ufaq') or
121
+ (isset($_GET['page']) && $_GET['page'] == 'EWD-UFAQ-Options')) {
122
+ $url_one = plugins_url("ultimate-faqs/js/sorttable.js");
123
+ $url_two = plugins_url("ultimate-faqs/js/Admin.js");
124
+ $url_three = plugins_url("ultimate-faqs/js/spectrum.js");
125
+
126
+ wp_enqueue_script('jquery-ui-sortable');
127
+ wp_enqueue_script('sortable', $url_one, array('jquery'));
128
+ wp_enqueue_script('UFAQ Admin', $url_two, array('jquery'), $EWD_UFAQ_Version);
129
+ wp_enqueue_script('spectrum', $url_three, array('jquery'));
130
+ }
131
+
132
+ if ($hook == 'edit.php' or $hook == 'post-new.php' or $hook == 'post.php') {
133
+ if (isset($post->post_type) and $post->post_type == 'product') {
134
+ wp_enqueue_script('ewd-ufaq-wc-admin', plugins_url("js/ewd-ufaq-wc-admin.js", __FILE__), array('jquery'), $EWD_UFAQ_Version);
135
+ }
136
+ }
137
+
138
+ if (isset($_GET['page']) && $_GET['page'] == 'ewd-ufaq-getting-started') {
139
+ wp_enqueue_script('ewd-ufaq-getting-started', EWD_UFAQ_CD_PLUGIN_URL . 'js/ewd-ufaq-getting-started.js', array('jquery'), $EWD_UFAQ_Version);
140
+ wp_enqueue_script('spectrum', EWD_UFAQ_CD_PLUGIN_URL . 'js/spectrum.js', array('jquery'), $EWD_UFAQ_Version);
141
+ wp_enqueue_script('UFAQ Admin', EWD_UFAQ_CD_PLUGIN_URL . 'js/Admin.js', array('jquery', 'jquery-ui-sortable', 'spectrum'), $EWD_UFAQ_Version);
142
+ }
143
+ }
144
+
145
+ function EWD_UFAQ_Admin_Options() {
146
+ global $EWD_UFAQ_Version;
147
+
148
+ wp_enqueue_style( 'ewd-ufaq-admin', plugins_url("ultimate-faqs/css/Admin.css"), array(), $EWD_UFAQ_Version);
149
+ wp_enqueue_style( 'ewd-ufaq-spectrum', plugins_url("ultimate-faqs/css/spectrum.css"));
150
+ wp_enqueue_style( 'ewd-ufaq-welcome-screen', EWD_UFAQ_CD_PLUGIN_URL . 'css/ewd-ufaq-welcome-screen.css', array(), $EWD_UFAQ_Version);
151
+ }
152
+
153
+ add_action( 'wp_enqueue_scripts', 'Add_EWD_UFAQ_FrontEnd_Scripts' );
154
+ function Add_EWD_UFAQ_FrontEnd_Scripts() {
155
+ global $EWD_UFAQ_Version;
156
+
157
+ wp_register_script('ewd-ufaq-js', plugins_url( '/js/ewd-ufaq-js.js' , __FILE__ ), array( 'jquery' ), $EWD_UFAQ_Version);
158
+
159
+ $Highlight_Search_Term = get_option("EWD_UFAQ_Highlight_Search_Term");
160
+
161
+ $Retrieving_Results = get_option("EWD_UFAQ_Retrieving_Results");
162
+ if ($Retrieving_Results == "") {$Retrieving_Results = __("Retrieving Results", 'ultimate-faqs') . "...";}
163
+
164
+ $ewd_ufaq_php_data = array(
165
+ 'retrieving_results' => $Retrieving_Results,
166
+ 'highlight_search_term' => $Highlight_Search_Term
167
+ );
168
+
169
+ wp_localize_script('ewd-ufaq-js', 'ewd_ufaq_php_data', $ewd_ufaq_php_data );
170
+ }
171
+
172
+
173
+ add_action( 'wp_enqueue_scripts', 'EWD_UFAQ_Add_Stylesheet' );
174
+ function EWD_UFAQ_Add_Stylesheet() {
175
+ global $EWD_UFAQ_Version;
176
+
177
+ wp_register_style( 'ewd-ufaq-style', plugins_url('css/ewd-ufaq-styles.css', __FILE__) );
178
+ wp_enqueue_style( 'ewd-ufaq-style', $EWD_UFAQ_Version );
179
+
180
+ wp_register_style( 'ewd-ufaq-rrssb', plugins_url('css/rrssb-min.css', __FILE__) );
181
+ wp_enqueue_style( 'ewd-ufaq-rrssb' );
182
+ }
183
+
184
+ //add_action('activated_plugin','save_ufaq_error');
185
+ function save_ufaq_error(){
186
+ update_option('plugin_error', ob_get_contents());
187
+ file_put_contents("Error.txt", ob_get_contents());
188
+ }
189
+
190
+ function Set_EWD_UFAQ_Options() {
191
+ if (get_option("EWD_UFAQ_Toggle") == "") {update_option("EWD_UFAQ_Toggle", "Yes");}
192
+ if (get_option("EWD_UFAQ_Category_Toggle") == "") {update_option("EWD_UFAQ_Category_Toggle", "No");}
193
+ if (get_option("EWD_UFAQ_Category_Accordion") == "") {update_option("EWD_UFAQ_Category_Accordion", "No");}
194
+ if (get_option("EWD_UFAQ_Expand_Collapse_All") == "") {update_option("EWD_UFAQ_Expand_Collapse_All", "No");}
195
+ if (get_option("EWD_UFAQ_FAQ_Accordion") == "") {update_option("EWD_UFAQ_FAQ_Accordion", "No");}
196
+ if (get_option("EWD_UFAQ_Hide_Categories") == "") {update_option("EWD_UFAQ_Hide_Categories", "No");}
197
+ if (get_option("EWD_UFAQ_Hide_Tags") == "") {update_option("EWD_UFAQ_Hide_Tags", "No");}
198
+ if (get_option("EWD_UFAQ_Scroll_To_Top") == "") {update_option("EWD_UFAQ_Scroll_To_Top", "Yes");}
199
+ if (get_option("EWD_UFAQ_Display_All_Answers") == "") {update_option("EWD_UFAQ_Display_All_Answers", "No");}
200
+ if (get_option("EWD_UFAQ_Display_Author") == "") {update_option("EWD_UFAQ_Display_Author", "Yes");}
201
+ if (get_option("EWD_UFAQ_Display_Date") == "") {update_option("EWD_UFAQ_Display_Date", "Yes");}
202
+ if (get_option("EWD_UFAQ_Display_Back_To_Top") == "") {update_option("EWD_UFAQ_Display_Back_To_Top", "No");}
203
+ if (get_option("EWD_UFAQ_Include_Permalink") == "") {update_option("EWD_UFAQ_Include_Permalink", "Yes");}
204
+ if (get_option("EWD_UFAQ_Permalink_Type") == "") {update_option("EWD_UFAQ_Permalink_Type", "SamePage");}
205
+ if (get_option("EWD_UFAQ_Show_TinyMCE") == "") {update_option("EWD_UFAQ_Show_TinyMCE", "Yes");}
206
+ if (get_option("EWD_UFAQ_Comments_On") == "") {update_option("EWD_UFAQ_Comments_On", "Yes");}
207
+ if (get_option("EWD_UFAQ_Access_Role") == "") {update_option("EWD_UFAQ_Access_Role", "edit_posts");}
208
+
209
+ if (get_option("EWD_UFAQ_Display_Style") == "") {update_option("EWD_UFAQ_Display_Style", "Default");}
210
+ if (get_option("EWD_UFAQ_FAQ_Number_Of_Columns") == "") {update_option("EWD_UFAQ_FAQ_Number_Of_Columns", "One");}
211
+ if (get_option("EWD_UFAQ_Color_Block_Shape") == "") {update_option("EWD_UFAQ_Color_Block_Shape", "Square");}
212
+ if (get_option("EWD_UFAQ_Page_Type") == "") {update_option("EWD_UFAQ_Page_Type", "Load_More");}
213
+ if (get_option("EWD_UFAQ_FAQ_Ratings") == "") {update_option("EWD_UFAQ_FAQ_Ratings", "No");}
214
+ if (get_option("EWD_UFAQ_WooCommerce_FAQs") == "") {update_option("EWD_UFAQ_WooCommerce_FAQs", "No");}
215
+ if (get_option("EWD_UFAQ_Use_Product") == "") {update_option("EWD_UFAQ_Use_Product", "Yes");}
216
+ if (get_option("EWD_UFAQ_Reveal_Effect") == "") {update_option("EWD_UFAQ_Reveal_Effect", "none");}
217
+ if (get_option("EWD_UFAQ_Pretty_Permalinks") == "") {update_option("EWD_UFAQ_Pretty_Permalinks", "No");}
218
+ if (get_option("EWD_UFAQ_Allow_Proposed_Answer") == "") {update_option("EWD_UFAQ_Allow_Proposed_Answer", "No");}
219
+ if (get_option("EWD_UFAQ_Submit_Custom_Fields") == "") {update_option("EWD_UFAQ_Submit_Custom_Fields", "No");}
220
+ if (get_option("EWD_UFAQ_Submit_Question_Captcha") == "") {update_option("EWD_UFAQ_Submit_Question_Captcha", "No");}
221
+ if (get_option("EWD_UFAQ_Admin_Question_Notification") == "") {update_option("EWD_UFAQ_Admin_Question_Notification", "No");}
222
+ if (get_option("EWD_UFAQ_Submit_FAQ_Email") == "") {update_option("EWD_UFAQ_Submit_FAQ_Email", 0);}
223
+ if (get_option("EWD_UFAQ_Auto_Complete_Titles") == "") {update_option("EWD_UFAQ_Auto_Complete_Titles", "Yes");}
224
+ if (get_option("EWD_UFAQ_Highlight_Search_Term") == "") {update_option("EWD_UFAQ_Highlight_Search_Term", "No");}
225
+ if (get_option("EWD_UFAQ_Slug_Base") == "") {update_option("EWD_UFAQ_Slug_Base", "ufaqs");}
226
+
227
+ if (get_option("EWD_UFAQ_FAQ_Elements") == "") {
228
+ $FAQ_Elements = array();
229
+ $FAQ_Elements[0] = "Author_Date";
230
+ $FAQ_Elements[1] = "Body";
231
+ $FAQ_Elements[2] = "Custom_Fields";
232
+ $FAQ_Elements[3] = "Categories";
233
+ $FAQ_Elements[4] = "Tags";
234
+ $FAQ_Elements[5] = "Ratings";
235
+ $FAQ_Elements[6] = "Social_Media";
236
+ $FAQ_Elements[7] = "Permalink";
237
+ $FAQ_Elements[8] = "Comments";
238
+ $FAQ_Elements[9] = "Back_To_Top";
239
+
240
+ update_option("EWD_UFAQ_FAQ_Elements", $FAQ_Elements);
241
+ }
242
+
243
+ if (get_option("EWD_UFAQ_Group_By_Category") == "") {update_option("EWD_UFAQ_Group_By_Category", "No");}
244
+ if (get_option("EWD_UFAQ_Group_By_Category_Count") == "") {update_option("EWD_UFAQ_Group_By_Category_Count", "No");}
245
+ if (get_option("EWD_UFAQ_Group_By_Order_By") == "") {update_option("EWD_UFAQ_Group_By_Order_By", "name");}
246
+ if (get_option("EWD_UFAQ_Group_By_Order") == "") {update_option("EWD_UFAQ_Group_By_Order", "ASC");}
247
+ if (get_option("EWD_UFAQ_Order_By") == "") {update_option("EWD_UFAQ_Order_By", "date");}
248
+ if (get_option("EWD_UFAQ_Order") == "") {update_option("EWD_UFAQ_Order", "DESC");}
249
+
250
+ if (get_option("EWD_UFAQ_Hide_Blank_Fields") == "") {update_option("EWD_UFAQ_Hide_Blank_Fields", "Yes");}
251
+
252
+ if (get_option("EWD_UFAQ_Styling_Category_Heading_Type") == "") {update_option("EWD_UFAQ_Styling_Category_Heading_Type", "h4");}
253
+ if (get_option("EWD_UFAQ_Styling_FAQ_Heading_Type") == "") {update_option("EWD_UFAQ_Styling_FAQ_Heading_Type", "h4");}
254
+ if (get_option("EWD_UFAQ_Toggle_Symbol") == "") {update_option("EWD_UFAQ_Toggle_Symbol", "A");}
255
+
256
+ if (get_option("EWD_UFAQ_Full_Version") == "") {update_option("EWD_UFAQ_Full_Version", "No");}
257
+ if (get_option("EWD_UFAQ_Install_Flag") == "") {update_option("EWD_UFAQ_Update_Flag", "Yes");}
258
+ if (get_option("EWD_UFAQ_Install_Flag") == "") {update_option("EWD_UFAQ_Install_Flag", "Yes");}
259
+
260
+ if (get_option("EWD_UFAQ_Install_Version") == "") {update_option("EWD_UFAQ_Install_Version", 1.6);}
261
+ if (get_option("EWD_UFAQ_Install_Time") == "") {update_option("EWD_UFAQ_Install_Time", time());}
262
+ }
263
+
264
+ $UFAQ_Full_Version = get_option("EWD_UFAQ_Full_Version");
265
+ if (isset($_GET['post_type']) and $_GET['post_type'] == 'ufaq' and isset($_POST['EWD_UFAQ_Upgrade_To_Full']) and $UFAQ_Full_Version == "Yes") {add_action("admin_notices", "EWD_UFAQ_Upgrade_Notice");}
266
+
267
+ $PrettyLinks = get_option("EWD_UFAQ_Pretty_Permalinks");
268
+ if ($PrettyLinks == "Yes") {
269
+ add_filter( 'query_vars', 'EWD_UFAQ_add_query_vars_filter' );
270
+ add_filter('init', 'EWD_UFAQ_Rewrite_Rules');
271
+ update_option("EWD_UFAQ_Update_RR_Rules", "No");
272
+ }
273
+
274
+ if (isset($_POST['EWD_UFAQ_Upgrade_To_Full'])) {
275
+ add_action('admin_init', 'EWD_UFAQ_Upgrade_To_Full');
276
+ }
277
+
278
+ $Show_TinyMCE = get_option("EWD_UFAQ_Show_TinyMCE");
279
+ if ($Show_TinyMCE == "Yes") {
280
+ add_filter( 'mce_buttons', 'EWD_UFAQ_Register_TinyMCE_Buttons' );
281
+ add_filter( 'mce_external_plugins', 'EWD_UFAQ_Register_TinyMCE_Javascript' );
282
+ add_action('admin_head', 'EWD_UFAQ_Output_TinyMCE_Vars');
283
+ }
284
+
285
+ function EWD_UFAQ_Register_TinyMCE_Buttons( $buttons ) {
286
+ array_push( $buttons, 'separator', 'UFAQ_Shortcodes' );
287
+ return $buttons;
288
+ }
289
+
290
+ function EWD_UFAQ_Register_TinyMCE_Javascript( $plugin_array ) {
291
+ $plugin_array['UFAQ_Shortcodes'] = plugins_url( '/js/tinymce-plugin.js',__FILE__ );
292
+
293
+ return $plugin_array;
294
+ }
295
+
296
+ function EWD_UFAQ_Output_TinyMCE_Vars() {
297
+ global $UFAQ_Full_Version;
298
+ $UFAQ_Categories = get_terms('ufaq-category');
299
+
300
+ echo "<script type='text/javascript'>";
301
+ echo "var ufaq_premium = '" . $UFAQ_Full_Version . "';\n";
302
+ echo "var ufaq_categories = " . json_encode($UFAQ_Categories) . ";\n";
303
+ echo "</script>";
304
+ }
305
+
306
+ function Run_UFAQ_Tutorial() {
307
+ update_option("UFAQ_Run_Tutorial", "Yes");
308
+ }
309
+
310
+ if (get_option("UFAQ_Run_Tutorial") == "Yes" and isset($_GET['page']) and $_GET['page'] == 'EWD-UFAQ-Options') {
311
+ add_action( 'admin_enqueue_scripts', 'UFAQ_Set_Pointers', 10, 1);
312
+ }
313
+
314
+ function UFAQ_Set_Pointers($page) {
315
+ $Pointers = UFAQ_Return_Pointers();
316
+
317
+ //Arguments: pointers php file, version (dots will be replaced), prefix
318
+ $manager = new UFAQPointersManager( $Pointers, '1.0', 'ufaq_admin_pointers' );
319
+ $manager->parse();
320
+ $pointers = $manager->filter( $page );
321
+ if ( empty( $pointers ) ) { // nothing to do if no pointers pass the filter
322
+ return;
323
+ }
324
+ wp_enqueue_style( 'wp-pointer' );
325
+ $js_url = plugins_url( 'js/ewd-ufaq-pointers.js', __FILE__ );
326
+ wp_enqueue_script( 'ufaq_admin_pointers', $js_url, array('wp-pointer'), NULL, TRUE );
327
+ //data to pass to javascript
328
+ $data = array(
329
+ 'next_label' => __( 'Next' ),
330
+ 'close_label' => __('Close'),
331
+ 'pointers' => $pointers
332
+ );
333
+ wp_localize_script( 'ufaq_admin_pointers', 'MyAdminPointers', $data );
334
+ //update_option("UFAQ_Run_Tutorial", "No");
335
+ }
336
+
337
+ function EWD_UFAQ_Show_Dashboard_Link() {
338
+ set_transient('ewd-ufaq-getting-started', true, 30);
339
+ }
340
+
341
+ function UFAQ_Leave_Reply_Text($translation, $text, $domain) {
342
+ global $post;
343
+ if ($text == 'Leave a Reply' and (is_object($post) and $post->post_type == 'ufaq')) {
344
+ $translations = &get_translations_for_domain( $domain);
345
+ return $translations->translate( 'Comment on this FAQ' );
346
+ }
347
+ return $translation;
348
+ }
349
+ add_filter('gettext', 'UFAQ_Leave_Reply_Text', 10, 4);
350
+
351
+
352
+ function UFAQ_Post_Edit_Styles( $hook_suffix ){
353
+ $cpt = 'ufaq';
354
+ if( in_array( $hook_suffix, array('post.php', 'post-new.php') ) ){
355
+ $screen = get_current_screen();
356
+ if( is_object( $screen ) && $cpt == $screen->post_type ){
357
+ wp_enqueue_style( 'ewd-ufaq-post-edit-styles', plugins_url("ultimate-faqs/css/ewd-ufaq-post-edit-styles.css"), $EWD_UFAQ_Version );
358
+ }
359
+ }
360
+ }
361
+ add_action('admin_enqueue_scripts', 'UFAQ_Post_Edit_Styles');
362
+
363
+ include "blocks/ewd-ufaq-blocks.php";
364
+ include "Functions/Error_Notices.php";
365
+ include "Functions/EWD_UFAQ_Add_Social_Media_Buttons.php";
366
+ include "Functions/EWD_UFAQ_Add_Views_Column.php";
367
+ include "Functions/EWD_UFAQ_Captcha.php";
368
+ include "Functions/EWD_UFAQ_Deactivation_Survey.php";
369
+ include "Functions/EWD_UFAQ_Export.php";
370
+ include "Functions/EWD_UFAQ_Help_Pointers.php";
371
+ include "Functions/EWD_UFAQ_Import.php";
372
+ include "Functions/EWD_UFAQ_Initial_Data.php";
373
+ include "Functions/EWD_UFAQ_Meta_Boxes.php";
374
+ include "Functions/EWD_UFAQ_Styling.php";
375
+ include "Functions/EWD_UFAQ_Output_Pages.php";
376
+ include "Functions/EWD_UFAQ_Pointers_Manager_Interface.php";
377
+ include "Functions/EWD_UFAQ_Pointers_Manager_Class.php";
378
+ include "Functions/EWD_UFAQ_Rewrite_Rules.php";
379
+ include "Functions/EWD_UFAQ_Submit_Question.php";
380
+ include "Functions/EWD_UFAQ_Upgrade_Box.php";
381
+ include "Functions/EWD_UFAQ_Version_Reversion.php";
382
+ include "Functions/EWD_UFAQ_Version_Update.php";
383
+ include "Functions/EWD_UFAQ_Widgets.php";
384
+ include "Functions/EWD_UFAQ_WooCommerce_Tab.php";
385
+ include "Functions/FrontEndAjaxUrl.php";
386
+ include "Functions/Full_Upgrade.php";
387
+ include "Functions/Process_Ajax.php";
388
+ include "Functions/Register_EWD_UFAQ_Posts_Taxonomies.php";
389
+ include "Functions/Update_Admin_Databases.php";
390
+ include "Functions/Update_EWD_UFAQ_Content.php";
391
+
392
+ include "Shortcodes/DisplayFAQs.php";
393
+ include "Shortcodes/Display_FAQ_Search.php";
394
+ include "Shortcodes/Display_Popular_FAQs.php";
395
+ include "Shortcodes/Display_Recent_FAQs.php";
396
+ include "Shortcodes/Display_Top_Rated_FAQs.php";
397
+ include "Shortcodes/SelectFAQ.php";
398
+ include "Shortcodes/SubmitFAQ.php";
399
+
400
+ if ($EWD_UFAQ_Version != get_option('EWD_UFAQ_Version')) {
401
+ Set_EWD_UFAQ_Options();
402
+ EWD_UFAQ_Version_Update();
403
+ }
404
+
405
+ ?>
PHPSpreadsheet/vendor/autoload.php CHANGED
@@ -1,7 +1,7 @@
1
- <?php
2
-
3
- // autoload.php @generated by Composer
4
-
5
- require_once __DIR__ . '/composer/autoload_real.php';
6
-
7
- return ComposerAutoloaderInit4618f5c41cf5e27cc7908556f031e4d4::getLoader();
1
+ <?php
2
+
3
+ // autoload.php @generated by Composer
4
+
5
+ require_once __DIR__ . '/composer/autoload_real.php';
6
+
7
+ return ComposerAutoloaderInit4618f5c41cf5e27cc7908556f031e4d4::getLoader();
PHPSpreadsheet/vendor/composer/ClassLoader.php CHANGED
@@ -1,445 +1,445 @@
1
- <?php
2
-
3
- /*
4
- * This file is part of Composer.
5
- *
6
- * (c) Nils Adermann <naderman@naderman.de>
7
- * Jordi Boggiano <j.boggiano@seld.be>
8
- *
9
- * For the full copyright and license information, please view the LICENSE
10
- * file that was distributed with this source code.
11
- */
12
-
13
- namespace Composer\Autoload;
14
-
15
- /**
16
- * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17
- *
18
- * $loader = new \Composer\Autoload\ClassLoader();
19
- *
20
- * // register classes with namespaces
21
- * $loader->add('Symfony\Component', __DIR__.'/component');
22
- * $loader->add('Symfony', __DIR__.'/framework');
23
- *
24
- * // activate the autoloader
25
- * $loader->register();
26
- *
27
- * // to enable searching the include path (eg. for PEAR packages)
28
- * $loader->setUseIncludePath(true);
29
- *
30
- * In this example, if you try to use a class in the Symfony\Component
31
- * namespace or one of its children (Symfony\Component\Console for instance),
32
- * the autoloader will first look for the class under the component/
33
- * directory, and it will then fallback to the framework/ directory if not
34
- * found before giving up.
35
- *
36
- * This class is loosely based on the Symfony UniversalClassLoader.
37
- *
38
- * @author Fabien Potencier <fabien@symfony.com>
39
- * @author Jordi Boggiano <j.boggiano@seld.be>
40
- * @see http://www.php-fig.org/psr/psr-0/
41
- * @see http://www.php-fig.org/psr/psr-4/
42
- */
43
- class ClassLoader
44
- {
45
- // PSR-4
46
- private $prefixLengthsPsr4 = array();
47
- private $prefixDirsPsr4 = array();
48
- private $fallbackDirsPsr4 = array();
49
-
50
- // PSR-0
51
- private $prefixesPsr0 = array();
52
- private $fallbackDirsPsr0 = array();
53
-
54
- private $useIncludePath = false;
55
- private $classMap = array();
56
- private $classMapAuthoritative = false;
57
- private $missingClasses = array();
58
- private $apcuPrefix;
59
-
60
- public function getPrefixes()
61
- {
62
- if (!empty($this->prefixesPsr0)) {
63
- return call_user_func_array('array_merge', $this->prefixesPsr0);
64
- }
65
-
66
- return array();
67
- }
68
-
69
- public function getPrefixesPsr4()
70
- {
71
- return $this->prefixDirsPsr4;
72
- }
73
-
74
- public function getFallbackDirs()
75
- {
76
- return $this->fallbackDirsPsr0;
77
- }
78
-
79
- public function getFallbackDirsPsr4()
80
- {
81
- return $this->fallbackDirsPsr4;
82
- }
83
-
84
- public function getClassMap()
85
- {
86
- return $this->classMap;
87
- }
88
-
89
- /**
90
- * @param array $classMap Class to filename map
91
- */
92
- public function addClassMap(array $classMap)
93
- {
94
- if ($this->classMap) {
95
- $this->classMap = array_merge($this->classMap, $classMap);
96
- } else {
97
- $this->classMap = $classMap;
98
- }
99
- }
100
-
101
- /**
102
- * Registers a set of PSR-0 directories for a given prefix, either
103
- * appending or prepending to the ones previously set for this prefix.
104
- *
105
- * @param string $prefix The prefix
106
- * @param array|string $paths The PSR-0 root directories
107
- * @param bool $prepend Whether to prepend the directories
108
- */
109
- public function add($prefix, $paths, $prepend = false)
110
- {
111
- if (!$prefix) {
112
- if ($prepend) {
113
- $this->fallbackDirsPsr0 = array_merge(
114
- (array) $paths,
115
- $this->fallbackDirsPsr0
116
- );
117
- } else {
118
- $this->fallbackDirsPsr0 = array_merge(
119
- $this->fallbackDirsPsr0,
120
- (array) $paths
121
- );
122
- }
123
-
124
- return;
125
- }
126
-
127
- $first = $prefix[0];
128
- if (!isset($this->prefixesPsr0[$first][$prefix])) {
129
- $this->prefixesPsr0[$first][$prefix] = (array) $paths;
130
-
131
- return;
132
- }
133
- if ($prepend) {
134
- $this->prefixesPsr0[$first][$prefix] = array_merge(
135
- (array) $paths,
136
- $this->prefixesPsr0[$first][$prefix]
137
- );
138
- } else {
139
- $this->prefixesPsr0[$first][$prefix] = array_merge(
140
- $this->prefixesPsr0[$first][$prefix],
141
- (array) $paths
142
- );
143
- }
144
- }
145
-
146
- /**
147
- * Registers a set of PSR-4 directories for a given namespace, either
148
- * appending or prepending to the ones previously set for this namespace.
149
- *
150
- * @param string $prefix The prefix/namespace, with trailing '\\'
151
- * @param array|string $paths The PSR-4 base directories
152
- * @param bool $prepend Whether to prepend the directories
153
- *
154
- * @throws \InvalidArgumentException
155
- */
156
- public function addPsr4($prefix, $paths, $prepend = false)
157
- {
158
- if (!$prefix) {
159
- // Register directories for the root namespace.
160
- if ($prepend) {
161
- $this->fallbackDirsPsr4 = array_merge(
162
- (array) $paths,
163
- $this->fallbackDirsPsr4
164
- );
165
- } else {
166
- $this->fallbackDirsPsr4 = array_merge(
167
- $this->fallbackDirsPsr4,
168
- (array) $paths
169
- );
170
- }
171
- } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
172
- // Register directories for a new namespace.
173
- $length = strlen($prefix);
174
- if ('\\' !== $prefix[$length - 1]) {
175
- throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
176
- }
177
- $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
178
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
179
- } elseif ($prepend) {
180
- // Prepend directories for an already registered namespace.
181
- $this->prefixDirsPsr4[$prefix] = array_merge(
182
- (array) $paths,
183
- $this->prefixDirsPsr4[$prefix]
184
- );
185
- } else {
186
- // Append directories for an already registered namespace.
187
- $this->prefixDirsPsr4[$prefix] = array_merge(
188
- $this->prefixDirsPsr4[$prefix],
189
- (array) $paths
190
- );
191
- }
192
- }
193
-
194
- /**
195
- * Registers a set of PSR-0 directories for a given prefix,
196
- * replacing any others previously set for this prefix.
197
- *
198
- * @param string $prefix The prefix
199
- * @param array|string $paths The PSR-0 base directories
200
- */
201
- public function set($prefix, $paths)
202
- {
203
- if (!$prefix) {
204
- $this->fallbackDirsPsr0 = (array) $paths;
205
- } else {
206
- $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
207
- }
208
- }
209
-
210
- /**
211
- * Registers a set of PSR-4 directories for a given namespace,
212
- * replacing any others previously set for this namespace.
213
- *
214
- * @param string $prefix The prefix/namespace, with trailing '\\'
215
- * @param array|string $paths The PSR-4 base directories
216
- *
217
- * @throws \InvalidArgumentException
218
- */
219
- public function setPsr4($prefix, $paths)
220
- {
221
- if (!$prefix) {
222
- $this->fallbackDirsPsr4 = (array) $paths;
223
- } else {
224
- $length = strlen($prefix);
225
- if ('\\' !== $prefix[$length - 1]) {
226
- throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
227
- }
228
- $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
229
- $this->prefixDirsPsr4[$prefix] = (array) $paths;
230
- }
231
- }
232
-
233
- /**
234
- * Turns on searching the include path for class files.
235
- *
236
- * @param bool $useIncludePath
237
- */
238
- public function setUseIncludePath($useIncludePath)
239
- {
240
- $this->useIncludePath = $useIncludePath;
241
- }
242
-
243
- /**
244
- * Can be used to check if the autoloader uses the include path to check
245
- * for classes.
246
- *
247
- * @return bool
248
- */
249
- public function getUseIncludePath()
250
- {
251
- return $this->useIncludePath;
252
- }
253
-
254
- /**
255
- * Turns off searching the prefix and fallback directories for classes
256
- * that have not been registered with the class map.
257
- *
258
- * @param bool $classMapAuthoritative
259
- */
260
- public function setClassMapAuthoritative($classMapAuthoritative)
261
- {
262
- $this->classMapAuthoritative = $classMapAuthoritative;
263
- }
264
-
265
- /**
266
- * Should class lookup fail if not found in the current class map?
267
- *
268
- * @return bool
269
- */
270
- public function isClassMapAuthoritative()
271
- {
272
- return $this->classMapAuthoritative;
273
- }
274
-
275
- /**
276
- * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
277
- *
278
- * @param string|null $apcuPrefix
279
- */
280
- public function setApcuPrefix($apcuPrefix)
281
- {
282
- $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
283
- }
284
-
285
- /**
286
- * The APCu prefix in use, or null if APCu caching is not enabled.
287
- *
288
- * @return string|null
289
- */
290
- public function getApcuPrefix()
291
- {
292
- return $this->apcuPrefix;
293
- }
294
-
295
- /**
296
- * Registers this instance as an autoloader.
297
- *
298
- * @param bool $prepend Whether to prepend the autoloader or not
299
- */
300
- public function register($prepend = false)
301
- {
302
- spl_autoload_register(array($this, 'loadClass'), true, $prepend);
303
- }
304
-
305
- /**
306
- * Unregisters this instance as an autoloader.
307
- */
308
- public function unregister()
309
- {
310
- spl_autoload_unregister(array($this, 'loadClass'));
311
- }
312
-
313
- /**
314
- * Loads the given class or interface.
315
- *
316
- * @param string $class The name of the class
317
- * @return bool|null True if loaded, null otherwise
318
- */
319
- public function loadClass($class)
320
- {
321
- if ($file = $this->findFile($class)) {
322
- includeFile($file);
323
-
324
- return true;
325
- }
326
- }
327
-
328
- /**
329
- * Finds the path to the file where the class is defined.
330
- *
331
- * @param string $class The name of the class
332
- *
333
- * @return string|false The path if found, false otherwise
334
- */
335
- public function findFile($class)
336
- {
337
- // class map lookup
338
- if (isset($this->classMap[$class])) {
339
- return $this->classMap[$class];
340
- }
341
- if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
342
- return false;
343
- }
344
- if (null !== $this->apcuPrefix) {
345
- $file = apcu_fetch($this->apcuPrefix.$class, $hit);
346
- if ($hit) {
347
- return $file;
348
- }
349
- }
350
-
351
- $file = $this->findFileWithExtension($class, '.php');
352
-
353
- // Search for Hack files if we are running on HHVM
354
- if (false === $file && defined('HHVM_VERSION')) {
355
- $file = $this->findFileWithExtension($class, '.hh');
356
- }
357
-
358
- if (null !== $this->apcuPrefix) {
359
- apcu_add($this->apcuPrefix.$class, $file);
360
- }
361
-
362
- if (false === $file) {
363
- // Remember that this class does not exist.
364
- $this->missingClasses[$class] = true;
365
- }
366
-
367
- return $file;
368
- }
369
-
370
- private function findFileWithExtension($class, $ext)
371
- {
372
- // PSR-4 lookup
373
- $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
374
-
375
- $first = $class[0];
376
- if (isset($this->prefixLengthsPsr4[$first])) {
377
- $subPath = $class;
378
- while (false !== $lastPos = strrpos($subPath, '\\')) {
379
- $subPath = substr($subPath, 0, $lastPos);
380
- $search = $subPath.'\\';
381
- if (isset($this->prefixDirsPsr4[$search])) {
382
- $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
383
- foreach ($this->prefixDirsPsr4[$search] as $dir) {
384
- if (file_exists($file = $dir . $pathEnd)) {
385
- return $file;
386
- }
387
- }
388
- }
389
- }
390
- }
391
-
392
- // PSR-4 fallback dirs
393
- foreach ($this->fallbackDirsPsr4 as $dir) {
394
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
395
- return $file;
396
- }
397
- }
398
-
399
- // PSR-0 lookup
400
- if (false !== $pos = strrpos($class, '\\')) {
401
- // namespaced class name
402
- $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
403
- . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
404
- } else {
405
- // PEAR-like class name
406
- $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
407
- }
408
-
409
- if (isset($this->prefixesPsr0[$first])) {
410
- foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
411
- if (0 === strpos($class, $prefix)) {
412
- foreach ($dirs as $dir) {
413
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
414
- return $file;
415
- }
416
- }
417
- }
418
- }
419
- }
420
-
421
- // PSR-0 fallback dirs
422
- foreach ($this->fallbackDirsPsr0 as $dir) {
423
- if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
424
- return $file;
425
- }
426
- }
427
-
428
- // PSR-0 include paths.
429
- if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
430
- return $file;
431
- }
432
-
433
- return false;
434
- }
435
- }
436
-
437
- /**
438
- * Scope isolated include.
439
- *
440
- * Prevents access to $this/self from included files.
441
- */
442
- function includeFile($file)
443
- {
444
- include $file;
445
- }
1
+ <?php
2
+
3
+ /*
4
+ * This file is part of Composer.
5
+ *
6
+ * (c) Nils Adermann <naderman@naderman.de>
7
+ * Jordi Boggiano <j.boggiano@seld.be>
8
+ *
9
+ * For the full copyright and license information, please view the LICENSE
10
+ * file that was distributed with this source code.
11
+ */
12
+
13
+ namespace Composer\Autoload;
14
+
15
+ /**
16
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
17
+ *
18
+ * $loader = new \Composer\Autoload\ClassLoader();
19
+ *
20
+ * // register classes with namespaces
21
+ * $loader->add('Symfony\Component', __DIR__.'/component');
22
+ * $loader->add('Symfony', __DIR__.'/framework');
23
+ *
24
+ * // activate the autoloader
25
+ * $loader->register();
26
+ *
27
+ * // to enable searching the include path (eg. for PEAR packages)
28
+ * $loader->setUseIncludePath(true);
29
+ *
30
+ * In this example, if you try to use a class in the Symfony\Component
31
+ * namespace or one of its children (Symfony\Component\Console for instance),
32
+ * the autoloader will first look for the class under the component/
33
+ * directory, and it will then fallback to the framework/ directory if not
34
+ * found before giving up.
35
+ *
36
+ * This class is loosely based on the Symfony UniversalClassLoader.
37
+ *
38
+ * @author Fabien Potencier <fabien@symfony.com>
39
+ * @author Jordi Boggiano <j.boggiano@seld.be>
40
+ * @see http://www.php-fig.org/psr/psr-0/
41
+ * @see http://www.php-fig.org/psr/psr-4/
42
+ */
43
+ class ClassLoader
44
+ {
45
+ // PSR-4
46
+ private $prefixLengthsPsr4 = array();
47
+ private $prefixDirsPsr4 = array();
48
+ private $fallbackDirsPsr4 = array();
49
+
50
+ // PSR-0
51
+ private $prefixesPsr0 = array();
52
+ private $fallbackDirsPsr0 = array();
53
+
54
+ private $useIncludePath = false;
55
+ private $classMap = array();
56
+ private $classMapAuthoritative = false;
57
+ private $missingClasses = array();
58
+ private $apcuPrefix;
59
+
60
+ public function getPrefixes()
61
+ {
62
+ if (!empty($this->prefixesPsr0)) {
63
+ return call_user_func_array('array_merge', $this->prefixesPsr0);
64
+ }
65
+
66
+ return array();
67
+ }
68
+
69
+ public function getPrefixesPsr4()
70
+ {
71
+ return $this->prefixDirsPsr4;
72
+ }
73
+
74
+ public function getFallbackDirs()
75
+ {
76
+ return $this->fallbackDirsPsr0;
77
+ }
78
+
79
+ public function getFallbackDirsPsr4()
80
+ {
81
+ return $this->fallbackDirsPsr4;
82
+ }
83
+
84
+ public function getClassMap()
85
+ {
86
+ return $this->classMap;
87
+ }
88
+
89
+ /**
90
+ * @param array $classMap Class to filename map
91
+ */
92
+ public function addClassMap(array $classMap)
93
+ {
94
+ if ($this->classMap) {
95
+ $this->classMap = array_merge($this->classMap, $classMap);
96
+ } else {
97
+ $this->classMap = $classMap;
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Registers a set of PSR-0 directories for a given prefix, either
103
+ * appending or prepending to the ones previously set for this prefix.
104
+ *
105
+ * @param string $prefix The prefix
106
+ * @param array|string $paths The PSR-0 root directories
107
+ * @param bool $prepend Whether to prepend the directories
108
+ */
109
+ public function add($prefix, $paths, $prepend = false)
110
+ {
111
+ if (!$prefix) {
112
+ if ($prepend) {
113
+ $this->fallbackDirsPsr0 = array_merge(
114
+ (array) $paths,
115
+ $this->fallbackDirsPsr0
116
+ );
117
+ } else {
118
+ $this->fallbackDirsPsr0 = array_merge(
119
+ $this->fallbackDirsPsr0,
120
+ (array) $paths
121
+ );
122
+ }
123
+
124
+ return;
125
+ }
126
+
127
+ $first = $prefix[0];
128
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
129
+ $this->prefixesPsr0[$first][$prefix] = (array) $paths;
130
+
131
+ return;
132
+ }
133
+ if ($prepend) {
134
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
135
+ (array) $paths,
136
+ $this->prefixesPsr0[$first][$prefix]
137
+ );
138
+ } else {
139
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
140
+ $this->prefixesPsr0[$first][$prefix],
141
+ (array) $paths
142
+ );
143
+ }
144
+ }
145
+
146
+ /**
147
+ * Registers a set of PSR-4 directories for a given namespace, either
148
+ * appending or prepending to the ones previously set for this namespace.
149
+ *
150
+ * @param string $prefix The prefix/namespace, with trailing '\\'
151
+ * @param array|string $paths The PSR-4 base directories
152
+ * @param bool $prepend Whether to prepend the directories
153
+ *
154
+ * @throws \InvalidArgumentException
155
+ */
156
+ public function addPsr4($prefix, $paths, $prepend = false)
157
+ {
158
+ if (!$prefix) {
159
+ // Register directories for the root namespace.
160
+ if ($prepend) {
161
+ $this->fallbackDirsPsr4 = array_merge(
162
+ (array) $paths,
163
+ $this->fallbackDirsPsr4
164
+ );
165
+ } else {
166
+ $this->fallbackDirsPsr4 = array_merge(
167
+ $this->fallbackDirsPsr4,
168
+ (array) $paths
169
+ );
170
+ }
171
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
172
+ // Register directories for a new namespace.
173
+ $length = strlen($prefix);
174
+ if ('\\' !== $prefix[$length - 1]) {
175
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
176
+ }
177
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
178
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
179
+ } elseif ($prepend) {
180
+ // Prepend directories for an already registered namespace.
181
+ $this->prefixDirsPsr4[$prefix] = array_merge(
182
+ (array) $paths,
183
+ $this->prefixDirsPsr4[$prefix]
184
+ );
185
+ } else {
186
+ // Append directories for an already registered namespace.
187
+ $this->prefixDirsPsr4[$prefix] = array_merge(
188
+ $this->prefixDirsPsr4[$prefix],
189
+ (array) $paths
190
+ );
191
+ }
192
+ }
193
+
194
+ /**
195
+ * Registers a set of PSR-0 directories for a given prefix,
196
+ * replacing any others previously set for this prefix.
197
+ *
198
+ * @param string $prefix The prefix
199
+ * @param array|string $paths The PSR-0 base directories
200
+ */
201
+ public function set($prefix, $paths)
202
+ {
203
+ if (!$prefix) {
204
+ $this->fallbackDirsPsr0 = (array) $paths;
205
+ } else {
206
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
207
+ }
208
+ }
209
+
210
+ /**
211
+ * Registers a set of PSR-4 directories for a given namespace,
212
+ * replacing any others previously set for this namespace.
213
+ *
214
+ * @param string $prefix The prefix/namespace, with trailing '\\'
215
+ * @param array|string $paths The PSR-4 base directories
216
+ *
217
+ * @throws \InvalidArgumentException
218
+ */
219
+ public function setPsr4($prefix, $paths)
220
+ {
221
+ if (!$prefix) {
222
+ $this->fallbackDirsPsr4 = (array) $paths;
223
+ } else {
224
+ $length = strlen($prefix);
225
+ if ('\\' !== $prefix[$length - 1]) {
226
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
227
+ }
228
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
229
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
230
+ }
231
+ }
232
+
233
+ /**
234
+ * Turns on searching the include path for class files.
235
+ *
236
+ * @param bool $useIncludePath
237
+ */
238
+ public function setUseIncludePath($useIncludePath)
239
+ {
240
+ $this->useIncludePath = $useIncludePath;
241
+ }
242
+
243
+ /**
244
+ * Can be used to check if the autoloader uses the include path to check
245
+ * for classes.
246
+ *
247
+ * @return bool
248
+ */
249
+ public function getUseIncludePath()
250
+ {
251
+ return $this->useIncludePath;
252
+ }
253
+
254
+ /**
255
+ * Turns off searching the prefix and fallback directories for classes
256
+ * that have not been registered with the class map.
257
+ *
258
+ * @param bool $classMapAuthoritative
259
+ */
260
+ public function setClassMapAuthoritative($classMapAuthoritative)
261
+ {
262
+ $this->classMapAuthoritative = $classMapAuthoritative;
263
+ }
264
+
265
+ /**
266
+ * Should class lookup fail if not found in the current class map?
267
+ *
268
+ * @return bool
269
+ */
270
+ public function isClassMapAuthoritative()
271
+ {
272
+ return $this->classMapAuthoritative;
273
+ }
274
+
275
+ /**
276
+ * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
277
+ *
278
+ * @param string|null $apcuPrefix
279
+ */
280
+ public function setApcuPrefix($apcuPrefix)
281
+ {
282
+ $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
283
+ }
284
+
285
+ /**
286
+ * The APCu prefix in use, or null if APCu caching is not enabled.
287
+ *
288
+ * @return string|null
289
+ */
290
+ public function getApcuPrefix()
291
+ {
292
+ return $this->apcuPrefix;
293
+ }
294
+
295
+ /**
296
+ * Registers this instance as an autoloader.
297
+ *
298
+ * @param bool $prepend Whether to prepend the autoloader or not
299
+ */
300
+ public function register($prepend = false)
301
+ {
302
+ spl_autoload_register(array($this, 'loadClass'), true, $prepend);
303
+ }
304
+
305
+ /**
306
+ * Unregisters this instance as an autoloader.
307
+ */
308
+ public function unregister()
309
+ {
310
+ spl_autoload_unregister(array($this, 'loadClass'));
311
+ }
312
+
313
+ /**
314
+ * Loads the given class or interface.
315
+ *
316
+ * @param string $class The name of the class
317
+ * @return bool|null True if loaded, null otherwise
318
+ */
319
+ public function loadClass($class)
320
+ {
321
+ if ($file = $this->findFile($class)) {
322
+ includeFile($file);
323
+
324
+ return true;
325
+ }
326
+ }
327
+
328
+ /**
329
+ * Finds the path to the file where the class is defined.
330
+ *
331
+ * @param string $class The name of the class
332
+ *
333
+ * @return string|false The path if found, false otherwise
334
+ */
335
+ public function findFile($class)
336
+ {
337
+ // class map lookup
338
+ if (isset($this->classMap[$class])) {
339
+ return $this->classMap[$class];
340
+ }
341
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
342
+ return false;
343
+ }
344
+ if (null !== $this->apcuPrefix) {
345
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
346
+ if ($hit) {
347
+ return $file;
348
+ }
349
+ }
350
+
351
+ $file = $this->findFileWithExtension($class, '.php');
352
+
353
+ // Search for Hack files if we are running on HHVM
354
+ if (false === $file && defined('HHVM_VERSION')) {
355
+ $file = $this->findFileWithExtension($class, '.hh');
356
+ }
357
+
358
+ if (null !== $this->apcuPrefix) {
359
+ apcu_add($this->apcuPrefix.$class, $file);
360
+ }
361
+
362
+ if (false === $file) {
363
+ // Remember that this class does not exist.
364
+ $this->missingClasses[$class] = true;
365
+ }
366
+
367
+ return $file;
368
+ }
369
+
370
+ private function findFileWithExtension($class, $ext)
371
+ {
372
+ // PSR-4 lookup
373
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
374
+
375
+ $first = $class[0];
376
+ if (isset($this->prefixLengthsPsr4[$first])) {
377
+ $subPath = $class;
378
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
379
+ $subPath = substr($subPath, 0, $lastPos);
380
+ $search = $subPath.'\\';
381
+ if (isset($this->prefixDirsPsr4[$search])) {
382
+ $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
383
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
384
+ if (file_exists($file = $dir . $pathEnd)) {
385
+ return $file;
386
+ }
387
+ }
388
+ }
389
+ }
390
+ }
391
+
392
+ // PSR-4 fallback dirs
393
+ foreach ($this->fallbackDirsPsr4 as $dir) {
394
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
395
+ return $file;
396
+ }
397
+ }
398
+
399
+ // PSR-0 lookup
400
+ if (false !== $pos = strrpos($class, '\\')) {
401
+ // namespaced class name
402
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
403
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
404
+ } else {
405
+ // PEAR-like class name
406
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
407
+ }
408
+
409
+ if (isset($this->prefixesPsr0[$first])) {
410
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
411
+ if (0 === strpos($class, $prefix)) {
412
+ foreach ($dirs as $dir) {
413
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
414
+ return $file;
415
+ }
416
+ }
417
+ }
418
+ }
419
+ }
420
+
421
+ // PSR-0 fallback dirs
422
+ foreach ($this->fallbackDirsPsr0 as $dir) {
423
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
424
+ return $file;
425
+ }
426
+ }
427
+
428
+ // PSR-0 include paths.
429
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
430
+ return $file;
431
+ }
432
+
433
+ return false;
434
+ }
435
+ }
436
+
437
+ /**
438
+ * Scope isolated include.
439
+ *
440
+ * Prevents access to $this/self from included files.
441
+ */
442
+ function includeFile($file)
443
+ {
444
+ include $file;
445
+ }
PHPSpreadsheet/vendor/composer/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
-
2
- Copyright (c) Nils Adermann, Jordi Boggiano
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining a copy
5
- of this software and associated documentation files (the "Software"), to deal
6
- in the Software without restriction, including without limitation the rights
7
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the Software is furnished
9
- to do so, subject to the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be included in all
12
- copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- THE SOFTWARE.
21
-
1
+
2
+ Copyright (c) Nils Adermann, Jordi Boggiano
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is furnished
9
+ to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ THE SOFTWARE.
21
+
PHPSpreadsheet/vendor/composer/autoload_classmap.php CHANGED
@@ -1,9 +1,9 @@
1
- <?php
2
-
3
- // autoload_classmap.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- );
1
+ <?php
2
+
3
+ // autoload_classmap.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ );
PHPSpreadsheet/vendor/composer/autoload_namespaces.php CHANGED
@@ -1,9 +1,9 @@
1
- <?php
2
-
3
- // autoload_namespaces.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- );
1
+ <?php
2
+
3
+ // autoload_namespaces.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ );
PHPSpreadsheet/vendor/composer/autoload_psr4.php CHANGED
@@ -1,11 +1,11 @@
1
- <?php
2
-
3
- // autoload_psr4.php @generated by Composer
4
-
5
- $vendorDir = dirname(dirname(__FILE__));
6
- $baseDir = dirname($vendorDir);
7
-
8
- return array(
9
- 'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
10
- 'PhpOffice\\PhpSpreadsheet\\' => array($vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet'),
11
- );
1
+ <?php
2
+
3
+ // autoload_psr4.php @generated by Composer
4
+
5
+ $vendorDir = dirname(dirname(__FILE__));
6
+ $baseDir = dirname($vendorDir);
7
+
8
+ return array(
9
+ 'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
10
+ 'PhpOffice\\PhpSpreadsheet\\' => array($vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet'),
11
+ );
PHPSpreadsheet/vendor/composer/autoload_real.php CHANGED
@@ -1,52 +1,52 @@
1
- <?php
2
-
3
- // autoload_real.php @generated by Composer
4
-
5
- class ComposerAutoloaderInit4618f5c41cf5e27cc7908556f031e4d4
6
- {
7
- private static $loader;
8
-
9
- public static function loadClassLoader($class)
10
- {
11
- if ('Composer\Autoload\ClassLoader' === $class) {
12
- require __DIR__ . '/ClassLoader.php';
13
- }
14
- }
15
-
16
- public static function getLoader()
17
- {
18
- if (null !== self::$loader) {
19
- return self::$loader;
20
- }
21
-
22
- spl_autoload_register(array('ComposerAutoloaderInit4618f5c41cf5e27cc7908556f031e4d4', 'loadClassLoader'), true, true);
23
- self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit4618f5c41cf5e27cc7908556f031e4d4', 'loadClassLoader'));
25
-
26
- $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
- if ($useStaticLoader) {
28
- require_once __DIR__ . '/autoload_static.php';
29
-
30
- call_user_func(\Composer\Autoload\ComposerStaticInit4618f5c41cf5e27cc7908556f031e4d4::getInitializer($loader));
31
- } else {
32
- $map = require __DIR__ . '/autoload_namespaces.php';
33
- foreach ($map as $namespace => $path) {
34
- $loader->set($namespace, $path);
35
- }
36
-
37
- $map = require __DIR__ . '/autoload_psr4.php';
38
- foreach ($map as $namespace => $path) {
39
- $loader->setPsr4($namespace, $path);
40
- }
41
-
42
- $classMap = require __DIR__ . '/autoload_classmap.php';
43
- if ($classMap) {
44
- $loader->addClassMap($classMap);
45
- }
46
- }
47
-
48
- $loader->register(true);
49
-
50
- return $loader;
51
- }
52
- }
1
+ <?php
2
+
3
+ // autoload_real.php @generated by Composer
4
+
5
+ class ComposerAutoloaderInit4618f5c41cf5e27cc7908556f031e4d4
6
+ {
7
+ private static $loader;
8
+
9
+ public static function loadClassLoader($class)
10
+ {
11
+ if ('Composer\Autoload\ClassLoader' === $class) {
12
+ require __DIR__ . '/ClassLoader.php';
13
+ }
14
+ }
15
+
16
+ public static function getLoader()
17
+ {
18
+ if (null !== self::$loader) {
19
+ return self::$loader;
20
+ }
21
+
22
+ spl_autoload_register(array('ComposerAutoloaderInit4618f5c41cf5e27cc7908556f031e4d4', 'loadClassLoader'), true, true);
23
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit4618f5c41cf5e27cc7908556f031e4d4', 'loadClassLoader'));
25
+
26
+ $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
+ if ($useStaticLoader) {
28
+ require_once __DIR__ . '/autoload_static.php';
29
+
30
+ call_user_func(\Composer\Autoload\ComposerStaticInit4618f5c41cf5e27cc7908556f031e4d4::getInitializer($loader));
31
+ } else {
32
+ $map = require __DIR__ . '/autoload_namespaces.php';
33
+ foreach ($map as $namespace => $path) {
34
+ $loader->set($namespace, $path);
35
+ }
36
+
37
+ $map = require __DIR__ . '/autoload_psr4.php';
38
+ foreach ($map as $namespace => $path) {
39
+ $loader->setPsr4($namespace, $path);
40
+ }
41
+
42
+ $classMap = require __DIR__ . '/autoload_classmap.php';
43
+ if ($classMap) {
44
+ $loader->addClassMap($classMap);
45
+ }
46
+ }
47
+
48
+ $loader->register(true);
49
+
50
+ return $loader;
51
+ }
52
+ }
PHPSpreadsheet/vendor/composer/autoload_static.php CHANGED
@@ -1,36 +1,36 @@
1
- <?php
2
-
3
- // autoload_static.php @generated by Composer
4
-
5
- namespace Composer\Autoload;
6
-
7
- class ComposerStaticInit4618f5c41cf5e27cc7908556f031e4d4
8
- {
9
- public static $prefixLengthsPsr4 = array (
10
- 'P' =>
11
- array (
12
- 'Psr\\SimpleCache\\' => 16,
13
- 'PhpOffice\\PhpSpreadsheet\\' => 25,
14
- ),
15
- );
16
-
17
- public static $prefixDirsPsr4 = array (
18
- 'Psr\\SimpleCache\\' =>
19
- array (
20
- 0 => __DIR__ . '/..' . '/psr/simple-cache/src',
21
- ),
22
- 'PhpOffice\\PhpSpreadsheet\\' =>
23
- array (
24
- 0 => __DIR__ . '/..' . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet',
25
- ),
26
- );
27
-
28
- public static function getInitializer(ClassLoader $loader)
29
- {
30
- return \Closure::bind(function () use ($loader) {
31
- $loader->prefixLengthsPsr4 = ComposerStaticInit4618f5c41cf5e27cc7908556f031e4d4::$prefixLengthsPsr4;
32
- $loader->prefixDirsPsr4 = ComposerStaticInit4618f5c41cf5e27cc7908556f031e4d4::$prefixDirsPsr4;
33
-
34
- }, null, ClassLoader::class);
35
- }
36
- }
1
+ <?php
2
+
3
+ // autoload_static.php @generated by Composer
4
+
5
+ namespace Composer\Autoload;
6
+
7
+ class ComposerStaticInit4618f5c41cf5e27cc7908556f031e4d4
8
+ {
9
+ public static $prefixLengthsPsr4 = array (
10
+ 'P' =>
11
+ array (
12
+ 'Psr\\SimpleCache\\' => 16,
13
+ 'PhpOffice\\PhpSpreadsheet\\' => 25,
14
+ ),
15
+ );
16
+
17
+ public static $prefixDirsPsr4 = array (
18
+ 'Psr\\SimpleCache\\' =>
19
+ array (
20
+ 0 => __DIR__ . '/..' . '/psr/simple-cache/src',
21
+ ),
22
+ 'PhpOffice\\PhpSpreadsheet\\' =>
23
+ array (
24
+ 0 => __DIR__ . '/..' . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet',
25
+ ),
26
+ );
27
+
28
+ public static function getInitializer(ClassLoader $loader)
29
+ {
30
+ return \Closure::bind(function () use ($loader) {
31
+ $loader->prefixLengthsPsr4 = ComposerStaticInit4618f5c41cf5e27cc7908556f031e4d4::$prefixLengthsPsr4;
32
+ $loader->prefixDirsPsr4 = ComposerStaticInit4618f5c41cf5e27cc7908556f031e4d4::$prefixDirsPsr4;
33
+
34
+ }, null, ClassLoader::class);
35
+ }
36
+ }
PHPSpreadsheet/vendor/composer/installed.json CHANGED
@@ -1,142 +1,142 @@
1
- [
2
- {
3
- "name": "phpoffice/phpspreadsheet",
4
- "version": "1.1.0",
5
- "version_normalized": "1.1.0.0",
6
- "source": {
7
- "type": "git",
8
- "url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
9
- "reference": "a2771e562e3a17c0d512d2009e38fd628beece90"
10
- },
11
- "dist": {
12
- "type": "zip",
13
- "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/a2771e562e3a17c0d512d2009e38fd628beece90",
14
- "reference": "a2771e562e3a17c0d512d2009e38fd628beece90",
15
- "shasum": ""
16
- },
17
- "require": {
18
- "ext-ctype": "*",
19
- "ext-dom": "*",
20
- "ext-gd": "*",
21
- "ext-iconv": "*",
22
- "ext-libxml": "*",
23
- "ext-mbstring": "*",
24
- "ext-simplexml": "*",
25
- "ext-xml": "*",
26
- "ext-xmlreader": "*",
27
- "ext-xmlwriter": "*",
28
- "ext-zip": "*",
29
- "ext-zlib": "*",
30
- "php": "^5.6|^7.0",
31
- "psr/simple-cache": "^1.0"
32
- },
33
- "require-dev": {
34
- "dompdf/dompdf": "^0.8.0",
35
- "friendsofphp/php-cs-fixer": "@stable",
36
- "jpgraph/jpgraph": "^4.0",
37
- "mpdf/mpdf": "^7.0.0",
38
- "phpunit/phpunit": "^5.7",
39
- "squizlabs/php_codesniffer": "^2.7",
40
- "tecnickcom/tcpdf": "^6.2"
41
- },
42
- "suggest": {
43
- "dompdf/dompdf": "Option for rendering PDF with PDF Writer",
44
- "ext-dom": "Option to read and write HTML files",
45
- "ext-gd": "Required for exact column width autocalculation",
46
- "jpgraph/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers",
47
- "mpdf/mpdf": "Option for rendering PDF with PDF Writer",
48
- "tecnick.com/tcpdf": "Option for rendering PDF with PDF Writer"
49
- },
50
- "time": "2018-01-28T12:37:15+00:00",
51
- "type": "library",
52
- "installation-source": "dist",
53
- "autoload": {
54
- "psr-4": {
55
- "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet"
56
- }
57
- },
58
- "notification-url": "https://packagist.org/downloads/",
59
- "license": [
60
- "LGPL-2.1"
61
- ],
62
- "authors": [
63
- {
64
- "name": "Maarten Balliauw",
65
- "homepage": "http://blog.maartenballiauw.be"
66
- },
67
- {
68
- "name": "Erik Tilt"
69
- },
70
- {
71
- "name": "Franck Lefevre",
72
- "homepage": "http://rootslabs.net"
73
- },
74
- {
75
- "name": "Mark Baker",
76
- "homepage": "http://markbakeruk.net"
77
- }
78
- ],
79
- "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
80
- "homepage": "https://github.com/PHPOffice/PhpSpreadsheet",
81
- "keywords": [
82
- "OpenXML",
83
- "excel",
84
- "gnumeric",
85
- "ods",
86
- "php",
87
- "spreadsheet",
88
- "xls",
89
- "xlsx"
90
- ]
91
- },
92
- {
93
- "name": "psr/simple-cache",
94
- "version": "1.0.0",
95
- "version_normalized": "1.0.0.0",
96
- "source": {
97
- "type": "git",
98
- "url": "https://github.com/php-fig/simple-cache.git",
99
- "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24"
100
- },
101
- "dist": {
102
- "type": "zip",
103
- "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/753fa598e8f3b9966c886fe13f370baa45ef0e24",
104
- "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24",
105
- "shasum": ""
106
- },
107
- "require": {
108
- "php": ">=5.3.0"
109
- },
110
- "time": "2017-01-02T13:31:39+00:00",
111
- "type": "library",
112
- "extra": {
113
- "branch-alias": {
114
- "dev-master": "1.0.x-dev"
115
- }
116
- },
117
- "installation-source": "dist",
118
- "autoload": {
119
- "psr-4": {
120
- "Psr\\SimpleCache\\": "src/"
121
- }
122
- },
123
- "notification-url": "https://packagist.org/downloads/",
124
- "license": [
125
- "MIT"
126
- ],
127
- "authors": [
128
- {
129
- "name": "PHP-FIG",
130
- "homepage": "http://www.php-fig.org/"
131
- }
132
- ],
133
- "description": "Common interfaces for simple caching",
134
- "keywords": [
135
- "cache",
136
- "caching",
137
- "psr",
138
- "psr-16",
139
- "simple-cache"
140
- ]
141
- }
142
- ]
1
+ [
2
+ {
3
+ "name": "phpoffice/phpspreadsheet",
4
+ "version": "1.1.0",
5
+ "version_normalized": "1.1.0.0",
6
+ "source": {
7
+ "type": "git",
8
+ "url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
9
+ "reference": "a2771e562e3a17c0d512d2009e38fd628beece90"
10
+ },
11
+ "dist": {
12
+ "type": "zip",
13
+ "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/a2771e562e3a17c0d512d2009e38fd628beece90",
14
+ "reference": "a2771e562e3a17c0d512d2009e38fd628beece90",
15
+ "shasum": ""
16
+ },
17
+ "require": {
18
+ "ext-ctype": "*",
19
+ "ext-dom": "*",
20
+ "ext-gd": "*",
21
+ "ext-iconv": "*",
22
+ "ext-libxml": "*",
23
+ "ext-mbstring": "*",
24
+ "ext-simplexml": "*",
25
+ "ext-xml": "*",
26
+ "ext-xmlreader": "*",
27
+ "ext-xmlwriter": "*",
28
+ "ext-zip": "*",
29
+ "ext-zlib": "*",
30
+ "php": "^5.6|^7.0",
31
+ "psr/simple-cache": "^1.0"
32
+ },
33
+ "require-dev": {
34
+ "dompdf/dompdf": "^0.8.0",
35
+ "friendsofphp/php-cs-fixer": "@stable",
36
+ "jpgraph/jpgraph": "^4.0",
37
+ "mpdf/mpdf": "^7.0.0",
38
+ "phpunit/phpunit": "^5.7",
39
+ "squizlabs/php_codesniffer": "^2.7",
40
+ "tecnickcom/tcpdf": "^6.2"
41
+ },
42
+ "suggest": {
43
+ "dompdf/dompdf": "Option for rendering PDF with PDF Writer",
44
+ "ext-dom": "Option to read and write HTML files",
45
+ "ext-gd": "Required for exact column width autocalculation",
46
+ "jpgraph/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers",
47
+ "mpdf/mpdf": "Option for rendering PDF with PDF Writer",
48
+ "tecnick.com/tcpdf": "Option for rendering PDF with PDF Writer"
49
+ },
50
+ "time": "2018-01-28T12:37:15+00:00",
51
+ "type": "library",
52
+ "installation-source": "dist",
53
+ "autoload": {
54
+ "psr-4": {
55
+ "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet"
56
+ }
57
+ },
58
+ "notification-url": "https://packagist.org/downloads/",
59
+ "license": [
60
+ "LGPL-2.1"
61
+ ],
62
+ "authors": [
63
+ {
64
+ "name": "Maarten Balliauw",
65
+ "homepage": "http://blog.maartenballiauw.be"
66
+ },
67
+ {
68
+ "name": "Erik Tilt"
69
+ },
70
+ {
71
+ "name": "Franck Lefevre",
72
+ "homepage": "http://rootslabs.net"
73
+ },
74
+ {
75
+ "name": "Mark Baker",
76
+ "homepage": "http://markbakeruk.net"
77
+ }
78
+ ],
79
+ "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
80
+ "homepage": "https://github.com/PHPOffice/PhpSpreadsheet",
81
+ "keywords": [
82
+ "OpenXML",
83
+ "excel",
84
+ "gnumeric",
85
+ "ods",
86
+ "php",
87
+ "spreadsheet",
88
+ "xls",
89
+ "xlsx"
90
+ ]
91
+ },
92
+ {
93
+ "name": "psr/simple-cache",
94
+ "version": "1.0.0",
95
+ "version_normalized": "1.0.0.0",
96
+ "source": {
97
+ "type": "git",
98
+ "url": "https://github.com/php-fig/simple-cache.git",
99
+ "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24"
100
+ },
101
+ "dist": {
102
+ "type": "zip",
103
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/753fa598e8f3b9966c886fe13f370baa45ef0e24",
104
+ "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24",
105
+ "shasum": ""
106
+ },
107
+ "require": {
108
+ "php": ">=5.3.0"
109
+ },
110
+ "time": "2017-01-02T13:31:39+00:00",
111
+ "type": "library",
112
+ "extra": {
113
+ "branch-alias": {
114
+ "dev-master": "1.0.x-dev"
115
+ }
116
+ },
117
+ "installation-source": "dist",
118
+ "autoload": {
119
+ "psr-4": {
120
+ "Psr\\SimpleCache\\": "src/"
121
+ }
122
+ },
123
+ "notification-url": "https://packagist.org/downloads/",
124
+ "license": [
125
+ "MIT"
126
+ ],
127
+ "authors": [
128
+ {
129
+ "name": "PHP-FIG",
130
+ "homepage": "http://www.php-fig.org/"
131
+ }
132
+ ],
133
+ "description": "Common interfaces for simple caching",
134
+ "keywords": [
135
+ "cache",
136
+ "caching",
137
+ "psr",
138
+ "psr-16",
139
+ "simple-cache"
140
+ ]
141
+ }
142
+ ]
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.gitattributes CHANGED
@@ -1,2 +1,2 @@
1
- /tests export-ignore
2
- README.md export-ignore
1
+ /tests export-ignore
2
+ README.md export-ignore
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.github/ISSUE_TEMPLATE.md CHANGED
@@ -1,31 +1,31 @@
1
- This is:
2
-
3
- ```
4
- - [ ] a bug report
5
- - [ ] a feature request
6
- - [ ] **not** a usage question (ask them on https://stackoverflow.com/questions/tagged/phpspreadsheet or https://gitter.im/PHPOffice/PhpSpreadsheet)
7
- ```
8
-
9
- ### What is the expected behavior?
10
-
11
-
12
- ### What is the current behavior?
13
-
14
-
15
- ### What are the steps to reproduce?
16
-
17
- Please provide a [Minimal, Complete, and Verifiable example](http://stackoverflow.com/help/mcve) of code that exhibits the issue without relying on an external Excel file or a web server:
18
-
19
- ```php
20
- <?php
21
-
22
- require __DIR__ . '/vendor/autoload.php';
23
-
24
- // Create new Spreadsheet object
25
- $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
26
-
27
- // add code that show the issue here...
28
- ```
29
-
30
-
31
- ### Which versions of PhpSpreadsheet and PHP are affected?
1
+ This is:
2
+
3
+ ```
4
+ - [ ] a bug report
5
+ - [ ] a feature request
6
+ - [ ] **not** a usage question (ask them on https://stackoverflow.com/questions/tagged/phpspreadsheet or https://gitter.im/PHPOffice/PhpSpreadsheet)
7
+ ```
8
+
9
+ ### What is the expected behavior?
10
+
11
+
12
+ ### What is the current behavior?
13
+
14
+
15
+ ### What are the steps to reproduce?
16
+
17
+ Please provide a [Minimal, Complete, and Verifiable example](http://stackoverflow.com/help/mcve) of code that exhibits the issue without relying on an external Excel file or a web server:
18
+
19
+ ```php
20
+ <?php
21
+
22
+ require __DIR__ . '/vendor/autoload.php';
23
+
24
+ // Create new Spreadsheet object
25
+ $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
26
+
27
+ // add code that show the issue here...
28
+ ```
29
+
30
+
31
+ ### Which versions of PhpSpreadsheet and PHP are affected?
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.github/PULL_REQUEST_TEMPLATE.md CHANGED
@@ -1,16 +1,16 @@
1
- This is:
2
-
3
- ```
4
- - [ ] a bugfix
5
- - [ ] a new feature
6
- ```
7
-
8
- Checklist:
9
-
10
- - [ ] Changes are covered by unit tests
11
- - [ ] Code style is respected
12
- - [ ] Commit message explains **why** the change is made (see https://github.com/erlang/otp/wiki/Writing-good-commit-messages)
13
- - [ ] CHANGELOG.md contains a short summary of the change
14
- - [ ] Documentation is updated as necessary
15
-
16
- ### Why this change is needed?
1
+ This is:
2
+
3
+ ```
4
+ - [ ] a bugfix
5
+ - [ ] a new feature
6
+ ```
7
+
8
+ Checklist:
9
+
10
+ - [ ] Changes are covered by unit tests
11
+ - [ ] Code style is respected
12
+ - [ ] Commit message explains **why** the change is made (see https://github.com/erlang/otp/wiki/Writing-good-commit-messages)
13
+ - [ ] CHANGELOG.md contains a short summary of the change
14
+ - [ ] Documentation is updated as necessary
15
+
16
+ ### Why this change is needed?
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.github/stale.yml CHANGED
@@ -1,22 +1,22 @@
1
- # Number of days of inactivity before an issue becomes stale
2
- daysUntilStale: 60
3
- # Number of days of inactivity before a stale issue is closed
4
- daysUntilClose: 7
5
- # Issues with these labels will never be considered stale
6
- exemptLabels:
7
- - pinned
8
- - security
9
- # Label to use when marking an issue as stale
10
- staleLabel: stale
11
- # Comment to post when marking an issue as stale. Set to `false` to disable
12
- markComment: >
13
- This issue has been automatically marked as stale because it has not had
14
- recent activity. It will be closed if no further activity occurs.
15
-
16
- If this is still an issue for you, please try to help by debugging it
17
- further and sharing your results.
18
-
19
- Thank you for your contributions.
20
-
21
- # Comment to post when closing a stale issue. Set to `false` to disable
22
- closeComment: false
1
+ # Number of days of inactivity before an issue becomes stale
2
+ daysUntilStale: 60
3
+ # Number of days of inactivity before a stale issue is closed
4
+ daysUntilClose: 7
5
+ # Issues with these labels will never be considered stale
6
+ exemptLabels:
7
+ - pinned
8
+ - security
9
+ # Label to use when marking an issue as stale
10
+ staleLabel: stale
11
+ # Comment to post when marking an issue as stale. Set to `false` to disable
12
+ markComment: >
13
+ This issue has been automatically marked as stale because it has not had
14
+ recent activity. It will be closed if no further activity occurs.
15
+
16
+ If this is still an issue for you, please try to help by debugging it
17
+ further and sharing your results.
18
+
19
+ Thank you for your contributions.
20
+
21
+ # Comment to post when closing a stale issue. Set to `false` to disable
22
+ closeComment: false
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.github/support.yml CHANGED
@@ -1,15 +1,15 @@
1
- # Label used to mark issues as support requests
2
- supportLabel: question
3
- # Comment to post on issues marked as support requests. Add a link
4
- # to a support page, or set to `false` to disable
5
- supportComment: >
6
- This looks like a support question. Please ask your support questions on
7
- [StackOverflow](http://stackoverflow.com/questions/tagged/phpspreadsheet),
8
- or [Gitter](https://gitter.im/PHPOffice/PhpSpreadsheet).
9
-
10
- Thank you for your contributions.
11
-
12
- # Whether to close issues marked as support requests
13
- close: true
14
- # Whether to lock issues marked as support requests
15
- lock: false
1
+ # Label used to mark issues as support requests
2
+ supportLabel: question
3
+ # Comment to post on issues marked as support requests. Add a link
4
+ # to a support page, or set to `false` to disable
5
+ supportComment: >
6
+ This looks like a support question. Please ask your support questions on
7
+ [StackOverflow](http://stackoverflow.com/questions/tagged/phpspreadsheet),
8
+ or [Gitter](https://gitter.im/PHPOffice/PhpSpreadsheet).
9
+
10
+ Thank you for your contributions.
11
+
12
+ # Whether to close issues marked as support requests
13
+ close: true
14
+ # Whether to lock issues marked as support requests
15
+ lock: false
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.gitignore CHANGED
@@ -1,11 +1,11 @@
1
- /tests/codeCoverage
2
- /analysis
3
- /vendor/
4
- /phpunit.xml
5
- /.php_cs.cache
6
-
7
- ## IDE support
8
- *.buildpath
9
- *.project
10
- /.settings
11
- /.idea
1
+ /tests/codeCoverage
2
+ /analysis
3
+ /vendor/
4
+ /phpunit.xml
5
+ /.php_cs.cache
6
+
7
+ ## IDE support
8
+ *.buildpath
9
+ *.project
10
+ /.settings
11
+ /.idea
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.php_cs.dist CHANGED
@@ -1,181 +1,181 @@
1
- <?php
2
-
3
- $finder = PhpCsFixer\Finder::create()
4
- ->exclude('vendor')
5
- ->in('samples')
6
- ->in('src')
7
- ->in('tests');
8
-
9
- return PhpCsFixer\Config::create()
10
- ->setRiskyAllowed(true)
11
- ->setFinder($finder)
12
- ->setRules([
13
- 'align_multiline_comment' => true,
14
- 'array_syntax' => ['syntax' => 'short'],
15
- 'backtick_to_shell_exec' => true,
16
- 'binary_operator_spaces' => true,
17
- 'blank_line_after_namespace' => true,
18
- 'blank_line_after_opening_tag' => true,
19
- 'blank_line_before_statement' => true,
20
- 'braces' => true,
21
- 'cast_spaces' => true,
22
- 'class_attributes_separation' => ['elements' => ['method', 'property']], // const are often grouped with other related const
23
- 'class_definition' => true,
24
- 'class_keyword_remove' => false, // ::class keyword gives us beter support in IDE
25
- 'combine_consecutive_issets' => true,
26
- 'combine_consecutive_unsets' => true,
27
- 'compact_nullable_typehint' => true,
28
- 'concat_space' => ['spacing' => 'one'],
29
- 'declare_equal_normalize' => true,
30
- 'declare_strict_types' => false, // Too early to adopt strict types
31
- 'dir_constant' => true,
32
- 'doctrine_annotation_array_assignment' => true,
33
- 'doctrine_annotation_braces' => true,
34
- 'doctrine_annotation_indentation' => true,
35
- 'doctrine_annotation_spaces' => true,
36
- 'elseif' => true,
37
- 'encoding' => true,
38
- 'ereg_to_preg' => true,
39
- 'escape_implicit_backslashes' => true,
40
- 'explicit_indirect_variable' => false, // I feel it makes the code actually harder to read
41
- 'explicit_string_variable' => false, // I feel it makes the code actually harder to read
42
- 'final_internal_class' => true,
43
- 'full_opening_tag' => true,
44
- 'function_declaration' => true,
45
- 'function_to_constant' => true,
46
- 'function_typehint_space' => true,
47
- 'general_phpdoc_annotation_remove' => false, // No use for that
48
- 'hash_to_slash_comment' => true,
49
- 'header_comment' => false, // We don't use common header in all our files
50
- 'heredoc_to_nowdoc' => false, // Not sure about this one
51
- 'include' => true,
52
- 'increment_style' => true,
53
- 'indentation_type' => true,
54
- 'is_null' => ['use_yoda_style' => false],
55
- 'linebreak_after_opening_tag' => true,
56
- 'line_ending' => true,
57
- 'list_syntax' => ['syntax' => 'long'], // Stay compatiblew with PHP 5.6
58
- 'lowercase_cast' => true,
59
- 'lowercase_constants' => true,
60
- 'lowercase_keywords' => true,
61
- 'magic_constant_casing' => true,
62
- 'mb_str_functions' => false, // No, too dangerous to change that
63
- 'method_argument_space' => true,
64
- 'method_chaining_indentation' => true,
65
- 'method_separation' => true,
66
- 'modernize_types_casting' => true,
67
- 'multiline_comment_opening_closing' => true,
68
- 'native_function_casing' => true,
69
- 'native_function_invocation' => false, // This is risky and seems to be micro-optimization that make code uglier so not worth it, at least for now
70
- 'new_with_braces' => true,
71
- 'no_alias_functions' => true,
72
- 'no_blank_lines_after_class_opening' => true,
73
- 'no_blank_lines_after_phpdoc' => true,
74
- 'no_blank_lines_before_namespace' => false, // we want 1 blank line before namespace
75
- 'no_break_comment' => true,
76
- 'no_closing_tag' => true,
77
- 'no_empty_comment' => true,
78
- 'no_empty_phpdoc' => true,
79
- 'no_empty_statement' => true,
80
- 'no_extra_blank_lines' => true,
81
- 'no_homoglyph_names' => true,
82
- 'no_leading_import_slash' => true,
83
- 'no_leading_namespace_whitespace' => true,
84
- 'no_mixed_echo_print' => true,
85
- 'no_multiline_whitespace_around_double_arrow' => true,
86
- 'no_multiline_whitespace_before_semicolons' => true,
87
- 'non_printable_character' => true,
88
- 'no_null_property_initialization' => true,
89
- 'no_php4_constructor' => true,
90
- 'normalize_index_brace' => true,
91
- 'no_short_bool_cast' => true,
92
- 'no_short_echo_tag' => true,
93
- 'no_singleline_whitespace_before_semicolons' => true,
94
- 'no_spaces_after_function_name' => true,
95
- 'no_spaces_around_offset' => true,
96
- 'no_spaces_inside_parenthesis' => true,
97
- 'no_superfluous_elseif' => false, // Might be risky on a huge code base
98
- 'not_operator_with_space' => false, // No we prefer to keep '!' without spaces
99
- 'not_operator_with_successor_space' => false, // idem
100
- 'no_trailing_comma_in_list_call' => true,
101
- 'no_trailing_comma_in_singleline_array' => true,
102
- 'no_trailing_whitespace_in_comment' => true,
103
- 'no_trailing_whitespace' => true,
104
- 'no_unneeded_control_parentheses' => true,
105
- 'no_unneeded_curly_braces' => true,
106
- 'no_unneeded_final_method' => true,
107
- 'no_unreachable_default_argument_value' => true,
108
- 'no_unused_imports' => true,
109
- 'no_useless_else' => true,
110
- 'no_useless_return' => true,
111
- 'no_whitespace_before_comma_in_array' => true,
112
- 'no_whitespace_in_blank_line' => true,
113
- 'object_operator_without_whitespace' => true,
114
- 'ordered_class_elements' => false, // We prefer to keep some freedom
115
- 'ordered_imports' => true,
116
- 'phpdoc_add_missing_param_annotation' => true,
117
- 'phpdoc_align' => false, // Waste of time
118
- 'phpdoc_annotation_without_dot' => true,
119
- 'phpdoc_indent' => true,
120
- 'phpdoc_inline_tag' => true,
121
- 'phpdoc_no_access' => true,
122
- 'phpdoc_no_alias_tag' => true,
123
- 'phpdoc_no_empty_return' => true,
124
- 'phpdoc_no_package' => true,
125
- 'phpdoc_no_useless_inheritdoc' => true,
126
- 'phpdoc_order' => true,
127
- 'phpdoc_return_self_reference' => true,
128
- 'phpdoc_scalar' => true,
129
- 'phpdoc_separation' => true,
130
- 'phpdoc_single_line_var_spacing' => true,
131
- 'phpdoc_summary' => true,
132
- 'phpdoc_to_comment' => true,
133
- 'phpdoc_trim' => true,
134
- 'phpdoc_types_order' => true,
135
- 'phpdoc_types' => true,
136
- 'phpdoc_var_without_name' => true,
137
- 'php_unit_construct' => true,
138
- 'php_unit_dedicate_assert' => true,
139
- 'php_unit_expectation' => true,
140
- 'php_unit_fqcn_annotation' => true,
141
- 'php_unit_mock' => true,
142
- 'php_unit_namespaced' => true,
143
- 'php_unit_no_expectation_annotation' => true,
144
- 'php_unit_strict' => false, // We sometime actually need assertEquals
145
- 'php_unit_test_annotation' => true,
146
- 'php_unit_test_class_requires_covers' => false, // We don't care as much as we should about coverage
147
- 'pow_to_exponentiation' => false,
148
- 'protected_to_private' => true,
149
- 'psr0' => true,
150
- 'psr4' => true,
151
- 'random_api_migration' => false, // This breaks our unit tests
152
- 'return_type_declaration' => true,
153
- 'self_accessor' => true,
154
- 'semicolon_after_instruction' => false, // Buggy in `samples/index.php`
155
- 'short_scalar_cast' => true,
156
- 'silenced_deprecation_error' => true,
157
- 'simplified_null_return' => false, // While technically correct we prefer to be explicit when returning null
158
- 'single_blank_line_at_eof' => true,
159
- 'single_blank_line_before_namespace' => true,
160
- 'single_class_element_per_statement' => true,
161
- 'single_import_per_statement' => true,
162
- 'single_line_after_imports' => true,
163
- 'single_line_comment_style' => true,
164
- 'single_quote' => true,
165
- 'space_after_semicolon' => true,
166
- 'standardize_not_equals' => true,
167
- 'static_lambda' => false, // Risky if we can't guarantee nobody use `bindTo()`
168
- 'strict_comparison' => false, // No, too dangerous to change that
169
- 'strict_param' => false, // No, too dangerous to change that
170
- 'switch_case_semicolon_to_colon' => true,
171
- 'switch_case_space' => true,
172
- 'ternary_operator_spaces' => true,
173
- 'ternary_to_null_coalescing' => false, // Cannot use that with PHP 5.6
174
- 'trailing_comma_in_multiline_array' => true,
175
- 'trim_array_spaces' => true,
176
- 'unary_operator_spaces' => true,
177
- 'visibility_required' => true,
178
- 'void_return' => false, // Cannot use that with PHP 5.6
179
- 'whitespace_after_comma_in_array' => true,
180
- 'yoda_style' => false,
181
- ]);
1
+ <?php
2
+
3
+ $finder = PhpCsFixer\Finder::create()
4
+ ->exclude('vendor')
5
+ ->in('samples')
6
+ ->in('src')
7
+ ->in('tests');
8
+
9
+ return PhpCsFixer\Config::create()
10
+ ->setRiskyAllowed(true)
11
+ ->setFinder($finder)
12
+ ->setRules([
13
+ 'align_multiline_comment' => true,
14
+ 'array_syntax' => ['syntax' => 'short'],
15
+ 'backtick_to_shell_exec' => true,
16
+ 'binary_operator_spaces' => true,
17
+ 'blank_line_after_namespace' => true,
18
+ 'blank_line_after_opening_tag' => true,
19
+ 'blank_line_before_statement' => true,
20
+ 'braces' => true,
21
+ 'cast_spaces' => true,
22
+ 'class_attributes_separation' => ['elements' => ['method', 'property']], // const are often grouped with other related const
23
+ 'class_definition' => true,
24
+ 'class_keyword_remove' => false, // ::class keyword gives us beter support in IDE
25
+ 'combine_consecutive_issets' => true,
26
+ 'combine_consecutive_unsets' => true,
27
+ 'compact_nullable_typehint' => true,
28
+ 'concat_space' => ['spacing' => 'one'],
29
+ 'declare_equal_normalize' => true,
30
+ 'declare_strict_types' => false, // Too early to adopt strict types
31
+ 'dir_constant' => true,
32
+ 'doctrine_annotation_array_assignment' => true,
33
+ 'doctrine_annotation_braces' => true,
34
+ 'doctrine_annotation_indentation' => true,
35
+ 'doctrine_annotation_spaces' => true,
36
+ 'elseif' => true,
37
+ 'encoding' => true,
38
+ 'ereg_to_preg' => true,
39
+ 'escape_implicit_backslashes' => true,
40
+ 'explicit_indirect_variable' => false, // I feel it makes the code actually harder to read
41
+ 'explicit_string_variable' => false, // I feel it makes the code actually harder to read
42
+ 'final_internal_class' => true,
43
+ 'full_opening_tag' => true,
44
+ 'function_declaration' => true,
45
+ 'function_to_constant' => true,
46
+ 'function_typehint_space' => true,
47
+ 'general_phpdoc_annotation_remove' => false, // No use for that
48
+ 'hash_to_slash_comment' => true,
49
+ 'header_comment' => false, // We don't use common header in all our files
50
+ 'heredoc_to_nowdoc' => false, // Not sure about this one
51
+ 'include' => true,
52
+ 'increment_style' => true,
53
+ 'indentation_type' => true,
54
+ 'is_null' => ['use_yoda_style' => false],
55
+ 'linebreak_after_opening_tag' => true,
56
+ 'line_ending' => true,
57
+ 'list_syntax' => ['syntax' => 'long'], // Stay compatiblew with PHP 5.6
58
+ 'lowercase_cast' => true,
59
+ 'lowercase_constants' => true,
60
+ 'lowercase_keywords' => true,
61
+ 'magic_constant_casing' => true,
62
+ 'mb_str_functions' => false, // No, too dangerous to change that
63
+ 'method_argument_space' => true,
64
+ 'method_chaining_indentation' => true,
65
+ 'method_separation' => true,
66
+ 'modernize_types_casting' => true,
67
+ 'multiline_comment_opening_closing' => true,
68
+ 'native_function_casing' => true,
69
+ 'native_function_invocation' => false, // This is risky and seems to be micro-optimization that make code uglier so not worth it, at least for now
70
+ 'new_with_braces' => true,
71
+ 'no_alias_functions' => true,
72
+ 'no_blank_lines_after_class_opening' => true,
73
+ 'no_blank_lines_after_phpdoc' => true,
74
+ 'no_blank_lines_before_namespace' => false, // we want 1 blank line before namespace
75
+ 'no_break_comment' => true,
76
+ 'no_closing_tag' => true,
77
+ 'no_empty_comment' => true,
78
+ 'no_empty_phpdoc' => true,
79
+ 'no_empty_statement' => true,
80
+ 'no_extra_blank_lines' => true,
81
+ 'no_homoglyph_names' => true,
82
+ 'no_leading_import_slash' => true,
83
+ 'no_leading_namespace_whitespace' => true,
84
+ 'no_mixed_echo_print' => true,
85
+ 'no_multiline_whitespace_around_double_arrow' => true,
86
+ 'no_multiline_whitespace_before_semicolons' => true,
87
+ 'non_printable_character' => true,
88
+ 'no_null_property_initialization' => true,
89
+ 'no_php4_constructor' => true,
90
+ 'normalize_index_brace' => true,
91
+ 'no_short_bool_cast' => true,
92
+ 'no_short_echo_tag' => true,
93
+ 'no_singleline_whitespace_before_semicolons' => true,
94
+ 'no_spaces_after_function_name' => true,
95
+ 'no_spaces_around_offset' => true,
96
+ 'no_spaces_inside_parenthesis' => true,
97
+ 'no_superfluous_elseif' => false, // Might be risky on a huge code base
98
+ 'not_operator_with_space' => false, // No we prefer to keep '!' without spaces
99
+ 'not_operator_with_successor_space' => false, // idem
100
+ 'no_trailing_comma_in_list_call' => true,
101
+ 'no_trailing_comma_in_singleline_array' => true,
102
+ 'no_trailing_whitespace_in_comment' => true,
103
+ 'no_trailing_whitespace' => true,
104
+ 'no_unneeded_control_parentheses' => true,
105
+ 'no_unneeded_curly_braces' => true,
106
+ 'no_unneeded_final_method' => true,
107
+ 'no_unreachable_default_argument_value' => true,
108
+ 'no_unused_imports' => true,
109
+ 'no_useless_else' => true,
110
+ 'no_useless_return' => true,
111
+ 'no_whitespace_before_comma_in_array' => true,
112
+ 'no_whitespace_in_blank_line' => true,
113
+ 'object_operator_without_whitespace' => true,
114
+ 'ordered_class_elements' => false, // We prefer to keep some freedom
115
+ 'ordered_imports' => true,
116
+ 'phpdoc_add_missing_param_annotation' => true,
117
+ 'phpdoc_align' => false, // Waste of time
118
+ 'phpdoc_annotation_without_dot' => true,
119
+ 'phpdoc_indent' => true,
120
+ 'phpdoc_inline_tag' => true,
121
+ 'phpdoc_no_access' => true,
122
+ 'phpdoc_no_alias_tag' => true,
123
+ 'phpdoc_no_empty_return' => true,
124
+ 'phpdoc_no_package' => true,
125
+ 'phpdoc_no_useless_inheritdoc' => true,
126
+ 'phpdoc_order' => true,
127
+ 'phpdoc_return_self_reference' => true,
128
+ 'phpdoc_scalar' => true,
129
+ 'phpdoc_separation' => true,
130
+ 'phpdoc_single_line_var_spacing' => true,
131
+ 'phpdoc_summary' => true,
132
+ 'phpdoc_to_comment' => true,
133
+ 'phpdoc_trim' => true,
134
+ 'phpdoc_types_order' => true,
135
+ 'phpdoc_types' => true,
136
+ 'phpdoc_var_without_name' => true,
137
+ 'php_unit_construct' => true,
138
+ 'php_unit_dedicate_assert' => true,
139
+ 'php_unit_expectation' => true,
140
+ 'php_unit_fqcn_annotation' => true,
141
+ 'php_unit_mock' => true,
142
+ 'php_unit_namespaced' => true,
143
+ 'php_unit_no_expectation_annotation' => true,
144
+ 'php_unit_strict' => false, // We sometime actually need assertEquals
145
+ 'php_unit_test_annotation' => true,
146
+ 'php_unit_test_class_requires_covers' => false, // We don't care as much as we should about coverage
147
+ 'pow_to_exponentiation' => false,
148
+ 'protected_to_private' => true,
149
+ 'psr0' => true,
150
+ 'psr4' => true,
151
+ 'random_api_migration' => false, // This breaks our unit tests
152
+ 'return_type_declaration' => true,
153
+ 'self_accessor' => true,
154
+ 'semicolon_after_instruction' => false, // Buggy in `samples/index.php`
155
+ 'short_scalar_cast' => true,
156
+ 'silenced_deprecation_error' => true,
157
+ 'simplified_null_return' => false, // While technically correct we prefer to be explicit when returning null
158
+ 'single_blank_line_at_eof' => true,
159
+ 'single_blank_line_before_namespace' => true,
160
+ 'single_class_element_per_statement' => true,
161
+ 'single_import_per_statement' => true,
162
+ 'single_line_after_imports' => true,
163
+ 'single_line_comment_style' => true,
164
+ 'single_quote' => true,
165
+ 'space_after_semicolon' => true,
166
+ 'standardize_not_equals' => true,
167
+ 'static_lambda' => false, // Risky if we can't guarantee nobody use `bindTo()`
168
+ 'strict_comparison' => false, // No, too dangerous to change that
169
+ 'strict_param' => false, // No, too dangerous to change that
170
+ 'switch_case_semicolon_to_colon' => true,
171
+ 'switch_case_space' => true,
172
+ 'ternary_operator_spaces' => true,
173
+ 'ternary_to_null_coalescing' => false, // Cannot use that with PHP 5.6
174
+ 'trailing_comma_in_multiline_array' => true,
175
+ 'trim_array_spaces' => true,
176
+ 'unary_operator_spaces' => true,
177
+ 'visibility_required' => true,
178
+ 'void_return' => false, // Cannot use that with PHP 5.6
179
+ 'whitespace_after_comma_in_array' => true,
180
+ 'yoda_style' => false,
181
+ ]);
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.scrutinizer.yml CHANGED
@@ -1,27 +1,27 @@
1
- checks:
2
- php: true
3
-
4
- coding_style:
5
- php:
6
- spaces:
7
- before_parentheses:
8
- closure_definition: true
9
- around_operators:
10
- concatenation: true
11
-
12
- build:
13
- nodes:
14
- analysis:
15
- tests:
16
- override:
17
- - php-scrutinizer-run
18
-
19
- tools:
20
- external_code_coverage:
21
- timeout: 3600
22
-
23
- build_failure_conditions:
24
- - 'elements.rating(<= C).new.exists' # No new classes/methods with a rating of C or worse allowed
25
- - 'issues.severity(>= MAJOR).new.exists' # New issues of major or higher severity
26
- - 'project.metric_change("scrutinizer.test_coverage", < 0)' # Code Coverage decreased from previous inspection
27
- - 'patches.label("Unused Use Statements").new.exists' # No new unused imports patches allowed
1
+ checks:
2
+ php: true
3
+
4
+ coding_style:
5
+ php:
6
+ spaces:
7
+ before_parentheses:
8
+ closure_definition: true
9
+ around_operators:
10
+ concatenation: true
11
+
12
+ build:
13
+ nodes:
14
+ analysis:
15
+ tests:
16
+ override:
17
+ - php-scrutinizer-run
18
+
19
+ tools:
20
+ external_code_coverage:
21
+ timeout: 3600
22
+
23
+ build_failure_conditions:
24
+ - 'elements.rating(<= C).new.exists' # No new classes/methods with a rating of C or worse allowed
25
+ - 'issues.severity(>= MAJOR).new.exists' # New issues of major or higher severity
26
+ - 'project.metric_change("scrutinizer.test_coverage", < 0)' # Code Coverage decreased from previous inspection
27
+ - 'patches.label("Unused Use Statements").new.exists' # No new unused imports patches allowed
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/.travis.yml CHANGED
@@ -1,40 +1,40 @@
1
- language: php
2
- dist: trusty
3
- sudo: false
4
-
5
- php:
6
- - 5.6
7
- - 7.0
8
- - 7.1
9
- - 7.2
10
-
11
- cache:
12
- directories:
13
- - vendor
14
- - $HOME/.composer/cache
15
-
16
- before_script:
17
- # Deactivate xdebug
18
- - if [ -z "$KEEP_XDEBUG" ]; then rm -rfv /home/travis/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini ; fi
19
- - composer install --ignore-platform-reqs
20
-
21
- script:
22
- - ./vendor/bin/phpunit
23
-
24
- jobs:
25
- include:
26
-
27
- - stage: Code style
28
- php: 7.1
29
- script:
30
- - ./vendor/bin/php-cs-fixer fix --diff --verbose --dry-run
31
- - ./vendor/bin/phpcs --report-width=200 --report-summary --report-full samples/ src/ tests/ --ignore=samples/Header.php --standard=PSR2 -n
32
-
33
- - stage: Coverage
34
- php: 7.1
35
- env: KEEP_XDEBUG=1
36
- script:
37
- - ./vendor/bin/phpunit --debug --coverage-clover coverage-clover.xml
38
- after_script:
39
- - wget https://scrutinizer-ci.com/ocular.phar
40
- - php ocular.phar code-coverage:upload --format=php-clover tests/coverage-clover.xml
1
+ language: php
2
+ dist: trusty
3
+ sudo: false
4
+
5
+ php:
6
+ - 5.6
7
+ - 7.0
8
+ - 7.1
9
+ - 7.2
10
+
11
+ cache:
12
+ directories:
13
+ - vendor
14
+ - $HOME/.composer/cache
15
+
16
+ before_script:
17
+ # Deactivate xdebug
18
+ - if [ -z "$KEEP_XDEBUG" ]; then rm -rfv /home/travis/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini ; fi
19
+ - composer install --ignore-platform-reqs
20
+
21
+ script:
22
+ - ./vendor/bin/phpunit
23
+
24
+ jobs:
25
+ include:
26
+
27
+ - stage: Code style
28
+ php: 7.1
29
+ script:
30
+ - ./vendor/bin/php-cs-fixer fix --diff --verbose --dry-run
31
+ - ./vendor/bin/phpcs --report-width=200 --report-summary --report-full samples/ src/ tests/ --ignore=samples/Header.php --standard=PSR2 -n
32
+
33
+ - stage: Coverage
34
+ php: 7.1
35
+ env: KEEP_XDEBUG=1
36
+ script:
37
+ - ./vendor/bin/phpunit --debug --coverage-clover coverage-clover.xml
38
+ after_script:
39
+ - wget https://scrutinizer-ci.com/ocular.phar
40
+ - php ocular.phar code-coverage:upload --format=php-clover tests/coverage-clover.xml
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/CHANGELOG.PHPExcel.md CHANGED
@@ -1,1593 +1,1593 @@
1
- # Changelog for PHPExcel
2
-
3
- This is the historic changelog of the project when it was still called PHPExcel.
4
- It exists only for historical purposes and versions mentioned here should not be
5
- confused with PhpSpreadsheet versions.
6
-
7
- ## [1.8.1] - 2015-04-30
8
-
9
- ### Bugfixes
10
-
11
- - Fix for Writing an Open Document cell with non-numeric formula - @goncons [#397](https://github.com/PHPOffice/PHPExcel/issues/397)
12
- - Avoid potential divide by zero in basedrawing - @sarciszewski [#329](https://github.com/PHPOffice/PHPExcel/issues/329)
13
- - XML External Entity (XXE) Processing, different behaviour between simplexml_load_string() and simplexml_load_file(). - @ymaerschalck [#405](https://github.com/PHPOffice/PHPExcel/issues/405)
14
- - Fix to ensure that current cell is maintained when executing formula calculations - @MarkBaker
15
- - Keep/set the value on Reader _loadSheetsOnly as NULL, courtesy of Restless-ET - @MarkBaker [#350](https://github.com/PHPOffice/PHPExcel/issues/350)
16
- - Loading an Excel 2007 spreadsheet throws an "Autofilter must be set on a range of cells" exception - @MarkBaker [CodePlex #18105](https://phpexcel.codeplex.com/workitem/18105)
17
- - Fix to autoloader registration for backward compatibility with PHP 5.2.0 not accepting the prepend flag - @MarkBaker [#388](https://github.com/PHPOffice/PHPExcel/issues/388)
18
- - DOM loadHTMLFile() failing with options flags when using PHP < 5.4.0 - @MarkBaker [#384](https://github.com/PHPOffice/PHPExcel/issues/384)
19
- - Fix for percentage operator in formulae for BIFF Writer - @MarkBaker
20
- - Fix to getStyle() call for cell object - @MarkBaker
21
- - Discard Autofilters in Excel2007 Reader when filter range isn't a valid range - @MarkBaker
22
- - Fix invalid NA return in VLOOKUP - @frozenstupidity [#423](https://github.com/PHPOffice/PHPExcel/issues/423)
23
- - "No Impact" conditional formatting fix for NumberFormat - @wiseloren [CodePlex #21454](https://phpexcel.codeplex.com/workitem/21454)
24
- - Bug in Excel2003XML reader, parsing merged cells - @bobwitlox [#467](https://github.com/PHPOffice/PHPExcel/issues/467)
25
- - Fix for CEIL() and FLOOR() when number argument is zero - @MarkBaker [#302](https://github.com/PHPOffice/PHPExcel/issues/302)
26
-
27
- ### General
28
-
29
- - Remove cells cleanly when calling RemoveRow() or RemoveColumn() - @MarkBaker
30
- - Small performance improvement for autosize columns - @MarkBaker
31
- - Change the getter/setter for zeroHeight to camel case - @frost-nzcr4 [#379](https://github.com/PHPOffice/PHPExcel/issues/379)
32
- - DefaultValueBinder is too much aggressive when converting string to numeric - @MarkBaker [#394](https://github.com/PHPOffice/PHPExcel/issues/394)
33
- - Default precalculate formulas to false for writers - @MarkBaker
34
- - Set default Cyclic Reference behaviour to 1 to eliminate exception when using a single cyclic iteration in formulae - @MarkBaker
35
-
36
- ### Features
37
-
38
- - Some Excel writer libraries erroneously use Codepage 21010 for UTF-16LE - @MarkBaker [#396](https://github.com/PHPOffice/PHPExcel/issues/396)
39
- - Methods to manage most of the existing options for Chart Axis, Major Grid-lines and Minor Grid-lines - @WiktrzGE [#404](https://github.com/PHPOffice/PHPExcel/issues/404)
40
- - ODS read/write comments in the cell - @frost-nzcr4 [#403](https://github.com/PHPOffice/PHPExcel/issues/403)
41
- - Additional Mac CJK codepage definitions - @CQD [#389](https://github.com/PHPOffice/PHPExcel/issues/389)
42
- - Update Worksheet.php getStyleByColumnAndRow() to allow a range of cells rather than just a single cell - @bolovincev [#269](https://github.com/PHPOffice/PHPExcel/issues/269)
43
- - New methods added for testing cell status within merge groups - @MarkBaker
44
- - Handling merge cells in HTML Reader - @cifren/MBaker [#205](https://github.com/PHPOffice/PHPExcel/issues/205)
45
- - Helper to convert basic HTML markup to a Rich Text object - @MarkBaker
46
- - Improved Iterators - @MarkBaker
47
- - New Column Iterator
48
- - Support for row and column ranges
49
- - Improved handling for next/prev
50
-
51
- ### Security
52
-
53
- - XML filescan in XML-based Readers to prevent XML Entity Expansion (XEE) - @MarkBaker
54
- - (see http://projects.webappsec.org/w/page/13247002/XML%20Entity%20Expansion for an explanation of XEE injection) attacks
55
- - Reference CVE-2015-3542 - Identification of problem courtesy of Dawid Golunski (Pentest Ltd.)
56
-
57
- ## [1.8.0] - 2014-03-02
58
-
59
- ### Bugfixes
60
-
61
- - Undefined variable: fileHandle in CSV Reader - @MarkBaker [CodePlex #19830](https://phpexcel.codeplex.com/workitem/19830)
62
- - Out of memory in style/supervisor.php - @MarkBaker [CodePlex #19968](https://phpexcel.codeplex.com/workitem/19968)
63
- - Style error with merged cells in PDF Writer - @MarkBaker
64
- - Problem with cloning worksheets - @MarkBaker
65
- - Bug fix reading Open Office files - @tavoarcila [#259](https://github.com/PHPOffice/PHPExcel/issues/259)
66
- - Serious bug in absolute cell reference used in shared formula - @MarkBaker [CodePlex #20397](https://phpexcel.codeplex.com/workitem/20397)
67
- - Would also have affected insert/delete column/row- CHOOSE() returns "#VALUE!" if the 1st entry is chosen - @RomanSyroeshko [#267](https://github.com/PHPOffice/PHPExcel/issues/267)
68
- - When duplicating styles, styles shifted by one column to the right - @Gemorroj [#268](https://github.com/PHPOffice/PHPExcel/issues/268)
69
- - Fix also applied to duplicating conditional styles- Fix for formulae that reference a sheet whose name begins with a digit: - @IndrekHaav [#212](https://github.com/PHPOffice/PHPExcel/issues/212)
70
- - these were erroneously identified as numeric values, causing the parser to throw an undefined variable error.- Fixed undefined variable error due to $styleArray being used before it's initialised - @IndrekHaav [CodePlex #16208](https://phpexcel.codeplex.com/workitem/16208)
71
- - ISTEXT() return wrong result if referencing an empty but formatted cell - @PowerKiKi [#273](https://github.com/PHPOffice/PHPExcel/issues/273)
72
- - Binary comparison of strings are case insensitive - @PowerKiKi [#270](https://github.com/PHPOffice/PHPExcel/issues/270), [#31](https://github.com/PHPOffice/PHPExcel/issues/31)
73
- - Insert New Row/Column Before is not correctly updating formula references - @MarkBaker [#275](https://github.com/PHPOffice/PHPExcel/issues/275)
74
- - Passing an array of cells to _generateRow() in the HTML/PDF Writer causes caching problems with last cell in the range - @MarkBaker [#257](https://github.com/PHPOffice/PHPExcel/issues/257)
75
- - Fix to empty worksheet garbage collection when using cell caching - @MarkBaker [#193](https://github.com/PHPOffice/PHPExcel/issues/193)
76
- - Excel2007 does not correctly mark rows as hidden - @Jazzo [#248](https://github.com/PHPOffice/PHPExcel/issues/248)
77
- - Fixed typo in Chart/Layout set/getYMode() - @Roy Shahbazian [#299](https://github.com/PHPOffice/PHPExcel/issues/299)
78
- - Fatal error: Call to a member function cellExists() line: 3327 in calculation.php if referenced worksheet doesn't exist - @EliuFlorez [#279](https://github.com/PHPOffice/PHPExcel/issues/279)
79
- - AdvancedValueBinder "Division by zero"-error - @MarkBaker [#290](https://github.com/PHPOffice/PHPExcel/issues/290)
80
- - Adding Sheet to Workbook Bug - @MarkBaker [CodePlex #20604](https://phpexcel.codeplex.com/workitem/20604)
81
- - Calculation engine incorrectly evaluates empty cells as #VALUE - @MarkBaker [CodePlex #20703](https://phpexcel.codeplex.com/workitem/20703)
82
- - Formula references to cell on another sheet in ODS files - @MarkBaker [CodePlex #20760](https://phpexcel.codeplex.com/workitem/20760)
83
-
84
- ### Features
85
-
86
- - LibreOffice created XLSX files results in an empty file. - @MarkBaker [#321](https://github.com/PHPOffice/PHPExcel/issues/321), [#158](https://github.com/PHPOffice/PHPExcel/issues/158), [CodePlex #17824](https://phpexcel.codeplex.com/workitem/17824)
87
- - Implementation of the Excel HLOOKUP() function - @amerov
88
- - Added "Quote Prefix" to style settings (Excel2007 Reader and Writer only) - @MarkBaker
89
- - Added Horizontal FILL alignment for Excel5 and Excel2007 Readers/Writers, and Horizontal DISTRIBUTED alignment for Excel2007 Reader/Writer - @MarkBaker
90
- - Add support for reading protected (RC4 encrypted) .xls files - @trvrnrth [#261](https://github.com/PHPOffice/PHPExcel/issues/261)
91
-
92
- ### General
93
-
94
- - Adding support for macros, Ribbon in Excel 2007 - @LWol [#252](https://github.com/PHPOffice/PHPExcel/issues/252)
95
- - Remove array_shift in ReferenceHelper::insertNewBefore improves column or row delete speed - @cdhutch [CodePlex #20055](https://phpexcel.codeplex.com/workitem/20055)
96
- - Improve stock chart handling and rendering, with help from Swashata Ghosh - @MarkBaker
97
- - Fix to calculation properties for Excel2007 so that the opening application will only recalculate on load if it's actually required - @MarkBaker
98
- - Modified Excel2007 Writer to default preCalculateFormulas to false - @MarkBaker
99
- - Note that autosize columns will still recalculate affected formulae internally- Functionality to getHighestRow() for a specified column, and getHighestColumn() for a specified row - @dresenhista [#242](https://github.com/PHPOffice/PHPExcel/issues/242)
100
- - Modify PHPExcel_Reader_Excel2007 to use zipClass from PHPExcel_Settings::getZipClass() - @adamriyadi [#247](https://github.com/PHPOffice/PHPExcel/issues/247)
101
- - This allows the use of PCLZip when reading for people that don't have access to ZipArchive
102
- ### Security
103
-
104
- - Convert properties to string in OOCalc reader - @infojunkie [#276](https://github.com/PHPOffice/PHPExcel/issues/276)
105
- - Disable libxml external entity loading by default. - @maartenba [#322](https://github.com/PHPOffice/PHPExcel/issues/322)
106
- - This is to prevent XML External Entity Processing (XXE) injection attacks (see http://websec.io/2012/08/27/Preventing-XEE-in-PHP.html for an explanation of XXE injection).
107
- - Reference CVE-2014-2054
108
-
109
- ## [1.7.9] - 2013-06-02
110
-
111
- ### Features
112
-
113
- - Include charts option for HTML Writer - @MarkBaker
114
- - Added composer file - @MarkBaker
115
- - cache_in_memory_gzip "eats" last worksheet line, cache_in_memory doesn't - @MarkBaker [CodePlex #18844](https://phpexcel.codeplex.com/workitem/18844)
116
- - echo statements in HTML.php - @MarkBaker [#104](https://github.com/PHPOffice/PHPExcel/issues/104)
117
-
118
- ### Bugfixes
119
-
120
- - Added getStyle() method to Cell object - @MarkBaker
121
- - Error in PHPEXCEL/Calculation.php script on line 2976 (stack pop check) - @Asker [CodePlex #18777](https://phpexcel.codeplex.com/workitem/18777)
122
- - CSV files without a file extension being identified as HTML - @MarkBaker [CodePlex #18794](https://phpexcel.codeplex.com/workitem/18794)
123
- - Wrong check for maximum number of rows in Excel5 Writer - @AndreKR [#66](https://github.com/PHPOffice/PHPExcel/issues/66)
124
- - Cache directory for DiscISAM cache storage cannot be set - @MarkBaker [#67](https://github.com/PHPOffice/PHPExcel/issues/67)
125
- - Fix to Excel2007 Reader for hyperlinks with an anchor fragment (following a #), otherwise they were treated as sheet references - @MarkBaker [CodePlex #17976](https://phpexcel.codeplex.com/workitem/17976)
126
- - getSheetNames() fails on numeric (floating point style) names with trailing zeroes - @MarkBaker [CodePlex #18963](https://phpexcel.codeplex.com/workitem/18963)
127
- - Modify cell's getCalculatedValue() method to return the content of RichText objects rather than the RichText object itself - @MarkBaker
128
- - Fixed formula/formatting bug when removing rows - @techhead [#70](https://github.com/PHPOffice/PHPExcel/issues/70)
129
- - Fix to cellExists for non-existent namedRanges - @alexgann [#63](https://github.com/PHPOffice/PHPExcel/issues/63)
130
- - Sheet View in Excel5 Writer - @Progi1984 [#22](https://github.com/PHPOffice/PHPExcel/issues/22)
131
- - PHPExcel_Worksheet::getCellCollection() may not return last cached cell - @amironov [#82](https://github.com/PHPOffice/PHPExcel/issues/82)
132
- - Rich Text containing UTF-8 characters creating unreadable content with Excel5 Writer - @teso [CodePlex #18551](https://phpexcel.codeplex.com/workitem/18551)
133
- - Work item GH-8/CP11704 : Conditional formatting in Excel 5 Writer - @Progi1984
134
- - canRead() Error for GoogleDocs ODS files: in ODS files from Google Docs there is no mimetype file - @MarkBaker [#113](https://github.com/PHPOffice/PHPExcel/issues/113)
135
- - "Sheet index is out of bounds." Exception - @MarkBaker [#80](https://github.com/PHPOffice/PHPExcel/issues/80)
136
- - Fixed number format fatal error - @ccorliss [#105](https://github.com/PHPOffice/PHPExcel/issues/105)
137
- - Add DROP TABLE in destructor for SQLite and SQLite3 cache controllers - @MarkBaker
138
- - Fix merged-cell borders on HTML/PDF output - @alexgann [#154](https://github.com/PHPOffice/PHPExcel/issues/154)
139
- - Fix: Hyperlinks break when removing rows - @Shanto [#161](https://github.com/PHPOffice/PHPExcel/issues/161)
140
- - Fix Extra Table Row From Images and Charts - @neclimdul [#166](https://github.com/PHPOffice/PHPExcel/issues/166)
141
-
142
- ### General
143
-
144
- - Single cell print area - @MarkBaker [#130](https://github.com/PHPOffice/PHPExcel/issues/130)
145
- - Improved AdvancedValueBinder for currency - @kea [#69](https://github.com/PHPOffice/PHPExcel/issues/69)
146
- - Fix for environments where there is no access to /tmp but to upload_tmp_dir - @MarkBaker
147
- - Provided an option to set the sys_get_temp_dir() call to use the upload_tmp_dir; though by default the standard temp directory will still be used- Search style by identity in PHPExcel_Worksheet::duplicateStyle() - @amironov [#84](https://github.com/PHPOffice/PHPExcel/issues/84)
148
- - Fill SheetView IO in Excel5 - @karak [#85](https://github.com/PHPOffice/PHPExcel/issues/85)
149
- - Memory and Speed improvements in PHPExcel_Reader_Excel5 - @cfhay [CodePlex #18958](https://phpexcel.codeplex.com/workitem/18958)
150
- - Modify listWorksheetNames() and listWorksheetInfo to use XMLReader with streamed XML rather than SimpleXML - @MarkBaker [#78](https://github.com/PHPOffice/PHPExcel/issues/78)
151
- - Restructuring of PHPExcel Exceptions - @dbonsch
152
- - Refactor Calculation Engine from singleton to a Multiton - @MarkBaker
153
- - Ensures that calculation cache is maintained independently for different workbooks
154
-
155
- ## [1.7.8] - 2012-10-12
156
-
157
- ### Features
158
-
159
- - Phar builder script to add phar file as a distribution option - @kkamkou
160
- - Refactor PDF Writer to allow use with a choice of PDF Rendering library - @MarkBaker
161
- - rather than restricting to tcPDF
162
- - Current options are tcPDF, mPDF, DomPDF
163
- - tcPDF Library has now been removed from the deployment bundle- Initial version of HTML Reader - @MarkBaker
164
- - Implement support for AutoFilter in PHPExcel_Writer_Excel5 - @Progi1984
165
- - Modified ERF and ERFC Engineering functions to accept Excel 2010's modified acceptance of negative arguments - @MarkBaker
166
- - Support SheetView `view` attribute (Excel2007) - @k1LoW
167
- - Excel compatibility option added for writing CSV files - @MarkBaker
168
- - While Excel 2010 can read CSV files with a simple UTF-8 BOM, Excel2007 and earlier require UTF-16LE encoded tab-separated files.
169
- - The new setExcelCompatibility(TRUE) option for the CSV Writer will generate files with this formatting for easy import into Excel2007 and below.- Language implementations for Turkish (tr) - @MarkBaker
170
- - Added fraction tests to advanced value binder - @MarkBaker
171
-
172
- ### General
173
-
174
- - Allow call to font setUnderline() for underline format to specify a simple boolean for UNDERLINE_NONE or UNDERLINE_SINGLE - @MarkBaker
175
- - Add Currency detection to the Advanced Value Binder - @alexgann
176
- - setCellValueExplicitByColumnAndRow() do not return PHPExcel_Worksheet - @MarkBaker [CodePlex #18404](https://phpexcel.codeplex.com/workitem/18404)
177
- - Reader factory doesn't read anymore XLTX and XLT files - @MarkBaker [CodePlex #18324](https://phpexcel.codeplex.com/workitem/18324)
178
- - Magic __toString() method added to Cell object to return raw data value as a string - @MarkBaker
179
- - Add cell indent to html rendering - @alexgann
180
-
181
- ### Bugfixes
182
-
183
- - ZeroHeight for rows in sheet format - @Raghav1981
184
- - OOCalc cells containing <text:span> inside the <text:p> tag - @cyberconte
185
- - Fix to listWorksheetInfo() method for OOCalc Reader - @schir1964
186
- - Support for "e" (epoch) date format mask - @MarkBaker
187
- - Rendered as a 4-digit CE year in non-Excel outputs- Background color cell is always black when editing cell - @MarkBaker
188
- - Allow "no impact" to formats on Conditional Formatting - @MarkBaker
189
- - OOCalc Reader fix for NULL cells - @wackonline
190
- - Fix to excel2007 Chart Writer when a $plotSeriesValues is empty - @seltzlab
191
- - Various fixes to Chart handling - @MarkBaker
192
- - Error loading xlsx file with column breaks - @MarkBaker [CodePlex #18370](https://phpexcel.codeplex.com/workitem/18370)
193
- - OOCalc Reader now handles percentage and currency data types - @MarkBaker
194
- - mb_stripos empty delimiter - @MarkBaker
195
- - getNestingLevel() Error on Excel5 Read - @takaakik
196
- - Fix to Excel5 Reader when cell annotations are defined before their referenced text objects - @MarkBaker
197
- - OOCalc Reader modified to process number-rows-repeated - @MarkBaker
198
- - Chart Title compatibility on Excel 2007 - @MarkBaker [CodePlex #18377](https://phpexcel.codeplex.com/workitem/18377)
199
- - Chart Refresh returning cell reference rather than values - @MarkBaker [CodePlex #18146](https://phpexcel.codeplex.com/workitem/18146)
200
- - Autoshape being identified in twoCellAnchor when includeCharts is TRUE triggering load error - @MarkBaker [CodePlex #18145](https://phpexcel.codeplex.com/workitem/18145)
201
- - v-type texts for series labels now recognised and parsed correctly - @MarkBaker [CodePlex #18325](https://phpexcel.codeplex.com/workitem/18325)
202
- - load file failed if the file has no extensionType - @wolf5x [CodePlex #18492](https://phpexcel.codeplex.com/workitem/18492)
203
- - Pattern fill colours in Excel2007 Style Writer - @dverspui
204
- - Excel2007 Writer order of font style elements to conform with Excel2003 using compatibility pack - @MarkBaker
205
- - Problems with $_activeSheetIndex when decreased below 0. - @MarkBaker [CodePlex #18425](https://phpexcel.codeplex.com/workitem/18425)
206
- - PHPExcel_CachedObjectStorage_SQLite3::cacheMethodIsAvailable() uses class_exists - autoloader throws error - @MarkBaker [CodePlex #18597](https://phpexcel.codeplex.com/workitem/18597)
207
- - Cannot access private property PHPExcel_CachedObjectStorageFactory::$_cacheStorageMethod - @MarkBaker [CodePlex #18598](https://phpexcel.codeplex.com/workitem/18598)
208
- - Data titles for charts - @MarkBaker [CodePlex #18397](https://phpexcel.codeplex.com/workitem/18397)
209
- - PHPExcel_Chart_Layout now has methods for getting/setting switches for displaying/hiding chart data labels- Discard single cell merge ranges when reading (stupid that Excel allows them in the first place) - @MarkBaker
210
- - Discard hidden autoFilter named ranges - @MarkBaker
211
-
212
- ## [1.7.7] - 2012-05-19
213
-
214
- ### Bugfixes
215
-
216
- - Support for Rich-Text in PHPExcel_Writer_Excel5 - @Progi1984 [CodePlex #8916](https://phpexcel.codeplex.com/workitem/8916)
217
- - Change iterators to implement Iterator rather than extend CachingIterator, as a fix for PHP 5.4. changes in SPL - @MarkBaker
218
- - Invalid cell coordinate in Autofilter for Excel2007 Writer - @MarkBaker [CodePlex #15459](https://phpexcel.codeplex.com/workitem/15459)
219
- - PCLZip library issue - @MarkBaker [CodePlex #15518](https://phpexcel.codeplex.com/workitem/15518)
220
- - Excel2007 Reader canRead function bug - @MarkBaker [CodePlex #15537](https://phpexcel.codeplex.com/workitem/15537)
221
- - Support for Excel functions whose return can be used as either a value or as a cell reference depending on its context within a formula - @MarkBaker
222
- - ini_set() call in Calculation class destructor - @gilles06 [CodePlex #15707](https://phpexcel.codeplex.com/workitem/15707)
223
- - RangeToArray strange array keys - @MarkBaker [CodePlex #15786](https://phpexcel.codeplex.com/workitem/15786)
224
- - INDIRECT() function doesn't work with named ranges - @MarkBaker [CodePlex #15762](https://phpexcel.codeplex.com/workitem/15762)
225
- - Locale-specific fix to text functions when passing a boolean argument instead of a string - @MarkBaker
226
- - reader/CSV fails on this file - @MarkBaker [CodePlex #16246](https://phpexcel.codeplex.com/workitem/16246)
227
- - auto_detect_line_endings now set in CSV reader- $arguments improperly used in CachedObjectStorage/PHPTemp.php - @MarkBaker [CodePlex #16212](https://phpexcel.codeplex.com/workitem/16212)
228
- - Bug In Cache System (cell reference when throwing caching errors) - @MarkBaker [CodePlex #16643](https://phpexcel.codeplex.com/workitem/16643)
229
- - PHP Invalid index notice on writing excel file when active sheet has been deleted - @MarkBaker [CodePlex #16895](https://phpexcel.codeplex.com/workitem/16895)
230
- - External links in Excel2010 files cause Fatal error - @MarkBaker [CodePlex #16956](https://phpexcel.codeplex.com/workitem/16956)
231
- - Previous calculation engine error conditions trigger cyclic reference errors - @MarkBaker [CodePlex #16960](https://phpexcel.codeplex.com/workitem/16960)
232
- - PHPExcel_Style::applyFromArray() returns null rather than style object in advanced mode - @mkopinsky [CodePlex #16266](https://phpexcel.codeplex.com/workitem/16266)
233
- - Cell::getFormattedValue returns RichText object instead of string - @fauvel [CodePlex #16958](https://phpexcel.codeplex.com/workitem/16958)
234
- - Indexed colors do not refer to Excel's indexed colors? - @MarkBaker [CodePlex #17166](https://phpexcel.codeplex.com/workitem/17166)
235
- - Indexed colors should be consistent with Excel and start from 1 (current index starts at 0) - @MarkBaker [CodePlex #17199](https://phpexcel.codeplex.com/workitem/17199)
236
- - Named Range definition in .xls when sheet reeference is quote wrapped - @MarkBaker [CodePlex #17262](https://phpexcel.codeplex.com/workitem/17262)
237
- - duplicateStyle() method doesn't duplicate conditional formats - @MarkBaker [CodePlex #17403](https://phpexcel.codeplex.com/workitem/17403)
238
- - Added an equivalent duplicateConditionalStyle() method for duplicating conditional styles- =sumproduct(A,B) <> =sumproduct(B,A) in xlsx - @bnr [CodePlex #17501](https://phpexcel.codeplex.com/workitem/17501)
239
-
240
- ### Features
241
-
242
- - OOCalc cells contain same data bug? - @cyberconte [CodePlex #17471](https://phpexcel.codeplex.com/workitem/17471)
243
- - listWorksheetInfo() method added to Readers... courtesy of Christopher Mullins - @schir1964
244
- - Options for cell caching using Igbinary and SQLite/SQlite3. - @MarkBaker
245
- - Additional row iterator options: allow a start row to be defined in the constructor; seek(), and prev() methods added. - @MarkBaker
246
- - Implement document properties in Excel5 writer - @Progi1984 [CodePlex #9759](https://phpexcel.codeplex.com/workitem/9759)
247
-
248
- ### General
249
-
250
- - Implement chart functionality (EXPERIMENTAL) - @MarkBaker [CodePlex #16](https://phpexcel.codeplex.com/workitem/16)
251
- - Initial definition of chart objects.
252
- - Reading Chart definitions through the Excel2007 Reader
253
- - Facility to render charts to images using the 3rd-party jpgraph library
254
- - Writing Charts using the Excel2007 Writer- Fix to build to ensure that Examples are included with the documentation - @MarkBaker
255
- - Reduce cell caching overhead using dirty flag to ensure that cells are only rewritten to the cache if they have actually been changed - @MarkBaker
256
- - Improved memory usage in CSV Writer - @MarkBaker
257
- - Improved speed and memory usage in Excel5 Writer - @MarkBaker
258
- - Experimental - @MarkBaker
259
- - Added getHighestDataColumn(), getHighestDataRow(), getHighestRowAndColumn() and calculateWorksheetDataDimension() methods for the worksheet that return the highest row and column that have cell records- Support for Rich-Text in PHPExcel_Writer_Excel5 - @Progi1984 [CodePlex #8916](https://phpexcel.codeplex.com/workitem/8916)
260
- - Two easy to fix Issues concerning PHPExcel_Token_Stack (l10n/UC) - @MarkBaker [CodePlex #15405](https://phpexcel.codeplex.com/workitem/15405)
261
- - Locale file paths not fit for windows - @MarkBaker [CodePlex #15461](https://phpexcel.codeplex.com/workitem/15461)
262
- - Add file directory as a cache option for cache_to_discISAM - @MarkBaker [CodePlex #16643](https://phpexcel.codeplex.com/workitem/16643)
263
- - Datatype.php & constant TYPE_NULL - @MarkBaker [CodePlex #16923](https://phpexcel.codeplex.com/workitem/16923)
264
- - Ensure use of system temp directory for all temporary work files, unless explicitly specified - @MarkBaker
265
- - [Patch] faster stringFromColumnIndex() - @char101 [CodePlex #16359](https://phpexcel.codeplex.com/workitem/16359)
266
- - Fix for projects that still use old autoloaders - @whit1206 [CodePlex #16028](https://phpexcel.codeplex.com/workitem/16028)
267
- - Unknown codepage: 10007 - @atz [CodePlex #17024](https://phpexcel.codeplex.com/workitem/17024)
268
- - Additional Mac codepages
269
-
270
- ## [1.7.6] - 2011-02-27
271
-
272
- ### Features
273
-
274
- - Provide option to use PCLZip as an alternative to ZipArchive. - @MarkBaker
275
- - This allows the writing of Excel2007 files, even without ZipArchive enabled (it does require zlib), or when php_zip is one of the buggy PHP 5.2.6 or 5.2.8 versions
276
- - It can be enabled using PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
277
- - Note that it is not yet implemented as an alternative to ZipArchive for those Readers that are extracting from zips- Added listWorksheetNames() method to Readers that support multiple worksheets in a workbook, allowing a user to extract a list of all the worksheet names from a file without parsing/loading the whole file. - @MarkBaker [CodePlex #14979](https://phpexcel.codeplex.com/workitem/14979)
278
- - Speed boost and memory reduction in the Worksheet toArray() method. - @MarkBaker
279
- - Added new rangeToArray() and namedRangeToArray() methods to the PHPExcel_Worksheet object. - @MarkBaker
280
- - Functionally, these are identical to the toArray() method, except that they take an additional first parameter of a Range (e.g. 'B2:C3') or a Named Range name.
281
- - Modified the toArray() method so that it actually uses rangeToArray().- Added support for cell comments in the OOCalc, Gnumeric and Excel2003XML Readers, and in the Excel5 Reader - @MarkBaker
282
- - Improved toFormattedString() handling for Currency and Accounting formats to render currency symbols - @MarkBaker
283
-
284
- ### Bugfixes
285
-
286
- - Implement more Excel calculation functions - @MarkBaker
287
- - Implemented the DAVERAGE(), DCOUNT(), DCOUNTA(), DGET(), DMAX(), DMIN(), DPRODUCT(), DSTDEV(), DSTDEVP(), DSUM(), DVAR() and DVARP() Database functions- Simple =IF() formula disappears - @MarkBaker [CodePlex #14888](https://phpexcel.codeplex.com/workitem/14888)
288
- - PHP Warning: preg_match(): Compilation failed: PCRE does not support \\L, \\l, \\N, \\P, \\p, \\U, \\u, or \\X - @MarkBaker [CodePlex #14898](https://phpexcel.codeplex.com/workitem/14898)
289
- - VLOOKUP choking on parameters in PHPExcel.1.7.5/PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #14901](https://phpexcel.codeplex.com/workitem/14901)
290
- - PHPExcel_Cell::isInRange() incorrect results - offset by one column - @MarkBaker [CodePlex #14973](https://phpexcel.codeplex.com/workitem/14973)
291
- - Treat CodePage of 0 as CP1251 (for .xls files written by applications that don't set the CodePage correctly, such as Apple Numbers) - @MarkBaker
292
- - Need method for removing autoFilter - @MarkBaker [CodePlex #11583](https://phpexcel.codeplex.com/workitem/11583)
293
- - coordinateFromString throws exception for rows greater than 99,999 - @MarkBaker [CodePlex #15029](https://phpexcel.codeplex.com/workitem/15029)
294
- - PHPExcel Excel2007 Reader colour problems with solidfill - @MarkBaker [CodePlex #14999](https://phpexcel.codeplex.com/workitem/14999)
295
- - Formatting get lost and edit a template XLSX file - @MarkBaker [CodePlex #13215](https://phpexcel.codeplex.com/workitem/13215)
296
- - Excel 2007 Reader /writer lost fontcolor - @MarkBaker [CodePlex #14029](https://phpexcel.codeplex.com/workitem/14029)
297
- - file that makes cells go black - @MarkBaker [CodePlex #13374](https://phpexcel.codeplex.com/workitem/13374)
298
- - Minor patchfix for Excel2003XML Reader when XML is defined with a charset attribute - @MarkBaker
299
- - PHPExcel_Worksheet->toArray() index problem - @MarkBaker [CodePlex #15089](https://phpexcel.codeplex.com/workitem/15089)
300
- - Merge cells 'un-merge' when using an existing spreadsheet - @MarkBaker [CodePlex #15094](https://phpexcel.codeplex.com/workitem/15094)
301
- - Worksheet fromArray() only working with 2-D arrays - @MarkBaker [CodePlex #15129](https://phpexcel.codeplex.com/workitem/15129)
302
- - rangeToarray function modified for non-existent cells - @xkeshav [CodePlex #15172](https://phpexcel.codeplex.com/workitem/15172)
303
- - Images not getting copyied with the ->clone function - @MarkBaker [CodePlex #14980](https://phpexcel.codeplex.com/workitem/14980)
304
- - AdvancedValueBinder.php: String sometimes becomes a date when it shouldn't - @MarkBaker [CodePlex #11576](https://phpexcel.codeplex.com/workitem/11576)
305
- - Fix Excel5 Writer so that it only writes column dimensions for columns that are actually used rather than the full range (A to IV) - @MarkBaker
306
- - FreezePane causing damaged or modified error - @MarkBaker [CodePlex #15198](https://phpexcel.codeplex.com/workitem/15198)
307
- - The freezePaneByColumnAndRow() method row argument should default to 1 rather than 0.
308
- - Default row argument for all __ByColumnAndRow() methods should be 1- Column reference rather than cell reference in Print Area definition - @MarkBaker [CodePlex #15121](https://phpexcel.codeplex.com/workitem/15121)
309
- - Fix Excel2007 Writer to handle print areas that are defined as row or column ranges rather than just as cell ranges- Reduced false positives from isDateTimeFormatCode() method by suppressing testing within quoted strings - @MarkBaker
310
- - Caching and tmp partition exhaustion - @MarkBaker [CodePlex #15312](https://phpexcel.codeplex.com/workitem/15312)
311
- - Writing to Variable No Longer Works. $_tmp_dir Missing in PHPExcel\PHPExcel\Shared\OLE\PPS\Root.php - @MarkBaker [CodePlex #15308](https://phpexcel.codeplex.com/workitem/15308)
312
- - Named ranges with dot don't get parsed properly - @MarkBaker [CodePlex #15379](https://phpexcel.codeplex.com/workitem/15379)
313
- - insertNewRowBefore fails to consistently update references - @MarkBaker [CodePlex #15096](https://phpexcel.codeplex.com/workitem/15096)
314
- - "i" is not a valid character for Excel date format masks (in isDateTimeFormatCode() method) - @MarkBaker
315
- - PHPExcel_ReferenceHelper::insertNewBefore() is missing an 'Update worksheet: comments' section - @MKunert [CodePlex #15421](https://phpexcel.codeplex.com/workitem/15421)
316
-
317
- ### General
318
-
319
- - Full column/row references in named ranges not supported by updateCellReference() - @MarkBaker [CodePlex #15409](https://phpexcel.codeplex.com/workitem/15409)
320
- - Improved performance (speed), for building the Shared Strings table in the Excel2007 Writer. - @MarkBaker
321
- - Improved performance (speed), for PHP to Excel date conversions - @MarkBaker
322
- - Enhanced SheetViews element structures in the Excel2007 Writer for frozen panes. - @MarkBaker
323
- - Removed Serialized Reader/Writer as these no longer work. - @MarkBaker
324
-
325
- ## [1.7.5] - 2010-12-10
326
-
327
- ### Features
328
-
329
- - Implement Gnumeric File Format - @MarkBaker [CodePlex #8769](https://phpexcel.codeplex.com/workitem/8769)
330
- - Initial work on Gnumeric Reader (Worksheet Data, Document Properties and basic Formatting)- Support for Extended Workbook Properties in Excel2007, Excel5 and OOCalc Readers; support for User-defined Workbook Properties in Excel2007 and OOCalc Readers - @MarkBaker
331
- - Support for Extended and User-defined Workbook Properties in Excel2007 Writer - @MarkBaker
332
- - Provided a setGenerateSheetNavigationBlock(false); option to suppress generation of the sheet navigation block when writing multiple worksheets to HTML - @MarkBaker
333
- - Advanced Value Binder now recognises TRUE/FALSE strings (locale-specific) and converts to boolean - @MarkBaker
334
- - PHPExcel_Worksheet->toArray() is returning truncated values - @MarkBaker [CodePlex #14301](https://phpexcel.codeplex.com/workitem/14301)
335
- - Configure PDF Writer margins based on Excel Worksheet Margin Settings value - @MarkBaker
336
- - Added Contiguous flag for the CSV Reader, when working with Read Filters - @MarkBaker
337
- - Added getFormattedValue() method for cell object - @MarkBaker
338
- - Added strictNullComparison argument to the worksheet fromArray() method - @MarkBaker
339
-
340
- ### Bugfixes
341
-
342
- - Fix to toFormattedString() method in PHPExcel_Style_NumberFormat to handle fractions with a # code for the integer part - @MarkBaker
343
- - NA() doesn't propagate in matrix calc - quick fix in JAMA/Matrix.php - @MarkBaker [CodePlex #14143](https://phpexcel.codeplex.com/workitem/14143)
344
- - Excel5 : Formula : String constant containing double quotation mark - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
345
- - Excel5 : Formula : Percent - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
346
- - Excel5 : Formula : Error constant - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
347
- - Excel5 : Formula : Concatenation operator - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
348
- - Worksheet clone broken for CachedObjectStorage_Memory - @MarkBaker [CodePlex #14146](https://phpexcel.codeplex.com/workitem/14146)
349
- - PHPExcel_Reader_Excel2007 fails when gradient fill without type is present in a file - @MarkBaker [CodePlex #12998](https://phpexcel.codeplex.com/workitem/12998)
350
- - @ format for numeric strings in XLSX to CSV conversion - @MarkBaker [CodePlex #14176](https://phpexcel.codeplex.com/workitem/14176)
351
- - Advanced Value Binder Not Working? - @MarkBaker [CodePlex #14223](https://phpexcel.codeplex.com/workitem/14223)
352
- - unassigned object variable in PHPExcel->removeCellXfByIndex - @MarkBaker [CodePlex #14226](https://phpexcel.codeplex.com/workitem/14226)
353
- - problem with getting cell values from another worksheet... (if cell doesn't exist) - @MarkBaker [CodePlex #14236](https://phpexcel.codeplex.com/workitem/14236)
354
- - Setting cell values to one char strings & Trouble reading one character string (thanks gorfou) - @MarkBaker
355
- - Worksheet title exception when duplicate worksheet is being renamed but exceeds the 31 character limit - @MarkBaker [CodePlex #14256](https://phpexcel.codeplex.com/workitem/14256)
356
- - Named range with sheet name that contains the $ throws exception when getting the cell - @MarkBaker [CodePlex #14086](https://phpexcel.codeplex.com/workitem/14086)
357
- - Added autoloader to DefaultValueBinder and AdvancedValueBinder - @MarkBaker
358
- - Modified PHPExcel_Shared_Date::isDateTimeFormatCode() to return false if format code begins with "_" or with "0 " to prevent false positives - @MarkBaker
359
- - These leading characters are most commonly associated with number, currency or accounting (or occasionally fraction) formats- BUG : Excel5 and setReadFilter ? - @MarkBaker [CodePlex #14374](https://phpexcel.codeplex.com/workitem/14374)
360
- - Wrong exception message while deleting column - @MarkBaker [CodePlex #14425](https://phpexcel.codeplex.com/workitem/14425)
361
- - Formula evaluation fails with Japanese sheet refs - @MarkBaker [CodePlex #14679](https://phpexcel.codeplex.com/workitem/14679)
362
- - PHPExcel_Writer_PDF does not handle cell borders correctly - @MarkBaker [CodePlex #13559](https://phpexcel.codeplex.com/workitem/13559)
363
- - Style : applyFromArray() for 'allborders' not working - @MarkBaker [CodePlex #14831](https://phpexcel.codeplex.com/workitem/14831)
364
-
365
- ### General
366
-
367
- - Using $this when not in object context in Excel5 Reader - @MarkBaker [CodePlex #14837](https://phpexcel.codeplex.com/workitem/14837)
368
- - Removes a unnecessary loop through each cell when applying conditional formatting to a range. - @MarkBaker
369
- - Removed spurious PHP end tags (?>) - @MarkBaker
370
- - Improved performance (speed) and reduced memory overheads, particularly for the Writers, but across the whole library. - @MarkBaker
371
-
372
- ## [1.7.4] - 2010-08-26
373
-
374
- ### Bugfixes
375
-
376
- - Excel5 : Formula : Power - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
377
- - Excel5 : Formula : Unary plus - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
378
- - Excel5 : Just write the Escher stream if necessary in Worksheet - @Progi1984
379
- - Syntax errors in memcache.php 1.7.3c - @MarkBaker [CodePlex #13433](https://phpexcel.codeplex.com/workitem/13433)
380
- - Support for row or column ranges in the calculation engine, e.g. =SUM(C:C) or =SUM(1:2) - @MarkBaker
381
- - Also support in the calculation engine for absolute row or column ranges e.g. =SUM($C:$E) or =SUM($3:5)- Picture problem with Excel 2003 - @Erik Tilt [CodePlex #13455](https://phpexcel.codeplex.com/workitem/13455)
382
- - Wrong variable used in addExternalSheet in PHPExcel.php - @MarkBaker [CodePlex #13484](https://phpexcel.codeplex.com/workitem/13484)
383
- - "Invalid cell coordinate" error when formula access data from an other sheet - @MarkBaker [CodePlex #13515](https://phpexcel.codeplex.com/workitem/13515)
384
- - (related to Work item 13515) Calculation engine confusing cell range worksheet when referencing cells in a different worksheet to the formula - @MarkBaker
385
- - Wrong var naming in Worksheet->garbageCollect() - @MarkBaker [CodePlex #13752](https://phpexcel.codeplex.com/workitem/13752)
386
- - PHPExcel_Style_*::__clone() methods cause cloning loops? - @MarkBaker [CodePlex #13764](https://phpexcel.codeplex.com/workitem/13764)
387
- - Recent builds causing problems loading xlsx files? (ZipArchive issue?) - @MarkBaker [CodePlex #11488](https://phpexcel.codeplex.com/workitem/11488)
388
- - cache_to_apc causes fatal error when processing large data sets - @MarkBaker [CodePlex #13856](https://phpexcel.codeplex.com/workitem/13856)
389
- - OOCalc reader misses first line if it's a 'table-header-row' - @MarkBaker [CodePlex #13880](https://phpexcel.codeplex.com/workitem/13880)
390
- - using cache with copy or clone bug? - @MarkBaker [CodePlex #14011](https://phpexcel.codeplex.com/workitem/14011)
391
- - Fixed $worksheet->copy() or clone $worksheet when using cache_in_memory, cache_in_memory_gzip, cache_in_memory_serialized, cache_to_discISAM, cache_to_phpTemp, cache_to_apc and cache_to_memcache;
392
- - Fixed but untested when using cache_to_wincache.
393
- ### Features
394
-
395
- - Standard Deviation functions returning DIV/0 Error when Standard Deviation is zero - @MarkBaker [CodePlex #13450](https://phpexcel.codeplex.com/workitem/13450)
396
- - Support for print area with several ranges in the Excel2007 reader, and improved features for editing print area with several ranges - @MarkBaker
397
- - Improved Cell Exception Reporting - @MarkBaker [CodePlex #13769](https://phpexcel.codeplex.com/workitem/13769)
398
-
399
- ### General
400
-
401
- - Fixed problems with reading Excel2007 Properties - @MarkBaker
402
- - PHP Strict Standards: Non-static method PHPExcel_Shared_String::utf16_decode() should not be called statically - @MarkBaker
403
- - Array functions were ignored when loading an existing file containing them, and as a result, they would lose their 'cse' status. - @MarkBaker
404
- - Minor memory tweaks to Excel2007 Writer - @MarkBaker
405
- - Modified ReferenceHelper updateFormulaReferences() method to handle updates to row and column cell ranges (including absolute references e.g. =SUM(A:$E) or =SUM($5:5), and range/cell references that reference a worksheet by name), and to provide both performance and memory improvements. - @MarkBaker
406
- - Modified Excel2007 Reader so that ReferenceHelper class is instantiated only once rather than for every shared formula in a workbook. - @MarkBaker
407
- - Correct handling for additional (synonym) formula tokens in Excel5 Reader - @MarkBaker
408
- - Additional reading of some Excel2007 Extended Properties (Company, Manager) - @MarkBaker
409
-
410
- ## [1.7.3c] - 2010-06-01
411
-
412
- ### Bugfixes
413
-
414
- - Fatal error: Class 'ZipArchive' not found... ...Reader/Excel2007.php on line 217 - @MarkBaker [CodePlex #13012](https://phpexcel.codeplex.com/workitem/13012)
415
- - PHPExcel_Writer_Excel2007 error after 1.7.3b - @MarkBaker [CodePlex #13398](https://phpexcel.codeplex.com/workitem/13398)
416
-
417
- ## [1.7.3b] - 2010-05-31
418
-
419
- ### Bugfixes
420
-
421
- - Infinite loop when reading - @MarkBaker [CodePlex #12903](https://phpexcel.codeplex.com/workitem/12903)
422
- - Wrong method chaining on PHPExcel_Worksheet class - @MarkBaker [CodePlex #13381](https://phpexcel.codeplex.com/workitem/13381)
423
-
424
- ## [1.7.3] - 2010-05-17
425
-
426
- ### General
427
-
428
- - Applied patch 4990 (modified) - @Erik Tilt
429
- - Applied patch 5568 (modified) - @MarkBaker
430
- - Applied patch 5943 - @MarkBaker
431
- - Upgrade build script to use Phing - @MarkBaker [CodePlex #13042](https://phpexcel.codeplex.com/workitem/13042)
432
- - Replacing var with public/private - @Erik Tilt [CodePlex #11586](https://phpexcel.codeplex.com/workitem/11586)
433
- - Applied Anthony's Sterling's Class Autoloader to reduce memory overhead by "Lazy Loading" of classes - @MarkBaker
434
- - Modification to functions that accept a date parameter to support string values containing ordinals as per Excel (English language only) - @MarkBaker
435
- - Modify PHPExcel_Style_NumberFormat::toFormattedString() to handle dates that fall outside of PHP's 32-bit date range - @MarkBaker
436
- - Applied patch 5207 - @MarkBaker
437
-
438
- ### Features
439
-
440
- - PHPExcel developer documentation: Set page margins - @Erik Tilt [CodePlex #11970](https://phpexcel.codeplex.com/workitem/11970)
441
- - Special characters and accents in SYLK reader - @Erik Tilt [CodePlex #11038](https://phpexcel.codeplex.com/workitem/11038)
442
- - Implement more Excel calculation functions - @MarkBaker
443
- - Implemented the COUPDAYS(), COUPDAYBS(), COUPDAYSNC(), COUPNCD(), COUPPCD() and PRICE() Financial functions
444
- - Implemented the N() and TYPE() Information functions
445
- - Implemented the HYPERLINK() Lookup and Reference function- Horizontal page break support in PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #11526](https://phpexcel.codeplex.com/workitem/11526)
446
- - Introduce method setActiveSheetIndexByName() - @Erik Tilt [CodePlex #11529](https://phpexcel.codeplex.com/workitem/11529)
447
- - AdvancedValueBinder.php: Automatically wrap text when there is new line in string (ALT+"Enter") - @Erik Tilt [CodePlex #11550](https://phpexcel.codeplex.com/workitem/11550)
448
- - Data validation support in PHPExcel_Reader_Excel5 and PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10300](https://phpexcel.codeplex.com/workitem/10300)
449
- - Improve autosize calculation - @MarkBaker [CodePlex #11616](https://phpexcel.codeplex.com/workitem/11616)
450
- - Methods to translate locale-specific function names in formulae - @MarkBaker
451
- - Language implementations for Czech (cs), Danish (da), German (de), English (uk), Spanish (es), Finnish (fi), French (fr), Hungarian (hu), Italian (it), Dutch (nl), Norwegian (no), Polish (pl), Portuguese (pt), Brazilian Portuguese (pt_br), Russian (ru) and Swedish (sv)- Implement document properties in Excel5 reader/writer - @Erik Tilt [CodePlex #9759](https://phpexcel.codeplex.com/workitem/9759)
452
- - Fixed so far for PHPExcel_Reader_Excel5- Show/hide row and column headers in worksheet - @Erik Tilt [CodePlex #11849](https://phpexcel.codeplex.com/workitem/11849)
453
- - Can't set font on writing PDF (by key) - @Erik Tilt [CodePlex #11919](https://phpexcel.codeplex.com/workitem/11919)
454
- - Thousands scale (1000^n) support in PHPExcel_Style_NumberFormat::toFormattedString - @Erik Tilt [CodePlex #12096](https://phpexcel.codeplex.com/workitem/12096)
455
- - Implement repeating rows in PDF and HTML writer - @Erik Tilt
456
- - Sheet tabs in PHPExcel_Writer_HTML - @Erik Tilt [CodePlex #12289](https://phpexcel.codeplex.com/workitem/12289)
457
- - Add Wincache CachedObjectProvider - @MarkBaker [CodePlex #13041](https://phpexcel.codeplex.com/workitem/13041)
458
- - Configure PDF Writer paper size based on Excel Page Settings value, and provided methods to override paper size and page orientation with the writer - @MarkBaker
459
- - Note PHPExcel defaults to Letter size, while the previous PDF writer enforced A4 size, so PDF writer will now default to Letter- Initial implementation of cell caching: allowing larger workbooks to be managed, but at a cost in speed - @MarkBaker
460
-
461
- ### Bugfixes
462
-
463
- - Added an identify() method to the IO Factory that identifies the reader which will be used to load a particular file without actually loading it. - @MarkBaker
464
- - Warning messages with INDEX function having 2 arguments - @MarkBaker [CodePlex #10979](https://phpexcel.codeplex.com/workitem/10979)
465
- - setValue('=') should result in string instead of formula - @Erik Tilt [CodePlex #11473](https://phpexcel.codeplex.com/workitem/11473)
466
- - method _raiseFormulaError should no be private - @MarkBaker [CodePlex #11471](https://phpexcel.codeplex.com/workitem/11471)
467
- - Fatal error: Call to undefined function mb_substr() in ...Classes\PHPExcel\Reader\Excel5.php on line 2903 - @Erik Tilt [CodePlex #11485](https://phpexcel.codeplex.com/workitem/11485)
468
- - getBold(), getItallic(), getStrikeThrough() not always working with PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #11487](https://phpexcel.codeplex.com/workitem/11487)
469
- - AdvancedValueBinder.php not working correctly for $cell->setValue('hh:mm:ss') - @Erik Tilt [CodePlex #11492](https://phpexcel.codeplex.com/workitem/11492)
470
- - Fixed leap year handling for the YEARFRAC() Date/Time function when basis ia 1 (Actual/actual) - @MarkBaker
471
- - Warning messages - @MarkBaker [CodePlex #11490](https://phpexcel.codeplex.com/workitem/11490)
472
- - Calculation Engine code modified to enforce strict standards for pass by reference- PHPExcel_Cell_AdvancedValueBinder doesnt work for dates in far future - @Erik Tilt [CodePlex #11483](https://phpexcel.codeplex.com/workitem/11483)
473
- - MSODRAWING bug with long CONTINUE record in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #11528](https://phpexcel.codeplex.com/workitem/11528)
474
- - PHPExcel_Reader_Excel2007 reads print titles as named range when there is more than one sheet - @Erik Tilt [CodePlex #11571](https://phpexcel.codeplex.com/workitem/11571)
475
- - missing @return in phpdocblock in reader classes - @Erik Tilt [CodePlex #11561](https://phpexcel.codeplex.com/workitem/11561)
476
- - AdvancedValueBinder.php: String sometimes becomes a date when it shouldn't - @Erik Tilt [CodePlex #11576](https://phpexcel.codeplex.com/workitem/11576)
477
- - Small numbers escape treatment in PHPExcel_Style_NumberFormat::toFormattedString() - @Erik Tilt [CodePlex #11588](https://phpexcel.codeplex.com/workitem/11588)
478
- - Blank styled cells are not blank in output by HTML writer due to &nbsp; - @Erik Tilt [CodePlex #11590](https://phpexcel.codeplex.com/workitem/11590)
479
- - Calculation engine bug: Existing, blank cell + number gives #NUM - @MarkBaker [CodePlex #11587](https://phpexcel.codeplex.com/workitem/11587)
480
- - AutoSize only measures length of first line in cell with multiple lines (ALT+Enter) - @Erik Tilt [CodePlex #11608](https://phpexcel.codeplex.com/workitem/11608)
481
- - Fatal error running Tests/12serializedfileformat.php (PHPExcel 1.7.2) - @Erik Tilt [CodePlex #11608](https://phpexcel.codeplex.com/workitem/11608)
482
- - Fixed various errors in the WORKDAY() and NETWORKDAYS() Date/Time functions (particularly related to holidays) - @MarkBaker
483
- - Uncaught exception 'Exception' with message 'Valid scale is between 10 and 400.' in Classes/PHPExcel/Worksheet/SheetView.php:115 - @Erik Tilt [CodePlex #11660](https://phpexcel.codeplex.com/workitem/11660)
484
- - "Unrecognized token 39 in formula" with PHPExcel_Reader_Excel5 (occuring with add-in functions) - @Erik Tilt [CodePlex #11551](https://phpexcel.codeplex.com/workitem/11551)
485
- - Excel2007 reader not reading PHPExcel_Style_Conditional::CONDITION_EXPRESSION - @Erik Tilt [CodePlex #11668](https://phpexcel.codeplex.com/workitem/11668)
486
- - Fix to the BESSELI(), BESSELJ(), BESSELK(), BESSELY() and COMPLEX() Engineering functions to use correct default values for parameters - @MarkBaker
487
- - DATEVALUE function not working for pure time values + allow DATEVALUE() function to handle partial dates (e.g. "1-Jun" or "12/2010") - @MarkBaker [CodePlex #11525](https://phpexcel.codeplex.com/workitem/11525)
488
- - Fix for empty quoted strings in formulae - @MarkBaker
489
- - Trap for division by zero in Bessel functions - @MarkBaker
490
- - Fix to OOCalc Reader to convert semi-colon (;) argument separator in formulae to a comma (,) - @MarkBaker
491
- - PHPExcel_Writer_Excel5_Parser cannot parse formula like =SUM(C$5:C5) - @Erik Tilt [CodePlex #11693](https://phpexcel.codeplex.com/workitem/11693)
492
- - Fix to OOCalc Reader to handle dates that fall outside 32-bit PHP's date range - @MarkBaker
493
- - File->sys_get_temp_dir() can fail in safe mode - @Erik Tilt [CodePlex #11692](https://phpexcel.codeplex.com/workitem/11692)
494
- - Sheet references in Excel5 writer do not work when referenced sheet title contains non-Latin symbols - @Erik Tilt [CodePlex #11727](https://phpexcel.codeplex.com/workitem/11727)
495
- - Bug in HTML writer can result in missing rows in output - @Erik Tilt [CodePlex #11743](https://phpexcel.codeplex.com/workitem/11743)
496
- - setShowGridLines(true) not working with PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #11674](https://phpexcel.codeplex.com/workitem/11674)
497
- - PHPExcel_Worksheet_RowIterator initial position incorrect - @Erik Tilt [CodePlex #11836](https://phpexcel.codeplex.com/workitem/11836)
498
- - PHPExcel_Worksheet_HeaderFooterDrawing Strict Exception thrown (by jshaw86) - @Erik Tilt [CodePlex #11835](https://phpexcel.codeplex.com/workitem/11835)
499
- - Parts of worksheet lost when there are embedded charts (Excel5 reader) - @Erik Tilt [CodePlex #11850](https://phpexcel.codeplex.com/workitem/11850)
500
- - VLOOKUP() function error when lookup value is passed as a cell reference rather than an absolute value - @MarkBaker
501
- - First segment of Rich-Text not read correctly by PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #12041](https://phpexcel.codeplex.com/workitem/12041)
502
- - Fatal Error with getCell('name') when name matches the pattern for a cell reference - @MarkBaker [CodePlex #12048](https://phpexcel.codeplex.com/workitem/12048)
503
- - excel5 writer appears to be swapping image locations - @Erik Tilt [CodePlex #12039](https://phpexcel.codeplex.com/workitem/12039)
504
- - Undefined index: host in ZipStreamWrapper.php, line 94 and line 101 - @Erik Tilt [CodePlex #11954](https://phpexcel.codeplex.com/workitem/11954)
505
- - BIFF8 File Format problem (too short COLINFO record) - @Erik Tilt [CodePlex #11672](https://phpexcel.codeplex.com/workitem/11672)
506
- - Column width sometimes changed after read/write with Excel2007 reader/writer - @Erik Tilt [CodePlex #12121](https://phpexcel.codeplex.com/workitem/12121)
507
- - Worksheet.php throws a fatal error when styling is turned off via setReadDataOnly on the reader - @Erik Tilt [CodePlex #11964](https://phpexcel.codeplex.com/workitem/11964)
508
- - Checking for Circular References in Formulae - @MarkBaker [CodePlex #11851](https://phpexcel.codeplex.com/workitem/11851)
509
- - Calculation Engine code now traps for cyclic references, raising an error or throwing an exception, or allows 1 or more iterations through cyclic references, based on a configuration setting- PNG transparency using Excel2007 writer - @Erik Tilt [CodePlex #12244](https://phpexcel.codeplex.com/workitem/12244)
510
- - Custom readfilter error when cell formulas reference excluded cells (Excel5 reader) - @Erik Tilt [CodePlex #12221](https://phpexcel.codeplex.com/workitem/12221)
511
- - Protection problem in XLS - @Erik Tilt [CodePlex #12288](https://phpexcel.codeplex.com/workitem/12288)
512
- - getColumnDimension()->setAutoSize() incorrect on cells with Number Formatting - @Erik Tilt [CodePlex #12300](https://phpexcel.codeplex.com/workitem/12300)
513
- - Notices reading Excel file with Add-in funcitons (PHPExcel_Reader_Excel5) - @Erik Tilt [CodePlex #12378](https://phpexcel.codeplex.com/workitem/12378)
514
- - Excel5 reader not reading formulas with deleted sheet references - @Erik Tilt [CodePlex #12380](https://phpexcel.codeplex.com/workitem/12380)
515
- - Named range (defined name) scope problems for in PHPExcel - @Erik Tilt [CodePlex #12404](https://phpexcel.codeplex.com/workitem/12404)
516
- - PHP Parse error: syntax error, unexpected T_PUBLIC in PHPExcel/Calculation.php on line 3482 - @Erik Tilt [CodePlex #12423](https://phpexcel.codeplex.com/workitem/12423)
517
- - Named ranges don't appear in name box using Excel5 writer - @Erik Tilt [CodePlex #12505](https://phpexcel.codeplex.com/workitem/12505)
518
- - Many merged cells + autoSize column -> slows down the writer - @Erik Tilt [CodePlex #12509](https://phpexcel.codeplex.com/workitem/12509)
519
- - Incorrect fallback order comment in Shared/Strings.php ConvertEncoding() - @Erik Tilt [CodePlex #12539](https://phpexcel.codeplex.com/workitem/12539)
520
- - IBM AIX iconv() will not work, should revert to mbstring etc. instead - @Erik Tilt [CodePlex #12538](https://phpexcel.codeplex.com/workitem/12538)
521
- - Excel5 writer and mbstring functions overload - @Erik Tilt [CodePlex #12568](https://phpexcel.codeplex.com/workitem/12568)
522
- - OFFSET needs to flattenSingleValue the $rows and $columns args - @MarkBaker [CodePlex #12672](https://phpexcel.codeplex.com/workitem/12672)
523
- - Formula with DMAX(): Notice: Undefined offset: 2 in ...\PHPExcel\Calculation.php on line 2365 - @MarkBaker [CodePlex #12546](https://phpexcel.codeplex.com/workitem/12546)
524
- - Note that the Database functions have not yet been implemented- Call to a member function getParent() on a non-object in Classes\\PHPExcel\\Calculation.php Title is required - @MarkBaker [CodePlex #12839](https://phpexcel.codeplex.com/workitem/12839)
525
- - Cyclic Reference in Formula - @MarkBaker [CodePlex #12935](https://phpexcel.codeplex.com/workitem/12935)
526
- - Memory error...data validation? - @MarkBaker [CodePlex #13025](https://phpexcel.codeplex.com/workitem/13025)
527
-
528
- ## [1.7.2] - 2010-01-11
529
-
530
- ### General
531
-
532
- - Applied patch 4362 - @Erik Tilt
533
- - Applied patch 4363 (modified) - @Erik Tilt
534
- - 1.7.1 Extremely Slow - Refactored PHPExcel_Calculation_Functions::flattenArray() method and set calculation cache timer default to 2.5 seconds - @MarkBaker [CodePlex #10874](https://phpexcel.codeplex.com/workitem/10874)
535
- - Allow formulae to contain line breaks - @MarkBaker
536
- - split() function deprecated in PHP 5.3.0 - @Erik Tilt [CodePlex #10910](https://phpexcel.codeplex.com/workitem/10910)
537
- - sys_get_temp_dir() requires PHP 5.2.1, not PHP 5.2 [provide fallback function for PHP 5.2.0] - @Erik Tilt
538
- - Implementation of the ISPMT() Financial function by Matt Groves - @MarkBaker
539
- - Put the example of formula with more arguments in documentation - @MarkBaker [CodePlex #11052](https://phpexcel.codeplex.com/workitem/11052)
540
-
541
- ### Features
542
-
543
- - Improved accuracy for the GAMMAINV() Statistical Function - @MarkBaker
544
- - XFEXT record support to fix colors change from Excel5 reader, and copy/paste color change with Excel5 writer - @Erik Tilt [CodePlex #10409](https://phpexcel.codeplex.com/workitem/10409)
545
- - Excel5 reader reads RGB color information in XFEXT records for borders, font color and fill color- Implement more Excel calculation functions - @MarkBaker
546
- - Implemented the FVSCHEDULE(), XNPV(), IRR(), MIRR(), XIRR() and RATE() Financial functions
547
- - Implemented the SUMPRODUCT() Mathematical function
548
- - Implemented the ZTEST() Statistical Function- Multiple print areas in one sheet - @Erik Tilt [CodePlex #10919](https://phpexcel.codeplex.com/workitem/10919)
549
- - Store calculated values in output by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10930](https://phpexcel.codeplex.com/workitem/10930)
550
- - Sheet protection options in Excel5 reader/writer - @Erik Tilt [CodePlex #10939](https://phpexcel.codeplex.com/workitem/10939)
551
- - Modification of the COUNT(), AVERAGE(), AVERAGEA(), DEVSQ, AVEDEV(), STDEV(), STDEVA(), STDEVP(), STDEVPA(), VARA() and VARPA() SKEW() and KURT() functions to correctly handle boolean values depending on whether they're passed in as values, values within a matrix or values within a range of cells. - @MarkBaker
552
- - Cell range selection - @Erik Tilt
553
- - Root-relative path handling - @MarkBaker [CodePlex #10266](https://phpexcel.codeplex.com/workitem/10266)
554
-
555
- ### Bugfixes
556
-
557
- - Named Ranges not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #11315](https://phpexcel.codeplex.com/workitem/11315)
558
- - Excel2007 Reader fails to load Apache POI generated Excel - @MarkBaker [CodePlex #11206](https://phpexcel.codeplex.com/workitem/11206)
559
- - Number format is broken when system's thousands separator is empty - @MarkBaker [CodePlex #11154](https://phpexcel.codeplex.com/workitem/11154)
560
- - ReferenceHelper::updateNamedFormulas throws errors if oldName is empty - @MarkBaker [CodePlex #11401](https://phpexcel.codeplex.com/workitem/11401)
561
- - parse_url() fails to parse path to an image in xlsx - @MarkBaker [CodePlex #11296](https://phpexcel.codeplex.com/workitem/11296)
562
- - Workaround for iconv_substr() bug in PHP 5.2.0 - @Erik Tilt [CodePlex #10876](https://phpexcel.codeplex.com/workitem/10876)
563
- - 1 pixel error for image width and height with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10877](https://phpexcel.codeplex.com/workitem/10877)
564
- - Fix to GEOMEAN() Statistical function - @MarkBaker
565
- - setValue('-') and setValue('.') sets numeric 0 instead of 1-character string - @Erik Tilt [CodePlex #10884](https://phpexcel.codeplex.com/workitem/10884)
566
- - Row height sometimes much too low after read with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10885](https://phpexcel.codeplex.com/workitem/10885)
567
- - Diagonal border. Miscellaneous missing support. - @Erik Tilt [CodePlex #10888](https://phpexcel.codeplex.com/workitem/10888)
568
- - Constant PHPExcel_Style_Borders::DIAGONAL_BOTH added to support double-diagonal (cross)
569
- - PHPExcel_Reader_Excel2007 not always reading diagonal borders (only recognizes 'true' and not '1')
570
- - PHPExcel_Reader_Excel5 support for diagonal borders
571
- - PHPExcel_Writer_Excel5 support for diagonal borders- Session bug: Fatal error: Call to a member function bindValue() on a non-object in ...\Classes\PHPExcel\Cell.php on line 217 - @Erik Tilt [CodePlex #10894](https://phpexcel.codeplex.com/workitem/10894)
572
- - Colors messed up saving twice with same instance of PHPExcel_Writer_Excel5 (regression since 1.7.0) - @Erik Tilt [CodePlex #10896](https://phpexcel.codeplex.com/workitem/10896)
573
- - Method PHPExcel_Worksheet::setDefaultStyle is not working - @Erik Tilt [CodePlex #10917](https://phpexcel.codeplex.com/workitem/10917)
574
- - PHPExcel_Reader_CSV::canRead() sometimes says false when it shouldn't - @Erik Tilt [CodePlex #10897](https://phpexcel.codeplex.com/workitem/10897)
575
- - Changes in workbook not picked up between two saves with PHPExcel_Writer_Excel2007 - @Erik Tilt [CodePlex #10922](https://phpexcel.codeplex.com/workitem/10922)
576
- - Decimal and thousands separators missing in HTML and PDF output - @Erik Tilt [CodePlex #10913](https://phpexcel.codeplex.com/workitem/10913)
577
- - Notices with PHPExcel_Reader_Excel5 and named array constants - @Erik Tilt [CodePlex #10936](https://phpexcel.codeplex.com/workitem/10936)
578
- - Calculation engine limitation on 32-bit platform with integers > 2147483647 - @MarkBaker [CodePlex #10938](https://phpexcel.codeplex.com/workitem/10938)
579
- - Shared(?) formulae containing absolute cell references not read correctly using Excel5 Reader - @Erik Tilt [CodePlex #10959](https://phpexcel.codeplex.com/workitem/10959)
580
- - Warning messages with intersection operator involving single cell - @MarkBaker [CodePlex #10962](https://phpexcel.codeplex.com/workitem/10962)
581
- - Infinite loop in Excel5 reader caused by zero-length string in SST - @Erik Tilt [CodePlex #10980](https://phpexcel.codeplex.com/workitem/10980)
582
- - Remove unnecessary cell sorting to improve speed by approx. 18% in HTML and PDF writers - @Erik Tilt [CodePlex #10983](https://phpexcel.codeplex.com/workitem/10983)
583
- - Cannot read A1 cell content - OO_Reader - @MarkBaker [CodePlex #10977](https://phpexcel.codeplex.com/workitem/10977)
584
- - Transliteration failed, invalid encoding - @Erik Tilt [CodePlex #11000](https://phpexcel.codeplex.com/workitem/11000)
585
-
586
- ## [1.7.1] - 2009-11-02
587
-
588
- ### General
589
-
590
- - ereg() function deprecated in PHP 5.3.0 - @Erik Tilt [CodePlex #10687](https://phpexcel.codeplex.com/workitem/10687)
591
- - Writer Interface Inconsequence - setTempDir and setUseDiskCaching - @MarkBaker [CodePlex #10739](https://phpexcel.codeplex.com/workitem/10739)
592
-
593
- ### Features
594
-
595
- - Upgrade to TCPDF 4.8.009 - @Erik Tilt
596
- - Support for row and column styles (feature request) - @Erik Tilt
597
- - Basic implementation for Excel2007/Excel5 reader/writer- Hyperlink to local file in Excel5 reader/writer - @Erik Tilt [CodePlex #10459](https://phpexcel.codeplex.com/workitem/10459)
598
- - Color Tab (Color Sheet's name) - @MarkBaker [CodePlex #10472](https://phpexcel.codeplex.com/workitem/10472)
599
- - Border style "double" support in PHPExcel_Writer_HTML - @Erik Tilt [CodePlex #10488](https://phpexcel.codeplex.com/workitem/10488)
600
- - Multi-section number format support in HTML/PDF/CSV writers - @Erik Tilt [CodePlex #10492](https://phpexcel.codeplex.com/workitem/10492)
601
- - Some additional performance tweaks in the calculation engine - @MarkBaker
602
- - Fix result of DB() and DDB() Financial functions to 2dp when in Gnumeric Compatibility mode - @MarkBaker
603
- - Added AMORDEGRC(), AMORLINC() and COUPNUM() Financial function (no validation of parameters yet) - @MarkBaker
604
- - Improved accuracy of TBILLEQ(), TBILLPRICE() and TBILLYIELD() Financial functions when in Excel or Gnumeric mode - @MarkBaker
605
- - Added INDIRECT() Lookup/Reference function (only supports full addresses at the moment) - @MarkBaker
606
- - PHPExcel_Reader_CSV::canRead() improvements - @MarkBaker [CodePlex #10498](https://phpexcel.codeplex.com/workitem/10498)
607
- - Input encoding option for PHPExcel_Reader_CSV - @Erik Tilt [CodePlex #10500](https://phpexcel.codeplex.com/workitem/10500)
608
- - Colored number format support, e.g. [Red], in HTML/PDF output - @Erik Tilt [CodePlex #10493](https://phpexcel.codeplex.com/workitem/10493)
609
- - Color Tab (Color Sheet's name) [Excel5 reader/writer support] - @Erik Tilt [CodePlex #10559](https://phpexcel.codeplex.com/workitem/10559)
610
- - Initial version of SYLK (slk) and Excel 2003 XML Readers (Cell data and basic cell formatting) - @MarkBaker
611
- - Initial version of Open Office Calc (ods) Reader (Cell data only) - @MarkBaker
612
- - Initial use of "pass by reference" in the calculation engine for ROW() and COLUMN() Lookup/Reference functions - @MarkBaker
613
- - COLUMNS() and ROWS() Lookup/Reference functions, and SUBSTITUTE() Text function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
614
- - AdvancedValueBinder(): Re-enable zero-padded string-to-number conversion, e.g '0004' -> 4 - @Erik Tilt [CodePlex #10502](https://phpexcel.codeplex.com/workitem/10502)
615
- - Make PHP type match Excel datatype - @Erik Tilt [CodePlex #10600](https://phpexcel.codeplex.com/workitem/10600)
616
- - Change first page number on header - @MarkBaker [CodePlex #10630](https://phpexcel.codeplex.com/workitem/10630)
617
- - Applied patch 3941 - @MarkBaker
618
- - Hidden sheets - @MB,ET [CodePlex #10745](https://phpexcel.codeplex.com/workitem/10745)
619
- - mbstring fallback when iconv is broken - @Erik Tilt [CodePlex #10761](https://phpexcel.codeplex.com/workitem/10761)
620
- - Note, can't yet handle comparison of two matrices - @MarkBaker
621
- - Improved handling for validation and error trapping in a number of functions - @MarkBaker
622
- - Improved support for fraction number formatting - @MarkBaker
623
- - Support Reading CSV with Byte Order Mark (BOM) - @Erik Tilt [CodePlex #10455](https://phpexcel.codeplex.com/workitem/10455)
624
-
625
- ### Bugfixes
626
-
627
- - addExternalSheet() at specified index - @Erik Tilt [CodePlex #10860](https://phpexcel.codeplex.com/workitem/10860)
628
- - Named range can no longer be passed to worksheet->getCell() - @MarkBaker [CodePlex #10684](https://phpexcel.codeplex.com/workitem/10684)
629
- - RichText HTML entities no longer working in PHPExcel 1.7.0 - @Erik Tilt [CodePlex #10455](https://phpexcel.codeplex.com/workitem/10455)
630
- - Fit-to-width value of 1 is lost after read/write of Excel2007 spreadsheet [+ support for simultaneous scale/fitToPage] - @Erik Tilt
631
- - Performance issue identified by profiling - @MarkBaker [CodePlex #10469](https://phpexcel.codeplex.com/workitem/10469)
632
- - setSelectedCell is wrong - @Erik Tilt [CodePlex #10473](https://phpexcel.codeplex.com/workitem/10473)
633
- - Images get squeezed/stretched with (Mac) Verdana 10 Excel files using Excel5 reader/writer - @Erik Tilt [CodePlex #10481](https://phpexcel.codeplex.com/workitem/10481)
634
- - Error in argument count for DATEDIF() function - @MarkBaker [CodePlex #10482](https://phpexcel.codeplex.com/workitem/10482)
635
- - updateFormulaReferences is buggy - @MarkBaker [CodePlex #10452](https://phpexcel.codeplex.com/workitem/10452)
636
- - CellIterator returns null Cell if onlyExistingCells is set and key() is in use - @MarkBaker [CodePlex #10485](https://phpexcel.codeplex.com/workitem/10485)
637
- - Wrong RegEx for parsing cell references in formulas - @MarkBaker [CodePlex #10453](https://phpexcel.codeplex.com/workitem/10453)
638
- - Optimisation subverted to devastating effect if IterateOnlyExistingCells is clear - @MarkBaker [CodePlex #10486](https://phpexcel.codeplex.com/workitem/10486)
639
- - Fatal error: Uncaught exception 'Exception' with message 'Unrecognized token 6C in formula'... with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10494](https://phpexcel.codeplex.com/workitem/10494)
640
- - Fractions stored as text are not treated as numbers by PHPExcel's calculation engine - @MarkBaker [CodePlex #10490](https://phpexcel.codeplex.com/workitem/10490)
641
- - AutoFit (autosize) row height not working in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10503](https://phpexcel.codeplex.com/workitem/10503)
642
- - Fixed problem with null values breaking the calculation stack - @MarkBaker
643
- - Date number formats sometimes fail with PHPExcel_Style_NumberFormat::toFormattedString, e.g. [$-40047]mmmm d yyyy - @Erik Tilt [CodePlex #10524](https://phpexcel.codeplex.com/workitem/10524)
644
- - Fixed minor problem with DATEDIFF YM calculation - @MarkBaker
645
- - Applied patch 3695 - @MarkBaker
646
- - setAutosize() and Date cells not working properly - @Erik Tilt [CodePlex #10536](https://phpexcel.codeplex.com/workitem/10536)
647
- - Time value hour offset in output by HTML/PDF/CSV writers (system timezone problem) - @Erik Tilt [CodePlex #10556](https://phpexcel.codeplex.com/workitem/10556)
648
- - Control characters 0x14-0x1F are not treated by PHPExcel - @Erik Tilt [CodePlex #10558](https://phpexcel.codeplex.com/workitem/10558)
649
- - PHPExcel_Writer_Excel5 not working when open_basedir restriction is in effect - @Erik Tilt [CodePlex #10560](https://phpexcel.codeplex.com/workitem/10560)
650
- - IF formula calculation problem in PHPExcel 1.7.0 (string comparisons) - @MarkBaker [CodePlex #10563](https://phpexcel.codeplex.com/workitem/10563)
651
- - Improved CODE() Text function result for UTF-8 characters - @MarkBaker
652
- - Empty rows are collapsed with HTML/PDF writer - @Erik Tilt [CodePlex #10568](https://phpexcel.codeplex.com/workitem/10568)
653
- - Gaps between rows in output by PHPExcel_Writer_PDF (Upgrading to TCPDF 4.7.003) - @Erik Tilt [CodePlex #10569](https://phpexcel.codeplex.com/workitem/10569)
654
- - Problem reading formulas (Excel5 reader problem with "fake" shared formulas) - @Erik Tilt [CodePlex #10575](https://phpexcel.codeplex.com/workitem/10575)
655
- - Error type in formula: "_raiseFormulaError message is Formula Error: An unexpected error occured" - @MarkBaker [CodePlex #10588](https://phpexcel.codeplex.com/workitem/10588)
656
- - Miscellaneous column width problems in Excel5/Excel2007 writer - @Erik Tilt [CodePlex #10599](https://phpexcel.codeplex.com/workitem/10599)
657
- - Reader/Excel5 'Unrecognized token 2D in formula' in latest version - @Erik Tilt [CodePlex #10615](https://phpexcel.codeplex.com/workitem/10615)
658
- - on php 5.3 PHPExcel 1.7 Excel 5 reader fails in _getNextToken, token = 2C, throws exception - @Erik Tilt [CodePlex #10623](https://phpexcel.codeplex.com/workitem/10623)
659
- - Fatal error when altering styles after workbook has been saved - @Erik Tilt [CodePlex #10617](https://phpexcel.codeplex.com/workitem/10617)
660
- - Images vertically stretched or squeezed when default font size is changed (PHPExcel_Writer_Excel5) - @Erik Tilt [CodePlex #10661](https://phpexcel.codeplex.com/workitem/10661)
661
- - Styles not read in "manipulated" Excel2007 workbook - @Erik Tilt [CodePlex #10676](https://phpexcel.codeplex.com/workitem/10676)
662
- - Windows 7 says corrupt file by PHPExcel_Writer_Excel5 when opening in Excel - @Erik Tilt [CodePlex #10059](https://phpexcel.codeplex.com/workitem/10059)
663
- - Calculations sometimes not working with cell references to other sheets - @MarkBaker [CodePlex #10708](https://phpexcel.codeplex.com/workitem/10708)
664
- - Problem with merged cells after insertNewRowBefore() - @Erik Tilt [CodePlex #10706](https://phpexcel.codeplex.com/workitem/10706)
665
- - Applied patch 4023 - @MarkBaker
666
- - Fix to SUMIF() and COUNTIF() Statistical functions for when condition is a match against a string value - @MarkBaker
667
- - PHPExcel_Cell::coordinateFromString should throw exception for bad string parameter - @Erik Tilt [CodePlex #10721](https://phpexcel.codeplex.com/workitem/10721)
668
- - EucrosiaUPC (Thai font) not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10723](https://phpexcel.codeplex.com/workitem/10723)
669
- - Improved the return of calculated results when the result value is an array - @MarkBaker
670
- - Allow calculation engine to support Functions prefixed with @ within formulae - @MarkBaker
671
- - Intersection operator (space operator) fatal error with calculation engine - @MarkBaker [CodePlex #10632](https://phpexcel.codeplex.com/workitem/10632)
672
- - Chinese, Japanese, Korean characters show as squares in PDF - @Erik Tilt [CodePlex #10742](https://phpexcel.codeplex.com/workitem/10742)
673
- - sheet title allows invalid characters - @Erik Tilt [CodePlex #10756](https://phpexcel.codeplex.com/workitem/10756)
674
- - Sheet!$A$1 as function argument in formula causes infinite loop in Excel5 writer - @Erik Tilt [CodePlex #10757](https://phpexcel.codeplex.com/workitem/10757)
675
- - Cell range involving name not working with calculation engine - Modified calculation parser to handle range operator (:), but doesn't currently handle worksheet references with spaces or other non-alphameric characters, or trap erroneous references - @MarkBaker [CodePlex #10740](https://phpexcel.codeplex.com/workitem/10740)
676
- - DATE function problem with calculation engine (says too few arguments given) - @MarkBaker [CodePlex #10798](https://phpexcel.codeplex.com/workitem/10798)
677
- - Blank cell can cause wrong calculated value - @MarkBaker [CodePlex #10799](https://phpexcel.codeplex.com/workitem/10799)
678
- - Modified ROW() and COLUMN() Lookup/Reference Functions to return an array when passed a cell range, plus some additional work on INDEX() - @MarkBaker
679
- - Images not showing in Excel 97 using PHPExcel_Writer_Excel5 (patch by Jordi Gutiérrez Hermoso) - @Erik Tilt [CodePlex #10817](https://phpexcel.codeplex.com/workitem/10817)
680
- - When figures are contained in the excel sheet, Reader was stopped - @Erik Tilt [CodePlex #10785](https://phpexcel.codeplex.com/workitem/10785)
681
- - Formulas changed after insertNewRowBefore() - @MarkBaker [CodePlex #10818](https://phpexcel.codeplex.com/workitem/10818)
682
- - Cell range row offset problem with shared formulas using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10825](https://phpexcel.codeplex.com/workitem/10825)
683
- - Warning: Call-time pass-by-reference has been deprecated - @MarkBaker [CodePlex #10832](https://phpexcel.codeplex.com/workitem/10832)
684
- - Image should "Move but don't size with cells" instead of "Move and size with cells" with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10849](https://phpexcel.codeplex.com/workitem/10849)
685
- - Opening a Excel5 generated XLS in Excel 2007 results in header/footer entry not showing on input - @Erik Tilt [CodePlex #10856](https://phpexcel.codeplex.com/workitem/10856)
686
- - addExternalSheet() not returning worksheet - @Erik Tilt [CodePlex #10859](https://phpexcel.codeplex.com/workitem/10859)
687
- - Invalid results in formulas with named ranges - @MarkBaker [CodePlex #10629](https://phpexcel.codeplex.com/workitem/10629)
688
-
689
- ## [1.7.0] - 2009-08-10
690
-
691
- ### General
692
-
693
- - Expand documentation: Number formats - @Erik Tilt
694
- - Class 'PHPExcel_Cell_AdvancedValueBinder' not found - @Erik Tilt
695
-
696
- ### Features
697
-
698
- - Change return type of date functions to PHPExcel_Calculation_Functions::RETURNDATE_EXCEL - @MarkBaker
699
- - New RPN and stack-based calculation engine for improved performance of formula calculation - @MarkBaker
700
- - Faster (anything between 2 and 12 times faster than the old parser, depending on the complexity and nature of the formula)
701
- - Significantly more memory efficient when formulae reference cells across worksheets
702
- - Correct behaviour when referencing Named Ranges that exist on several worksheets
703
- - Support for Excel ^ (Exponential) and % (Percentage) operators
704
- - Support for matrices within basic arithmetic formulae (e.g. ={1,2,3;4,5,6;7,8,9}/2)
705
- - Better trapping/handling of NaN and infinity results (return #NUM! error)
706
- - Improved handling of empty parameters for Excel functions
707
- - Optional logging of calculation steps- New calculation engine can be accessed independently of workbooks (for use as a standalone calculator) - @MarkBaker
708
- - Implement more Excel calculation functions - @MarkBaker
709
- - Initial implementation of the COUNTIF() and SUMIF() Statistical functions
710
- - Added ACCRINT() Financial function- Modifications to number format handling for dddd and ddd masks in dates, use of thousand separators even when locale only implements it for money, and basic fraction masks (0 ?/? and ?/?) - @MarkBaker
711
- - Support arbitrary fixed number of decimals in PHPExcel_Style_NumberFormat::toFormattedString() - @Erik Tilt
712
- - Improving performance and memory on data dumps - @Erik Tilt
713
- - Various style optimizations (merging from branch wi6857-memory)
714
- - Moving hyperlink and dataValidation properties from cell to worksheet for lower PHP memory usage- Provide fluent interfaces where possible - @MarkBaker
715
- - Make easy way to apply a border to a rectangular selection - @Erik Tilt
716
- - Support for system window colors in PHPExcel_Reader_Excel5 - @Erik Tilt
717
- - Horizontal center across selection - @Erik Tilt
718
- - Merged cells record, write to full record size in PHPExcel_Writer_Excel5 - @Erik Tilt
719
- - Add page break between sheets in exported PDF - @MarkBaker
720
- - Sanitization of UTF-8 input for cell values - @Erik Tilt
721
- - Read cached calculated value with PHPExcel_Reader_Excel5 - @Erik Tilt
722
- - Miscellaneous CSS improvements for PHPExcel_Writer_HTML - @Erik Tilt
723
- - getProperties: setCompany feature request - @Erik Tilt
724
- - Insert worksheet at a specified index - @MarkBaker
725
- - Change worksheet index - @MarkBaker
726
- - Readfilter for CSV reader - @MarkBaker
727
- - Check value of mbstring.func_overload when saving with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10172](https://phpexcel.codeplex.com/workitem/10172)
728
- - Eliminate dependency of an include path pointing to class directory - @Erik Tilt [CodePlex #10251](https://phpexcel.codeplex.com/workitem/10251)
729
- - Method for getting the correct reader for a certain file (contribution) - @Erik Tilt [CodePlex #10292](https://phpexcel.codeplex.com/workitem/10292)
730
- - Choosing specific row in fromArray method - @Erik Tilt [CodePlex #10287](https://phpexcel.codeplex.com/workitem/10287)
731
- - Shared formula support in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10319](https://phpexcel.codeplex.com/workitem/10319)
732
-
733
- ### Bugfixes
734
-
735
- - Right-to-left column direction in worksheet - @MB,ET [CodePlex #10345](https://phpexcel.codeplex.com/workitem/10345)
736
- - PHPExcel_Reader_Excel5 not reading PHPExcel_Style_NumberFormat::FORMAT_NUMBER ('0') - @Erik Tilt
737
- - Fractional row height in locale other than English results in corrupt output using PHPExcel_Writer_Excel2007 - @Erik Tilt
738
- - Fractional (decimal) numbers not inserted correctly when locale is other than English - @Erik Tilt
739
- - Fractional calculated value in locale other than English results in corrupt output using PHPExcel_Writer_Excel2007 - @Erik Tilt
740
- - Locale aware decimal and thousands separator in exported formats HTML, CSV, PDF - @Erik Tilt
741
- - Cannot Add Image with Space on its Name - @MarkBaker
742
- - Black line at top of every page in output by PHPExcel_Writer_PDF - @Erik Tilt
743
- - Border styles and border colors not showing in HTML output (regression since 1.6.4) - @Erik Tilt
744
- - Hidden screen gridlines setting in worksheet not read by PHPExcel_Reader_Excel2007 - @Erik Tilt
745
- - Some valid sheet names causes corrupt output using PHPExcel_Writer_Excel2007 - @MarkBaker
746
- - More than 32,767 characters in a cell gives corrupt Excel file - @Erik Tilt
747
- - Images not getting copyied with the ->copy() function - @Erik Tilt
748
- - Bad calculation of column width setAutoSize(true) function - @Erik Tilt
749
- - Dates are sometimes offset by 1 day in output by HTML and PDF writers depending on system timezone setting - @Erik Tilt
750
- - Wingdings symbol fonts not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10003](https://phpexcel.codeplex.com/workitem/10003)
751
- - White space string prefix stripped by PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #10010](https://phpexcel.codeplex.com/workitem/10010)
752
- - The name of the Workbook stream MUST be "Workbook", not "Book" - @Erik Tilt [CodePlex #10023](https://phpexcel.codeplex.com/workitem/10023)
753
- - Avoid message "Microsoft Excel recalculates formulas..." when closing xls file from Excel - @Erik Tilt [CodePlex #10030](https://phpexcel.codeplex.com/workitem/10030)
754
- - Non-unique newline representation causes problems with LEN formula - @Erik Tilt [CodePlex #10031](https://phpexcel.codeplex.com/workitem/10031)
755
- - Newline in cell not showing with PHPExcel_Writer_HTML and PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #10033](https://phpexcel.codeplex.com/workitem/10033)
756
- - Rich-Text strings get prefixed by &nbsp; when output by HTML writer - @Erik Tilt [CodePlex #10046](https://phpexcel.codeplex.com/workitem/10046)
757
- - Leading spaces do not appear in output by HTML/PDF writers - @Erik Tilt [CodePlex #10052](https://phpexcel.codeplex.com/workitem/10052)
758
- - Empty Apache POI-generated file can not be read - @MarkBaker [CodePlex #10061](https://phpexcel.codeplex.com/workitem/10061)
759
- - Column width not scaling correctly with font size in HTML and PDF writers - @Erik Tilt [CodePlex #10068](https://phpexcel.codeplex.com/workitem/10068)
760
- - Inaccurate row heights with HTML writer - @Erik Tilt [CodePlex #10069](https://phpexcel.codeplex.com/workitem/10069)
761
- - Reference helper - @MarkBaker
762
- - Excel 5 Named ranges should not be local to the worksheet, but accessible from all worksheets - @MarkBaker
763
- - Row heights are ignored by PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #10088](https://phpexcel.codeplex.com/workitem/10088)
764
- - Write raw XML - @MarkBaker
765
- - removeRow(), removeColumn() not always clearing cell values - @Erik Tilt [CodePlex #10098](https://phpexcel.codeplex.com/workitem/10098)
766
- - Problem reading certain hyperlink records with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10142](https://phpexcel.codeplex.com/workitem/10142)
767
- - Hyperlink cell range read failure with PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #10143](https://phpexcel.codeplex.com/workitem/10143)
768
- - 'Column string index can not be empty.' - @MarkBaker [CodePlex #10149](https://phpexcel.codeplex.com/workitem/10149)
769
- - getHighestColumn() sometimes says there are 256 columns with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10204](https://phpexcel.codeplex.com/workitem/10204)
770
- - extractSheetTitle fails when sheet title contains exclamation mark (!) - @Erik Tilt [CodePlex #10220](https://phpexcel.codeplex.com/workitem/10220)
771
- - setTitle() sometimes erroneously appends integer to sheet name - @Erik Tilt [CodePlex #10221](https://phpexcel.codeplex.com/workitem/10221)
772
- - Mac BIFF5 Excel file read failure (missing support for Mac OS Roman character set) - @Erik Tilt [CodePlex #10229](https://phpexcel.codeplex.com/workitem/10229)
773
- - BIFF5 header and footer incorrectly read by PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10230](https://phpexcel.codeplex.com/workitem/10230)
774
- - iconv notices when reading hyperlinks with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10259](https://phpexcel.codeplex.com/workitem/10259)
775
- - Excel5 reader OLE read failure with small Mac BIFF5 Excel files - @Erik Tilt [CodePlex #10252](https://phpexcel.codeplex.com/workitem/10252)
776
- - Problem in reading formula : IF( IF ) with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10272](https://phpexcel.codeplex.com/workitem/10272)
777
- - Error reading formulas referencing external sheets with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10274](https://phpexcel.codeplex.com/workitem/10274)
778
- - Image horizontally stretched when default font size is increased (PHPExcel_Writer_Excel5) - @Erik Tilt [CodePlex #10291](https://phpexcel.codeplex.com/workitem/10291)
779
- - Undefined offset in Reader\Excel5.php on line 3572 - @Erik Tilt [CodePlex #10333](https://phpexcel.codeplex.com/workitem/10333)
780
- - PDF output different then XLS (copied data) - @MarkBaker [CodePlex #10340](https://phpexcel.codeplex.com/workitem/10340)
781
- - Internal hyperlinks with UTF-8 sheet names not working in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10352](https://phpexcel.codeplex.com/workitem/10352)
782
- - String shared formula result read error with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10361](https://phpexcel.codeplex.com/workitem/10361)
783
- - Uncaught exception 'Exception' with message 'Valid scale is between 10 and 400.' in Classes/PHPExcel/Worksheet/PageSetup.php:338 - @Erik Tilt [CodePlex #10363](https://phpexcel.codeplex.com/workitem/10363)
784
- - Using setLoadSheetsOnly fails if you do not use setReadDataOnly(true) and sheet is not the first sheet - @Erik Tilt [CodePlex #10355](https://phpexcel.codeplex.com/workitem/10355)
785
- - getCalculatedValue() sometimes incorrect with IF formula and 0-values - @MarkBaker [CodePlex #10362](https://phpexcel.codeplex.com/workitem/10362)
786
- - Excel Reader 2007 problem with "shared" formulae when "master" is an error - @MarkBaker
787
- - Named Range Bug, using the same range name on different worksheets - @MarkBaker
788
- - Java code in JAMA classes - @MarkBaker
789
- - getCalculatedValue() not working with some formulas involving error types - @MarkBaker
790
- - evaluation of both return values in an IF() statement returning an error if either result was an error, irrespective of the IF evaluation - @MarkBaker
791
- - Power in formulas: new calculation engine no longer treats ^ as a bitwise XOR operator - @MarkBaker
792
- - Bugfixes and improvements to many of the Excel functions in PHPExcel - @MarkBaker
793
- - Added optional "places" parameter in the BIN2HEX(), BIN2OCT, DEC2BIN(), DEC2OCT(), DEC2HEX(), HEX2BIN(), HEX2OCT(), OCT2BIN() and OCT2HEX() Engineering Functions
794
- - Trap for unbalanced matrix sizes in MDETERM() and MINVERSE() Mathematic and Trigonometric functions
795
- - Fix for default characters parameter value for LEFT() and RIGHT() Text functions
796
- - Fix for GCD() and LCB() Mathematical functions when the parameters include a zero (0) value
797
- - Fix for BIN2OCT() Engineering Function for 2s complement values (which were returning hex values)
798
- - Fix for BESSELK() and BESSELY() Engineering functions
799
- - Fix for IMDIV() Engineering Function when result imaginary component is positive (wasn't setting the sign)
800
- - Fix for ERF() Engineering Function when called with an upper limit value for the integration
801
- - Fix to DATE() Date/Time Function for year value of 0
802
- - Set ISPMT() function as category FINANCIAL
803
- - Fix for DOLLARDE() and DOLLARFR() Financial functions
804
- - Fix to EFFECT() Financial function (treating $nominal_rate value as a variable name rather than a value)
805
- - Fix to CRITBINOM() Statistical function (CurrentValue and EssentiallyZero treated as constants rather than variables)
806
- - Note that an Error in the function logic can still lead to a permanent loop
807
- - Fix to MOD() Mathematical function to work with floating point results
808
- - Fix for QUOTIENT() Mathematical function
809
- - Fix to HOUR(), MINUTE() and SECOND() Date/Time functions to return an error when passing in a floating point value of 1.0 or greater, or less than 0
810
- - LOG() Function now correctly returns base-10 log when called with only one parameter, rather than the natural log as the default base
811
- - Modified text functions to handle multibyte character set (UTF-8).
812
-
813
- ## [1.6.7] - 2009-04-22
814
-
815
- ### BREAKING CHANGE
816
-
817
- In previous versions of PHPExcel up to and including 1.6.6,
818
- when a cell had a date-like number format code, it was possible to enter a date
819
- directly using an integer PHP-time without converting to Excel date format.
820
- Starting with PHPExcel 1.6.7 this is no longer supported. Refer to the developer
821
- documentation for more information on entering dates into a cell.
822
-
823
- ### General
824
-
825
- - Deprecate misspelled setStriketrough() and getStriketrough() methods - @MarkBaker [CodePlex #9416](https://phpexcel.codeplex.com/workitem/9416)
826
-
827
- ### Features
828
-
829
- - Performance improvement when saving file - @MarkBaker [CodePlex #9526](https://phpexcel.codeplex.com/workitem/9526)
830
- - Check that sheet title has maximum 31 characters - @MarkBaker [CodePlex #9598](https://phpexcel.codeplex.com/workitem/9598)
831
- - True support for Excel built-in number format codes - @MB, ET [CodePlex #9631](https://phpexcel.codeplex.com/workitem/9631)
832
- - Ability to read defect BIFF5 Excel file without CODEPAGE record - @Erik Tilt [CodePlex #9683](https://phpexcel.codeplex.com/workitem/9683)
833
- - Auto-detect which reader to invoke - @MarkBaker [CodePlex #9701](https://phpexcel.codeplex.com/workitem/9701)
834
- - Deprecate insertion of dates using PHP-time (Unix time) [request for removal of feature] - @Erik Tilt [CodePlex #9214](https://phpexcel.codeplex.com/workitem/9214)
835
- - Support for entering time values like '9:45', '09:45' using AdvancedValueBinder - @Erik Tilt [CodePlex #9747](https://phpexcel.codeplex.com/workitem/9747)
836
-
837
- ### Bugfixes
838
-
839
- - DataType dependent horizontal alignment in HTML and PDF writer - @Erik Tilt [CodePlex #9797](https://phpexcel.codeplex.com/workitem/9797)
840
- - Cloning data validation object causes script to stop - @MarkBaker [CodePlex #9375](https://phpexcel.codeplex.com/workitem/9375)
841
- - Simultaneous repeating rows and repeating columns not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9400](https://phpexcel.codeplex.com/workitem/9400)
842
- - Simultaneous repeating rows and repeating columns not working with PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #9399](https://phpexcel.codeplex.com/workitem/9399)
843
- - Row outline level not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9437](https://phpexcel.codeplex.com/workitem/9437)
844
- - Occasional notices with PHPExcel_Reader_Excel5 when Excel file contains drawing elements - @Erik Tilt [CodePlex #9452](https://phpexcel.codeplex.com/workitem/9452)
845
- - PHPExcel_Reader_Excel5 fails as a whole when workbook contains images other than JPEG/PNG - @Erik Tilt [CodePlex #9453](https://phpexcel.codeplex.com/workitem/9453)
846
- - Excel5 writer checks for iconv but does not necessarily use it - @Erik Tilt [CodePlex #9444](https://phpexcel.codeplex.com/workitem/9444)
847
- - Altering a style on copied worksheet alters also the original - @Erik Tilt [CodePlex #9463](https://phpexcel.codeplex.com/workitem/9463)
848
- - Formulas are incorrectly updated when a sheet is renamed - @MarkBaker [CodePlex #9480](https://phpexcel.codeplex.com/workitem/9480)
849
- - PHPExcel_Worksheet::extractSheetTitle not treating single quotes correctly - @MarkBaker [CodePlex #9513](https://phpexcel.codeplex.com/workitem/9513)
850
- - PHP Warning raised in function array_key_exists - @MarkBaker [CodePlex #9477](https://phpexcel.codeplex.com/workitem/9477)
851
- - getAlignWithMargins() gives wrong value when using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9599](https://phpexcel.codeplex.com/workitem/9599)
852
- - getScaleWithDocument() gives wrong value when using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9600](https://phpexcel.codeplex.com/workitem/9600)
853
- - PHPExcel_Reader_Excel2007 not reading the first user-defined number format - @MarkBaker [CodePlex #9630](https://phpexcel.codeplex.com/workitem/9630)
854
- - Print area converted to uppercase after read with PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9647](https://phpexcel.codeplex.com/workitem/9647)
855
- - Incorrect reading of scope for named range using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9661](https://phpexcel.codeplex.com/workitem/9661)
856
- - Error with pattern (getFillType) and rbg (getRGB) - @MarkBaker [CodePlex #9690](https://phpexcel.codeplex.com/workitem/9690)
857
- - AdvancedValueBinder affected by system timezone setting when inserting date values - @Erik Tilt [CodePlex #9712](https://phpexcel.codeplex.com/workitem/9712)
858
- - PHPExcel_Reader_Excel2007 not reading value of active sheet index - @Erik Tilt [CodePlex #9743](https://phpexcel.codeplex.com/workitem/9743)
859
- - getARGB() sometimes returns SimpleXMLElement object instead of string with PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #9742](https://phpexcel.codeplex.com/workitem/9742)
860
- - Negative image offset causes defects in 14excel5.xls and 20readexcel5.xlsx - @Erik Tilt [CodePlex #9731](https://phpexcel.codeplex.com/workitem/9731)
861
- - HTML & PDF Writer not working with mergeCells (regression since 1.6.5) - @Erik Tilt [CodePlex #9758](https://phpexcel.codeplex.com/workitem/9758)
862
- - Too wide columns with HTML and PDF writer - @Erik Tilt [CodePlex #9774](https://phpexcel.codeplex.com/workitem/9774)
863
- - PDF and cyrillic fonts - @MarkBaker [CodePlex #9775](https://phpexcel.codeplex.com/workitem/9775)
864
- - Percentages not working correctly with HTML and PDF writers (shows 0.25% instead of 25%) - @Erik Tilt [CodePlex #9793](https://phpexcel.codeplex.com/workitem/9793)
865
- - PHPExcel_Writer_HTML creates extra borders around cell contents using setUseInlineCss(true) - @Erik Tilt [CodePlex #9791](https://phpexcel.codeplex.com/workitem/9791)
866
- - Problem with text wrap + merged cells in HTML and PDF writer - @Erik Tilt [CodePlex #9784](https://phpexcel.codeplex.com/workitem/9784)
867
- - Adjacent path separators in include_path causing IOFactory to violate open_basedir restriction - @Erik Tilt [CodePlex #9814](https://phpexcel.codeplex.com/workitem/9814)
868
-
869
- ## [1.6.6] - 2009-03-02
870
-
871
- ### General
872
-
873
- - Improve support for built-in number formats in PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9102](https://phpexcel.codeplex.com/workitem/9102)
874
- - Source files are in both UNIX and DOS formats - changed to UNIX - @Erik Tilt [CodePlex #9281](https://phpexcel.codeplex.com/workitem/9281)
875
-
876
- ### Features
877
-
878
- - Update documentation: Which language to write formulas in? - @MarkBaker [CodePlex #9338](https://phpexcel.codeplex.com/workitem/9338)
879
- - Ignore DEFCOLWIDTH records with value 8 in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8817](https://phpexcel.codeplex.com/workitem/8817)
880
- - Support for width, height, offsetX, offsetY for images in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8847](https://phpexcel.codeplex.com/workitem/8847)
881
- - Disk Caching in specific folder - @MarkBaker [CodePlex #8870](https://phpexcel.codeplex.com/workitem/8870)
882
- - Added SUMX2MY2, SUMX2PY2, SUMXMY2, MDETERM and MINVERSE Mathematical and Trigonometric Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
883
- - Added CONVERT Engineering Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
884
- - Added DB, DDB, DISC, DOLLARDE, DOLLARFR, INTRATE, IPMT, PPMT, PRICEDISC, PRICEMAT and RECEIVED Financial Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
885
- - Added ACCRINTM, CUMIPMT, CUMPRINC, TBILLEQ, TBILLPRICE, TBILLYIELD, YIELDDISC and YIELDMAT Financial Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
886
- - Added DOLLAR Text Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
887
- - Added CORREL, COVAR, FORECAST, INTERCEPT, RSQ, SLOPE and STEYX Statistical Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
888
- - Added PEARSON Statistical Functions as a synonym for CORREL - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
889
- - Added LINEST, LOGEST (currently only valid for stats = false), TREND and GROWTH Statistical Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
890
- - Added RANK and PERCENTRANK Statistical Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
891
- - Added ROMAN Mathematical Function (Classic form only) - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
892
- - Update documentation to show example of getCellByColumnAndRow($col, $row) - @MarkBaker [CodePlex #8931](https://phpexcel.codeplex.com/workitem/8931)
893
- - Implement worksheet, row and cell iterators - @MarkBaker [CodePlex #8770](https://phpexcel.codeplex.com/workitem/8770)
894
- - Support for arbitrary defined names (named range) - @MarkBaker [CodePlex #9001](https://phpexcel.codeplex.com/workitem/9001)
895
- - Update formulas when sheet title / named range title changes - @MB, ET [CodePlex #9016](https://phpexcel.codeplex.com/workitem/9016)
896
- - Ability to read cached calculated value - @MarkBaker [CodePlex #9103](https://phpexcel.codeplex.com/workitem/9103)
897
- - Support for Excel 1904 calendar date mode (Mac) - @MBaker, ET [CodePlex #8483](https://phpexcel.codeplex.com/workitem/8483)
898
- - PHPExcel_Writer_Excel5 improvements writing shared strings table - @Erik Tilt [CodePlex #9194](https://phpexcel.codeplex.com/workitem/9194)
899
- - PHPExcel_Writer_Excel5 iconv fallback when mbstring extension is not enabled - @Erik Tilt [CodePlex #9248](https://phpexcel.codeplex.com/workitem/9248)
900
- - UTF-8 support in font names in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9253](https://phpexcel.codeplex.com/workitem/9253)
901
- - Implement value binding architecture - @MarkBaker [CodePlex #9215](https://phpexcel.codeplex.com/workitem/9215)
902
- - PDF writer not working with UTF-8 - @MarkBaker [CodePlex #6742](https://phpexcel.codeplex.com/workitem/6742)
903
-
904
- ### Bugfixes
905
-
906
- - Eliminate duplicate style entries in multisheet workbook written by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9355](https://phpexcel.codeplex.com/workitem/9355)
907
- - Redirect to client browser fails due to trailing white space in class definitions - @Erik Tilt [CodePlex #8810](https://phpexcel.codeplex.com/workitem/8810)
908
- - Spurious column dimension element introduced in blank worksheet after using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #8816](https://phpexcel.codeplex.com/workitem/8816)
909
- - Image gets slightly narrower than expected when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8830](https://phpexcel.codeplex.com/workitem/8830)
910
- - Image laid over non-visible row gets squeezed in height when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8831](https://phpexcel.codeplex.com/workitem/8831)
911
- - PHPExcel_Reader_Excel5 fails when there are 10 or more images in the workbook - @Erik Tilt [CodePlex #8860](https://phpexcel.codeplex.com/workitem/8860)
912
- - Different header/footer images in different sheets not working with PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #8909](https://phpexcel.codeplex.com/workitem/8909)
913
- - Fractional seconds disappear when using PHPExcel_Reader_Excel2007 and PHPExcel_Reader_Excel5 - @MB, ET [CodePlex #8924](https://phpexcel.codeplex.com/workitem/8924)
914
- - Images not showing in OpenOffice when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7994](https://phpexcel.codeplex.com/workitem/7994)
915
- - Images not showing on print using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9047](https://phpexcel.codeplex.com/workitem/9047)
916
- - PHPExcel_Writer_Excel5 maximum allowed record size 4 bytes too short - @Erik Tilt [CodePlex #9085](https://phpexcel.codeplex.com/workitem/9085)
917
- - Not numeric strings are formatted as dates and numbers using worksheet's toArray method - @MarkBaker [CodePlex #9119](https://phpexcel.codeplex.com/workitem/9119)
918
- - Excel5 simple formula parsing error - @Erik Tilt [CodePlex #9132](https://phpexcel.codeplex.com/workitem/9132)
919
- - Problems writing dates with CSV - @Erik Tilt [CodePlex #9206](https://phpexcel.codeplex.com/workitem/9206)
920
- - PHPExcel_Reader_Excel5 reader fails with fatal error when reading group shapes - @Erik Tilt [CodePlex #9203](https://phpexcel.codeplex.com/workitem/9203)
921
- - PHPExcel_Writer_Excel5 fails completely when workbook contains more than 57 colors - @Erik Tilt [CodePlex #9231](https://phpexcel.codeplex.com/workitem/9231)
922
- - PHPExcel_Writer_PDF not compatible with autoload - @Erik Tilt [CodePlex #9244](https://phpexcel.codeplex.com/workitem/9244)
923
- - Fatal error: Call to a member function getNestingLevel() on a non-object in PHPExcel/Reader/Excel5.php on line 690 - @Erik Tilt [CodePlex #9250](https://phpexcel.codeplex.com/workitem/9250)
924
- - Notices when running test 04printing.php on PHP 5.2.8 - @MarkBaker [CodePlex #9246](https://phpexcel.codeplex.com/workitem/9246)
925
- - insertColumn() spawns creation of spurious RowDimension - @MarkBaker [CodePlex #9294](https://phpexcel.codeplex.com/workitem/9294)
926
- - Fix declarations for methods in extended Trend classes - @MarkBaker [CodePlex #9296](https://phpexcel.codeplex.com/workitem/9296)
927
- - Fix to parameters for the FORECAST Statistical Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
928
- - PDF writer problems with cell height and text wrapping - @MarkBaker [CodePlex #7083](https://phpexcel.codeplex.com/workitem/7083)
929
- - Fix test for calculated value in case the returned result is an array - @MarkBaker
930
- - Column greater than 256 results in corrupt Excel file using PHPExcel_Writer_Excel5 - @Erik Tilt
931
- - Excel Numberformat 0.00 results in non internal decimal places values in toArray() Method - @MarkBaker [CodePlex #9351](https://phpexcel.codeplex.com/workitem/9351)
932
- - setAutoSize not taking into account text rotation - @MB,ET [CodePlex #9356](https://phpexcel.codeplex.com/workitem/9356)
933
- - Call to undefined method PHPExcel_Worksheet_MemoryDrawing::getPath() in PHPExcel/Writer/HTML.php - @Erik Tilt [CodePlex #9372](https://phpexcel.codeplex.com/workitem/9372)
934
-
935
- ## [1.6.5] - 2009-01-05
936
-
937
- ### General
938
-
939
- - Applied patch 2063 - @MarkBaker
940
- - Optimise Shared Strings - @MarkBaker
941
- - Optimise Cell Sorting - @MarkBaker
942
- - Optimise Style Hashing - @MarkBaker
943
- - UTF-8 enhancements - @Erik Tilt
944
- - PHPExcel_Writer_HTML validation errors against strict HTML 4.01 / CSS 2.1 - @Erik Tilt
945
- - Documented work items 6203 and 8110 in manual - @MarkBaker
946
- - Restructure package hierachy so classes can be found more easily in auto-generated API (from work item 8468) - @Erik Tilt
947
-
948
- ### Features
949
-
950
- - Redirect output to a client's browser: Update recommendation in documentation - @MarkBaker [CodePlex #8806](https://phpexcel.codeplex.com/workitem/8806)
951
- - PHPExcel_Reader_Excel5 support for print gridlines - @Erik Tilt [CodePlex #7897](https://phpexcel.codeplex.com/workitem/7897)
952
- - Screen gridlines support in Excel5 reader/writer - @Erik Tilt [CodePlex #7899](https://phpexcel.codeplex.com/workitem/7899)
953
- - Option for adding image to spreadsheet from image resource in memory - @MB, ET [CodePlex #7552](https://phpexcel.codeplex.com/workitem/7552)
954
- - PHPExcel_Reader_Excel5 style support for BIFF5 files (Excel 5.0 - Excel 95) - @Erik Tilt [CodePlex #7862](https://phpexcel.codeplex.com/workitem/7862)
955
- - PHPExcel_Reader_Excel5 support for user-defined colors and special built-in colors - @Erik Tilt [CodePlex #7918](https://phpexcel.codeplex.com/workitem/7918)
956
- - Support for freeze panes in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7992](https://phpexcel.codeplex.com/workitem/7992)
957
- - Support for header and footer margins in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7996](https://phpexcel.codeplex.com/workitem/7996)
958
- - Support for active sheet index in Excel5 reader/writer - @Erik Tilt [CodePlex #7997](https://phpexcel.codeplex.com/workitem/7997)
959
- - Freeze panes not read by PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7991](https://phpexcel.codeplex.com/workitem/7991)
960
- - Support for screen zoom level (feature request) - @MB, ET [CodePlex #7993](https://phpexcel.codeplex.com/workitem/7993)
961
- - Support for default style in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8012](https://phpexcel.codeplex.com/workitem/8012)
962
- - Apple iWork / Numbers.app incompatibility - @MarkBaker [CodePlex #8094](https://phpexcel.codeplex.com/workitem/8094)
963
- - Support "between rule" in conditional formatting - @MarkBaker [CodePlex #7931](https://phpexcel.codeplex.com/workitem/7931)
964
- - Comment size, width and height control (feature request) - @MarkBaker [CodePlex #8308](https://phpexcel.codeplex.com/workitem/8308)
965
- - Improve method for storing MERGEDCELLS records in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8418](https://phpexcel.codeplex.com/workitem/8418)
966
- - Support for protectCells() in Excel5 reader/writer - @Erik Tilt [CodePlex #8435](https://phpexcel.codeplex.com/workitem/8435)
967
- - Support for fitToWidth and fitToHeight pagesetup properties in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8472](https://phpexcel.codeplex.com/workitem/8472)
968
- - Support for setShowSummaryBelow() and setShowSummaryRight() in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8489](https://phpexcel.codeplex.com/workitem/8489)
969
- - Support for Excel 1904 calendar date mode (Mac) - @MarkBaker [CodePlex #8483](https://phpexcel.codeplex.com/workitem/8483)
970
- - Excel5 reader: Support for reading images (bitmaps) - @Erik Tilt [CodePlex #7538](https://phpexcel.codeplex.com/workitem/7538)
971
- - Support for default style in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8787](https://phpexcel.codeplex.com/workitem/8787)
972
- - Modified calculate() method to return either an array or the first value from the array for those functions that return arrays rather than single values (e.g the MMULT and TRANSPOSE function). This performance can be modified based on the $returnArrayAsType which can be set/retrieved by calling the setArrayReturnType() and getArrayReturnType() methods of the PHPExcel_Calculation class. - @MarkBaker
973
-
974
- ### Bugfixes
975
-
976
- - Added ERROR.TYPE Information Function, MMULT Mathematical and Trigonometry Function, and TRANSPOSE Lookup and Reference Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
977
- - setPrintGridlines(true) not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7896](https://phpexcel.codeplex.com/workitem/7896)
978
- - Incorrect mapping of fill patterns in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7907](https://phpexcel.codeplex.com/workitem/7907)
979
- - setShowGridlines(false) not working with PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #7898](https://phpexcel.codeplex.com/workitem/7898)
980
- - getShowGridlines() gives inverted value when reading sheet with PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7905](https://phpexcel.codeplex.com/workitem/7905)
981
- - User-defined column width becomes slightly larger after read/write with Excel5 - @Erik Tilt [CodePlex #7944](https://phpexcel.codeplex.com/workitem/7944)
982
- - Incomplete border style support in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7949](https://phpexcel.codeplex.com/workitem/7949)
983
- - Conditional formatting "containsText" read/write results in MS Office Excel 2007 crash - @MarkBaker [CodePlex #7928](https://phpexcel.codeplex.com/workitem/7928)
984
- - All sheets are always selected in output when using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #7995](https://phpexcel.codeplex.com/workitem/7995)
985
- - COLUMN function warning message during plain read/write - @MarkBaker [CodePlex #8013](https://phpexcel.codeplex.com/workitem/8013)
986
- - setValue(0) results in string data type '0' - @MarkBaker [CodePlex #8155](https://phpexcel.codeplex.com/workitem/8155)
987
- - Styles not removed when removing rows from sheet - @MarkBaker [CodePlex #8226](https://phpexcel.codeplex.com/workitem/8226)
988
- - =IF formula causes fatal error during $objWriter->save() in Excel2007 format - @MarkBaker [CodePlex #8301](https://phpexcel.codeplex.com/workitem/8301)
989
- - Exception thrown reading valid xls file: "Excel file is corrupt. Didn't find CONTINUE record while reading shared strings" - @Erik Tilt [CodePlex #8333](https://phpexcel.codeplex.com/workitem/8333)
990
- - MS Outlook corrupts files generated by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8320](https://phpexcel.codeplex.com/workitem/8320)
991
- - Undefined method PHPExcel_Worksheet::setFreezePane() in ReferenceHelper.php on line 271 - @MarkBaker [CodePlex #8351](https://phpexcel.codeplex.com/workitem/8351)
992
- - Ampersands (&), left and right angles (<, >) in Rich-Text strings leads to corrupt output using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #8401](https://phpexcel.codeplex.com/workitem/8401)
993
- - Print header and footer not supporting UTF-8 in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8408](https://phpexcel.codeplex.com/workitem/8408)
994
- - Vertical page breaks not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8463](https://phpexcel.codeplex.com/workitem/8463)
995
- - Missing support for accounting underline types in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8476](https://phpexcel.codeplex.com/workitem/8476)
996
- - Infinite loops when reading corrupt xls file using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8482](https://phpexcel.codeplex.com/workitem/8482)
997
- - Sheet protection password not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8566](https://phpexcel.codeplex.com/workitem/8566)
998
- - PHPExcel_Style_NumberFormat::FORMAT_NUMBER ignored by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8596](https://phpexcel.codeplex.com/workitem/8596)
999
- - PHPExcel_Reader_Excel5 fails a whole when workbook contains a chart - @Erik Tilt [CodePlex #8781](https://phpexcel.codeplex.com/workitem/8781)
1000
- - Occasional loss of column widths using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8788](https://phpexcel.codeplex.com/workitem/8788)
1001
- - Notices while reading formulas with deleted sheet references using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8795](https://phpexcel.codeplex.com/workitem/8795)
1002
- - Default style not read by PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #8807](https://phpexcel.codeplex.com/workitem/8807)
1003
- - Blank rows occupy too much space in file generated by PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #9341](https://phpexcel.codeplex.com/workitem/9341)
1004
-
1005
- ## [1.6.4] - 2008-10-27
1006
-
1007
- ### Features
1008
-
1009
- - RK record number error in MS developer documentation: 0x007E should be 0x027E - @Erik Tilt [CodePlex #7882](https://phpexcel.codeplex.com/workitem/7882)
1010
- - getHighestColumn() returning "@" for blank worksheet causes corrupt output - @MarkBaker [CodePlex #7878](https://phpexcel.codeplex.com/workitem/7878)
1011
- - Implement ROW and COLUMN Lookup/Reference Functions (when specified with a parameter) - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1012
- - Implement initial work on OFFSET Lookup/Reference Function (returning address rather than value at address) - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1013
- - Excel5 reader: Page margins - @Erik Tilt [CodePlex #7416](https://phpexcel.codeplex.com/workitem/7416)
1014
- - Excel5 reader: Header & Footer - @Erik Tilt [CodePlex #7417](https://phpexcel.codeplex.com/workitem/7417)
1015
- - Excel5 reader support for page setup (paper size etc.) - @Erik Tilt [CodePlex #7449](https://phpexcel.codeplex.com/workitem/7449)
1016
- - Improve speed and memory consumption of PHPExcel_Writer_CSV - @MarkBaker [CodePlex #7445](https://phpexcel.codeplex.com/workitem/7445)
1017
- - Better recognition of number format in HTML, CSV, and PDF writer - @MarkBaker [CodePlex #7432](https://phpexcel.codeplex.com/workitem/7432)
1018
- - Font support: Superscript and Subscript - @MarkBaker [CodePlex #7485](https://phpexcel.codeplex.com/workitem/7485)
1019
- - Excel5 reader font support: Super- and subscript - @Erik Tilt [CodePlex #7509](https://phpexcel.codeplex.com/workitem/7509)
1020
- - Excel5 reader style support: Text rotation and stacked text - @Erik Tilt [CodePlex #7521](https://phpexcel.codeplex.com/workitem/7521)
1021
- - Excel5 reader: Support for hyperlinks - @Erik Tilt [CodePlex #7530](https://phpexcel.codeplex.com/workitem/7530)
1022
- - Import sheet by request - @MB, ET [CodePlex #7557](https://phpexcel.codeplex.com/workitem/7557)
1023
- - PHPExcel_Reader_Excel5 support for page breaks - @Erik Tilt [CodePlex #7607](https://phpexcel.codeplex.com/workitem/7607)
1024
- - PHPExcel_Reader_Excel5 support for shrink-to-fit - @Erik Tilt [CodePlex #7622](https://phpexcel.codeplex.com/workitem/7622)
1025
- - Support for error types - @MB, ET [CodePlex #7675](https://phpexcel.codeplex.com/workitem/7675)
1026
- - Excel5 reader true formula support - @Erik Tilt [CodePlex #7388](https://phpexcel.codeplex.com/workitem/7388)
1027
- - Support for named ranges (defined names) in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7701](https://phpexcel.codeplex.com/workitem/7701)
1028
- - Support for repeating rows and repeating columns (print titles) in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7781](https://phpexcel.codeplex.com/workitem/7781)
1029
- - Support for print area in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7783](https://phpexcel.codeplex.com/workitem/7783)
1030
- - Excel5 reader and writer support for horizontal and vertical centering of page - @Erik Tilt [CodePlex #7795](https://phpexcel.codeplex.com/workitem/7795)
1031
- - Applied patch 1962 - @MarkBaker
1032
- - Excel5 reader and writer support for hidden cells (formulas) - @Erik Tilt [CodePlex #7866](https://phpexcel.codeplex.com/workitem/7866)
1033
- - Support for indentation in cells (feature request) - @MB, ET [CodePlex #7612](https://phpexcel.codeplex.com/workitem/7612)
1034
-
1035
- ### Bugfixes
1036
-
1037
- - Option for reading only specified interval of rows in a sheet - @MB, ET [CodePlex #7828](https://phpexcel.codeplex.com/workitem/7828)
1038
- - PHPExcel_Calculation_Functions::DATETIMENOW() and PHPExcel_Calculation_Functions::DATENOW() to force UTC - @MarkBaker [CodePlex #7367](https://phpexcel.codeplex.com/workitem/7367)
1039
- - Modified PHPExcel_Shared_Date::FormattedPHPToExcel() and PHPExcel_Shared_Date::ExcelToPHP to force datatype for return values - @MarkBaker [CodePlex #7395](https://phpexcel.codeplex.com/workitem/7395)
1040
- - Excel5 reader not producing UTF-8 strings with BIFF5 files - @Erik Tilt [CodePlex #7450](https://phpexcel.codeplex.com/workitem/7450)
1041
- - Array constant in formula gives run-time notice with Excel2007 writer - @MarkBaker [CodePlex #7470](https://phpexcel.codeplex.com/workitem/7470)
1042
- - PHPExcel_Reader_Excel2007 setReadDataOnly(true) returns Rich-Text - @MarkBaker [CodePlex #7494](https://phpexcel.codeplex.com/workitem/7494)
1043
- - PHPExcel_Reader_Excel5 setReadDataOnly(true) returns Rich-Text - @Erik Tilt [CodePlex #7496](https://phpexcel.codeplex.com/workitem/7496)
1044
- - Characters before superscript or subscript losing style - @MarkBaker [CodePlex #7497](https://phpexcel.codeplex.com/workitem/7497)
1045
- - Subscript not working with HTML writer - @MarkBaker [CodePlex #7507](https://phpexcel.codeplex.com/workitem/7507)
1046
- - DefaultColumnDimension not working on first column (A) - @MarkBaker [CodePlex #7508](https://phpexcel.codeplex.com/workitem/7508)
1047
- - Negative numbers are stored as text in PHPExcel_Writer_2007 - @MarkBaker [CodePlex #7527](https://phpexcel.codeplex.com/workitem/7527)
1048
- - Text rotation and stacked text not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7531](https://phpexcel.codeplex.com/workitem/7531)
1049
- - PHPExcel_Shared_Date::isDateTimeFormatCode erroneously says true - @MarkBaker [CodePlex #7536](https://phpexcel.codeplex.com/workitem/7536)
1050
- - Different images with same filename in separate directories become duplicates - @MarkBaker [CodePlex #7559](https://phpexcel.codeplex.com/workitem/7559)
1051
- - PHPExcel_Reader_Excel5 not returning sheet names as UTF-8 using for Excel 95 files - @Erik Tilt [CodePlex #7568](https://phpexcel.codeplex.com/workitem/7568)
1052
- - setAutoSize(true) on empty column gives column width of 10 using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #7575](https://phpexcel.codeplex.com/workitem/7575)
1053
- - setAutoSize(true) on empty column gives column width of 255 using PHPExcel_Writer_Excel5 - @MB, ET [CodePlex #7573](https://phpexcel.codeplex.com/workitem/7573)
1054
- - Worksheet_Drawing bug - @MarkBaker [CodePlex #7514](https://phpexcel.codeplex.com/workitem/7514)
1055
- - getCalculatedValue() with REPT function causes script to stop - @MarkBaker [CodePlex #7593](https://phpexcel.codeplex.com/workitem/7593)
1056
- - getCalculatedValue() with LEN function causes script to stop - @MarkBaker [CodePlex #7594](https://phpexcel.codeplex.com/workitem/7594)
1057
- - Explicit fit-to-width (page setup) results in fit-to-height becoming 1 - @MarkBaker [CodePlex #7600](https://phpexcel.codeplex.com/workitem/7600)
1058
- - Fit-to-width value of 1 is lost after read/write of Excel2007 spreadsheet - @MarkBaker [CodePlex #7610](https://phpexcel.codeplex.com/workitem/7610)
1059
- - Conditional styles not read properly using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7516](https://phpexcel.codeplex.com/workitem/7516)
1060
- - PHPExcel_Writer_2007: Default worksheet style works only for first sheet - @MarkBaker [CodePlex #7611](https://phpexcel.codeplex.com/workitem/7611)
1061
- - Cannot Lock Cells using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #6940](https://phpexcel.codeplex.com/workitem/6940)
1062
- - Incorrect cell protection values found when using Excel5 reader - @Erik Tilt [CodePlex #7621](https://phpexcel.codeplex.com/workitem/7621)
1063
- - Default row height not working above highest row using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7623](https://phpexcel.codeplex.com/workitem/7623)
1064
- - Default column width does not get applied when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7637](https://phpexcel.codeplex.com/workitem/7637)
1065
- - Broken support for UTF-8 string formula results in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7642](https://phpexcel.codeplex.com/workitem/7642)
1066
- - UTF-8 sheet names not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7643](https://phpexcel.codeplex.com/workitem/7643)
1067
- - getCalculatedValue() with ISNONTEXT function causes script to stop - @MarkBaker [CodePlex #7631](https://phpexcel.codeplex.com/workitem/7631)
1068
- - Missing BIFF3 functions in PHPExcel_Writer_Excel5: USDOLLAR (YEN), FINDB, SEARCHB, REPLACEB, LEFTB, RIGHTB, MIDB, LENB, ASC, DBCS (JIS) - @Erik Tilt [CodePlex #7652](https://phpexcel.codeplex.com/workitem/7652)
1069
- - Excel5 reader doesn't read numbers correctly in 64-bit systems - @Erik Tilt [CodePlex #7663](https://phpexcel.codeplex.com/workitem/7663)
1070
- - Missing BIFF5 functions in PHPExcel_Writer_Excel5: ISPMT, DATEDIF, DATESTRING, NUMBERSTRING - @Erik Tilt [CodePlex #7667](https://phpexcel.codeplex.com/workitem/7667)
1071
- - Missing BIFF8 functions in PHPExcel_Writer_Excel5: GETPIVOTDATA, HYPERLINK, PHONETIC, AVERAGEA, MAXA, MINA, STDEVPA, VARPA, STDEVA, VARA - @Erik Tilt [CodePlex #7668](https://phpexcel.codeplex.com/workitem/7668)
1072
- - Wrong host value in PHPExcel_Shared_ZipStreamWrapper::stream_open() - @MarkBaker [CodePlex #7657](https://phpexcel.codeplex.com/workitem/7657)
1073
- - PHPExcel_Reader_Excel5 not reading explicitly entered error types in cells - @Erik Tilt [CodePlex #7676](https://phpexcel.codeplex.com/workitem/7676)
1074
- - Boolean and error data types not preserved for formula results in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7678](https://phpexcel.codeplex.com/workitem/7678)
1075
- - PHPExcel_Reader_Excel2007 ignores cell data type - @MarkBaker [CodePlex #7695](https://phpexcel.codeplex.com/workitem/7695)
1076
- - PHPExcel_Reader_Excel5 ignores cell data type - @Erik Tilt [CodePlex #7712](https://phpexcel.codeplex.com/workitem/7712)
1077
- - PHPExcel_Writer_Excel5 not aware of data type - @Erik Tilt [CodePlex #7587](https://phpexcel.codeplex.com/workitem/7587)
1078
- - Long strings sometimes truncated when using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7713](https://phpexcel.codeplex.com/workitem/7713)
1079
- - Direct entry of boolean or error type in cell not supported by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7727](https://phpexcel.codeplex.com/workitem/7727)
1080
- - PHPExcel_Reader_Excel2007: Error reading cell with data type string, date number format, and numeric-like cell value - @MarkBaker [CodePlex #7714](https://phpexcel.codeplex.com/workitem/7714)
1081
- - Row and column outlines (group indent level) not showing after using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7735](https://phpexcel.codeplex.com/workitem/7735)
1082
- - Missing UTF-8 support in number format codes for PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7737](https://phpexcel.codeplex.com/workitem/7737)
1083
- - Missing UTF-8 support with PHPExcel_Writer_Excel5 for explicit string in formula - @Erik Tilt [CodePlex #7750](https://phpexcel.codeplex.com/workitem/7750)
1084
- - Problem with class constants in PHPExcel_Style_NumberFormat - @MarkBaker [CodePlex #7726](https://phpexcel.codeplex.com/workitem/7726)
1085
- - Sometimes errors with PHPExcel_Reader_Excel5 reading hyperlinks - @Erik Tilt [CodePlex #7758](https://phpexcel.codeplex.com/workitem/7758)
1086
- - Hyperlink in cell always results in string data type when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7759](https://phpexcel.codeplex.com/workitem/7759)
1087
- - Excel file with blank sheet seen as broken in MS Office Excel 2007 when created by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7771](https://phpexcel.codeplex.com/workitem/7771)
1088
- - PHPExcel_Reader_Excel5: Incorrect reading of formula with explicit string containing (escaped) double-quote - @Erik Tilt [CodePlex #7785](https://phpexcel.codeplex.com/workitem/7785)
1089
- - getCalculatedValue() fails on formula with sheet name containing (escaped) single-quote - @MarkBaker [CodePlex #7787](https://phpexcel.codeplex.com/workitem/7787)
1090
- - getCalculatedValue() fails on formula with explicit string containing (escaped) double-quote - @MarkBaker [CodePlex #7786](https://phpexcel.codeplex.com/workitem/7786)
1091
- - Problems with simultaneous repeatRowsAtTop and repeatColumnsAtLeft using Excel2007 reader and writer - @MarkBaker [CodePlex #7780](https://phpexcel.codeplex.com/workitem/7780)
1092
- - PHPExcel_Reader_Excel5: Error reading formulas with sheet reference containing special characters - @Erik Tilt [CodePlex #7802](https://phpexcel.codeplex.com/workitem/7802)
1093
- - Off-sheet references sheet!A1 not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7831](https://phpexcel.codeplex.com/workitem/7831)
1094
- - Repeating rows/columns (print titles), print area not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7834](https://phpexcel.codeplex.com/workitem/7834)
1095
- - Formula having datetime number format shows as text when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7849](https://phpexcel.codeplex.com/workitem/7849)
1096
- - Cannot set formula to hidden using applyFromArray() - @MarkBaker [CodePlex #7863](https://phpexcel.codeplex.com/workitem/7863)
1097
- - HTML/PDF Writers limited to 26 columns by calculateWorksheetDimension (erroneous comparison in getHighestColumn() method) - @MarkBaker [CodePlex #7805](https://phpexcel.codeplex.com/workitem/7805)
1098
- - Formula returning error type is lost when read by PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7873](https://phpexcel.codeplex.com/workitem/7873)
1099
- - PHPExcel_Reader_Excel5: Cell style lost for last column in group of blank cells - @Erik Tilt [CodePlex #7883](https://phpexcel.codeplex.com/workitem/7883)
1100
- - Column width sometimes collapses to auto size using Excel2007 reader/writer - @MarkBaker [CodePlex #7886](https://phpexcel.codeplex.com/workitem/7886)
1101
- - Data Validation Formula = 0 crashes Excel - @MarkBaker [CodePlex #9343](https://phpexcel.codeplex.com/workitem/9343)
1102
-
1103
- ## [1.6.3] - 2008-08-25
1104
-
1105
- ### General
1106
-
1107
- - Modified PHPExcel_Shared_Date::PHPToExcel() to force UTC - @MarkBaker [CodePlex #7367](https://phpexcel.codeplex.com/workitem/7367)
1108
- - Applied patch 1629 - @MarkBaker
1109
- - Applied patch 1644 - @MarkBaker
1110
- - Implement repeatRow and repeatColumn in Excel5 writer - @MarkBaker [CodePlex #6485](https://phpexcel.codeplex.com/workitem/6485)
1111
-
1112
- ### Features
1113
-
1114
- - Remove scene3d filter in Excel2007 drawing - @MarkBaker [CodePlex #6838](https://phpexcel.codeplex.com/workitem/6838)
1115
- - Implement CHOOSE and INDEX Lookup/Reference Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1116
- - Implement CLEAN Text Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1117
- - Implement YEARFRAC Date/Time Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1118
- - Implement 2 options for print/show gridlines - @MarkBaker [CodePlex #6508](https://phpexcel.codeplex.com/workitem/6508)
1119
- - Add VLOOKUP function (contribution) - @MarkBaker [CodePlex #7270](https://phpexcel.codeplex.com/workitem/7270)
1120
- - Implemented: ShrinkToFit - @MarkBaker [CodePlex #7182](https://phpexcel.codeplex.com/workitem/7182)
1121
- - Row heights not updated correctly when inserting new rows - @MarkBaker [CodePlex #7218](https://phpexcel.codeplex.com/workitem/7218)
1122
- - Copy worksheets within the same workbook - @MarkBaker [CodePlex #7157](https://phpexcel.codeplex.com/workitem/7157)
1123
- - Excel5 reader style support: horizontal and vertical alignment plus text wrap - @Erik Tilt [CodePlex #7290](https://phpexcel.codeplex.com/workitem/7290)
1124
- - Excel5 reader support for merged cells - @Erik Tilt [CodePlex #7294](https://phpexcel.codeplex.com/workitem/7294)
1125
- - Excel5 reader: Sheet Protection - @Erik Tilt [CodePlex #7296](https://phpexcel.codeplex.com/workitem/7296)
1126
- - Excel5 reader: Password for sheet protection - @Erik Tilt [CodePlex #7297](https://phpexcel.codeplex.com/workitem/7297)
1127
- - Excel5 reader: Column width - @Erik Tilt [CodePlex #7299](https://phpexcel.codeplex.com/workitem/7299)
1128
- - Excel5 reader: Row height - @Erik Tilt [CodePlex #7301](https://phpexcel.codeplex.com/workitem/7301)
1129
- - Excel5 reader: Font support - @Erik Tilt [CodePlex #7304](https://phpexcel.codeplex.com/workitem/7304)
1130
- - Excel5 reader: support for locked cells - @Erik Tilt [CodePlex #7324](https://phpexcel.codeplex.com/workitem/7324)
1131
- - Excel5 reader style support: Fill (background colors and patterns) - @Erik Tilt [CodePlex #7330](https://phpexcel.codeplex.com/workitem/7330)
1132
- - Excel5 reader style support: Borders (style and color) - @Erik Tilt [CodePlex #7332](https://phpexcel.codeplex.com/workitem/7332)
1133
- - Excel5 reader: Rich-Text support - @Erik Tilt [CodePlex #7346](https://phpexcel.codeplex.com/workitem/7346)
1134
- - Read Excel built-in number formats with Excel 2007 reader - @MarkBaker [CodePlex #7313](https://phpexcel.codeplex.com/workitem/7313)
1135
- - Excel5 reader: Number format support - @Erik Tilt [CodePlex #7317](https://phpexcel.codeplex.com/workitem/7317)
1136
- - Creating a copy of PHPExcel object - @MarkBaker [CodePlex #7362](https://phpexcel.codeplex.com/workitem/7362)
1137
- - Excel5 reader: support for row / column outline (group) - @Erik Tilt [CodePlex #7373](https://phpexcel.codeplex.com/workitem/7373)
1138
- - Implement default row/column sizes - @MarkBaker [CodePlex #7380](https://phpexcel.codeplex.com/workitem/7380)
1139
- - Writer HTML - option to return styles and table separately - @MarkBaker [CodePlex #7364](https://phpexcel.codeplex.com/workitem/7364)
1140
-
1141
- ### Bugfixes
1142
-
1143
- - Excel5 reader: Support for remaining built-in number formats - @Erik Tilt [CodePlex #7393](https://phpexcel.codeplex.com/workitem/7393)
1144
- - Fixed rounding in HOUR MINUTE and SECOND Time functions, and improved performance for these - @MarkBaker
1145
- - Fix to TRIM function - @MarkBaker
1146
- - Fixed range validation in TIME Functions.php - @MarkBaker
1147
- - EDATE and EOMONTH functions now return date values based on the returnDateType flag - @MarkBaker
1148
- - Write date values that are the result of a calculation function correctly as Excel serialized dates rather than PHP serialized date values - @MarkBaker
1149
- - Excel2007 reader not always reading boolean correctly - @MarkBaker [CodePlex #6690](https://phpexcel.codeplex.com/workitem/6690)
1150
- - Columns above IZ - @MarkBaker [CodePlex #6275](https://phpexcel.codeplex.com/workitem/6275)
1151
- - Other locale than English causes Excel2007 writer to produce broken xlsx - @MarkBaker [CodePlex #6853](https://phpexcel.codeplex.com/workitem/6853)
1152
- - Typo: Number_fromat in NumberFormat.php - @MarkBaker [CodePlex #7061](https://phpexcel.codeplex.com/workitem/7061)
1153
- - Bug in Worksheet_BaseDrawing setWidth() - @MarkBaker [CodePlex #6865](https://phpexcel.codeplex.com/workitem/6865)
1154
- - PDF writer collapses column width for merged cells - @MarkBaker [CodePlex #6891](https://phpexcel.codeplex.com/workitem/6891)
1155
- - Issues with drawings filenames - @MarkBaker [CodePlex #6867](https://phpexcel.codeplex.com/workitem/6867)
1156
- - fromArray() local variable isn't defined - @MarkBaker [CodePlex #7073](https://phpexcel.codeplex.com/workitem/7073)
1157
- - PHPExcel_Writer_Excel5->setTempDir() not passed to all classes involved in writing to a file - @MarkBaker [CodePlex #7276](https://phpexcel.codeplex.com/workitem/7276)
1158
- - Excel5 reader not handling UTF-8 properly - @MarkBaker [CodePlex #7277](https://phpexcel.codeplex.com/workitem/7277)
1159
- - If you write a 0 value in cell, cell shows as empty - @MarkBaker [CodePlex #7327](https://phpexcel.codeplex.com/workitem/7327)
1160
- - Excel2007 writer: Row height ignored for empty rows - @MarkBaker [CodePlex #7302](https://phpexcel.codeplex.com/workitem/7302)
1161
- - Excel2007 (comments related error) - @MarkBaker [CodePlex #7281](https://phpexcel.codeplex.com/workitem/7281)
1162
- - Column width in other locale - @MarkBaker [CodePlex #7345](https://phpexcel.codeplex.com/workitem/7345)
1163
- - Excel2007 reader not reading underlined Rich-Text - @MarkBaker [CodePlex #7347](https://phpexcel.codeplex.com/workitem/7347)
1164
- - Excel5 reader converting booleans to strings - @Erik Tilt [CodePlex #7357](https://phpexcel.codeplex.com/workitem/7357)
1165
- - Recursive Object Memory Leak - @MarkBaker [CodePlex #7365](https://phpexcel.codeplex.com/workitem/7365)
1166
- - Excel2007 writer ignoring row dimensions without cells - @MarkBaker [CodePlex #7372](https://phpexcel.codeplex.com/workitem/7372)
1167
- - Excel5 reader is converting formatted numbers / dates to strings - @Erik Tilt [CodePlex #7382](https://phpexcel.codeplex.com/workitem/7382)
1168
-
1169
- ## [1.6.2] - 2008-06-23
1170
-
1171
- ### General
1172
-
1173
- - Document style array values - @MarkBaker [CodePlex #6088](https://phpexcel.codeplex.com/workitem/6088)
1174
- - Applied patch 1195 - @MarkBaker
1175
- - Redirecting output to a client’s web browser - http headers - @MarkBaker [CodePlex #6178](https://phpexcel.codeplex.com/workitem/6178)
1176
- - Improve worksheet garbage collection - @MarkBaker [CodePlex #6187](https://phpexcel.codeplex.com/workitem/6187)
1177
- - Functions that return date values can now be configured to return as Excel serialized date/time, PHP serialized date/time, or a PHP date/time object. - @MarkBaker
1178
- - Functions that explicitly accept dates as parameters now permit values as Excel serialized date/time, PHP serialized date/time, a valid date string, or a PHP date/time object. - @MarkBaker
1179
- - Implement ACOSH, ASINH and ATANH functions for those operating platforms/PHP versions that don't include these functions - @MarkBaker
1180
- - Implement ATAN2 logic reversing the arguments as per Excel - @MarkBaker
1181
- - Additional validation of parameters for COMBIN - @MarkBaker
1182
-
1183
- ### Features
1184
-
1185
- - Fixed validation for CEILING and FLOOR when the value and significance parameters have different signs; and allowed default value of 1 or -1 for significance when in GNUMERIC compatibility mode - @MarkBaker
1186
- - Implement ADDRESS, ISLOGICAL, ISTEXT and ISNONTEXT functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1187
- - Implement COMPLEX, IMAGINARY, IMREAL, IMARGUMENT, IMCONJUGATE, IMABS, IMSUB, IMDIV, IMSUM, IMPRODUCT, IMSQRT, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER IMCOS and IMSIN Engineering functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1188
- - Implement NETWORKDAYS and WORKDAY Date/Time functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1189
- - Make cell column AAA available - @MarkBaker [CodePlex #6100](https://phpexcel.codeplex.com/workitem/6100)
1190
- - Mark particular cell as selected when opening Excel - @MarkBaker [CodePlex #6095](https://phpexcel.codeplex.com/workitem/6095)
1191
- - Multiple sheets in PDF and HTML - @MarkBaker [CodePlex #6120](https://phpexcel.codeplex.com/workitem/6120)
1192
- - Implement PHPExcel_ReaderFactory and PHPExcel_WriterFactory - @MarkBaker [CodePlex #6227](https://phpexcel.codeplex.com/workitem/6227)
1193
- - Set image root of PHPExcel_Writer_HTML - @MarkBaker [CodePlex #6249](https://phpexcel.codeplex.com/workitem/6249)
1194
- - Enable/disable calculation cache - @MarkBaker [CodePlex #6264](https://phpexcel.codeplex.com/workitem/6264)
1195
- - PDF writer and multi-line text - @MarkBaker [CodePlex #6259](https://phpexcel.codeplex.com/workitem/6259)
1196
- - Feature request - setCacheExpirationTime() - @MarkBaker [CodePlex #6350](https://phpexcel.codeplex.com/workitem/6350)
1197
- - Implement late-binding mechanisms to reduce memory footprint - @JB [CodePlex #6370](https://phpexcel.codeplex.com/workitem/6370)
1198
- - Implement shared styles - @JB [CodePlex #6430](https://phpexcel.codeplex.com/workitem/6430)
1199
- - Copy sheet from external Workbook to active Workbook - @MarkBaker [CodePlex #6391](https://phpexcel.codeplex.com/workitem/6391)
1200
-
1201
- ### Bugfixes
1202
-
1203
- - Functions in Conditional Formatting - @MarkBaker [CodePlex #6428](https://phpexcel.codeplex.com/workitem/6428)
1204
- - Default Style in Excel5 - @MarkBaker [CodePlex #6096](https://phpexcel.codeplex.com/workitem/6096)
1205
- - Numbers starting with '+' cause Excel 2007 errors - @MarkBaker [CodePlex #6150](https://phpexcel.codeplex.com/workitem/6150)
1206
- - ExcelWriter5 is not PHP5 compatible, using it with E_STRICT results in a bunch of errors (applied patches) - @MarkBaker [CodePlex #6092](https://phpexcel.codeplex.com/workitem/6092)
1207
- - Error Reader Excel2007 line 653 foreach ($relsDrawing->Relationship as $ele) - @MarkBaker [CodePlex #6179](https://phpexcel.codeplex.com/workitem/6179)
1208
- - Worksheet toArray() screws up DATE - @MarkBaker [CodePlex #6229](https://phpexcel.codeplex.com/workitem/6229)
1209
- - References to a Richtext cell in a formula - @MarkBaker [CodePlex #6253](https://phpexcel.codeplex.com/workitem/6253)
1210
- - insertNewColumnBefore Bug - @MarkBaker [CodePlex #6285](https://phpexcel.codeplex.com/workitem/6285)
1211
- - Error reading Excel2007 file with shapes - @MarkBaker [CodePlex #6319](https://phpexcel.codeplex.com/workitem/6319)
1212
- - Determine whether date values need conversion from PHP dates to Excel dates before writing to file, based on the data type (float or integer) - @MarkBaker [CodePlex #6302](https://phpexcel.codeplex.com/workitem/6302)
1213
- - Fixes to DATE function when it is given negative input parameters - @MarkBaker
1214
- - PHPExcel handles empty cells other than Excel - @MarkBaker [CodePlex #6347](https://phpexcel.codeplex.com/workitem/6347)
1215
- - PHPExcel handles 0 and "" as being the same - @MarkBaker [CodePlex #6348](https://phpexcel.codeplex.com/workitem/6348)
1216
- - Problem Using Excel2007 Reader for Spreadsheets containing images - @MarkBaker [CodePlex #6357](https://phpexcel.codeplex.com/workitem/6357)
1217
- - ShowGridLines ignored when reading/writing Excel 2007 - @MarkBaker [CodePlex #6359](https://phpexcel.codeplex.com/workitem/6359)
1218
- - Bug With Word Wrap in Excel 2007 Reader - @MarkBaker [CodePlex #6426](https://phpexcel.codeplex.com/workitem/6426)
1219
-
1220
- ## [1.6.1] - 2008-04-28
1221
-
1222
- ### General
1223
-
1224
- - Fix documentation printing - @MarkBaker [CodePlex #5532](https://phpexcel.codeplex.com/workitem/5532)
1225
- - Memory usage improvements - @MarkBaker [CodePlex #5586](https://phpexcel.codeplex.com/workitem/5586)
1226
- - Applied patch 990 - @MarkBaker
1227
-
1228
- ### Features
1229
-
1230
- - Applied patch 991 - @MarkBaker
1231
- - Implement PHPExcel_Reader_Excel5 - @BM [CodePlex #2841](https://phpexcel.codeplex.com/workitem/2841)
1232
- - Implement "toArray" and "fromArray" method - @MarkBaker [CodePlex #5564](https://phpexcel.codeplex.com/workitem/5564)
1233
- - Read shared formula - @MarkBaker [CodePlex #5665](https://phpexcel.codeplex.com/workitem/5665)
1234
- - Read image twoCellAnchor - @MarkBaker [CodePlex #5681](https://phpexcel.codeplex.com/workitem/5681)
1235
- - &G Image as bg for headerfooter - @MarkBaker [CodePlex #4446](https://phpexcel.codeplex.com/workitem/4446)
1236
- - Implement page layout functionality for Excel5 format - @MarkBaker [CodePlex #5834](https://phpexcel.codeplex.com/workitem/5834)
1237
-
1238
- ### Bugfixes
1239
-
1240
- - Feature request: PHPExcel_Writer_PDF - @MarkBaker [CodePlex #6039](https://phpexcel.codeplex.com/workitem/6039)
1241
- - DefinedNames null check - @MarkBaker [CodePlex #5517](https://phpexcel.codeplex.com/workitem/5517)
1242
- - Hyperlinks should not always have trailing slash - @MarkBaker [CodePlex #5463](https://phpexcel.codeplex.com/workitem/5463)
1243
- - Saving Error - Uncaught exception (#REF! named range) - @MarkBaker [CodePlex #5592](https://phpexcel.codeplex.com/workitem/5592)
1244
- - Error when creating Zip file on Linux System (Not Windows) - @MarkBaker [CodePlex #5634](https://phpexcel.codeplex.com/workitem/5634)
1245
- - Time incorrecly formated - @MarkBaker [CodePlex #5876](https://phpexcel.codeplex.com/workitem/5876)
1246
- - Conditional formatting - second rule not applied - @MarkBaker [CodePlex #5914](https://phpexcel.codeplex.com/workitem/5914)
1247
- - PHPExcel_Reader_Excel2007 cannot load PHPExcel_Shared_File - @MarkBaker [CodePlex #5978](https://phpexcel.codeplex.com/workitem/5978)
1248
- - Output redirection to web browser - @MarkBaker [CodePlex #6020](https://phpexcel.codeplex.com/workitem/6020)
1249
-
1250
- ## [1.6.0] - 2008-02-14
1251
-
1252
- ### Features
1253
-
1254
- - Use PHPExcel datatypes in formula calculation - @MarkBaker [CodePlex #3156](https://phpexcel.codeplex.com/workitem/3156)
1255
- - Center on page when printing - @MarkBaker [CodePlex #5019](https://phpexcel.codeplex.com/workitem/5019)
1256
- - Hyperlink to other spreadsheet - @MarkBaker [CodePlex #5099](https://phpexcel.codeplex.com/workitem/5099)
1257
- - Set the print area of a worksheet - @MarkBaker [CodePlex #5104](https://phpexcel.codeplex.com/workitem/5104)
1258
- - Read "definedNames" property of worksheet - @MarkBaker [CodePlex #5118](https://phpexcel.codeplex.com/workitem/5118)
1259
- - Set default style for all cells - @MarkBaker [CodePlex #5338](https://phpexcel.codeplex.com/workitem/5338)
1260
- - Named Ranges - @MarkBaker [CodePlex #4216](https://phpexcel.codeplex.com/workitem/4216)
1261
-
1262
- ### Bugfixes
1263
-
1264
- - Implement worksheet references (Sheet1!A1) - @MarkBaker [CodePlex #5398](https://phpexcel.codeplex.com/workitem/5398)
1265
- - Redirect output to a client's web browser - @MarkBaker [CodePlex #4967](https://phpexcel.codeplex.com/workitem/4967)
1266
- - "File Error: data may have been lost." seen in Excel 2007 and Excel 2003 SP3 when opening XLS file - @MarkBaker [CodePlex #5008](https://phpexcel.codeplex.com/workitem/5008)
1267
- - Bug in style's getHashCode() - @MarkBaker [CodePlex #5165](https://phpexcel.codeplex.com/workitem/5165)
1268
- - PHPExcel_Reader not correctly reading numeric values - @MarkBaker [CodePlex #5165](https://phpexcel.codeplex.com/workitem/5165)
1269
- - Text rotation is read incorrectly - @MarkBaker [CodePlex #5324](https://phpexcel.codeplex.com/workitem/5324)
1270
- - Enclosure " and data " result a bad data : \" instead of "" - @MarkBaker [CodePlex #5326](https://phpexcel.codeplex.com/workitem/5326)
1271
- - Formula parser - IF statement returning array instead of scalar - @MarkBaker [CodePlex #5332](https://phpexcel.codeplex.com/workitem/5332)
1272
- - setFitToWidth(nbpage) & setFitToWidth(nbpage) work partially - @MarkBaker [CodePlex #5351](https://phpexcel.codeplex.com/workitem/5351)
1273
- - Worksheet::setTitle() causes unwanted renaming - @MarkBaker [CodePlex #5361](https://phpexcel.codeplex.com/workitem/5361)
1274
- - Hyperlinks not working. Results in broken xlsx file. - @MarkBaker [CodePlex #5407](https://phpexcel.codeplex.com/workitem/5407)
1275
-
1276
- ## [1.5.5] - 2007-12-24
1277
-
1278
- ### General
1279
-
1280
- - Grouping Rows - @MarkBaker [CodePlex #4135](https://phpexcel.codeplex.com/workitem/4135)
1281
-
1282
- ### Features
1283
-
1284
- - Semi-nightly builds - @MarkBaker [CodePlex #4427](https://phpexcel.codeplex.com/workitem/4427)
1285
- - Implement "date" datatype - @MarkBaker [CodePlex #3155](https://phpexcel.codeplex.com/workitem/3155)
1286
- - Date format not honored in CSV writer - @MarkBaker [CodePlex #4150](https://phpexcel.codeplex.com/workitem/4150)
1287
- - RichText and sharedStrings - @MarkBaker [CodePlex #4199](https://phpexcel.codeplex.com/workitem/4199)
1288
- - Implement more Excel calculation functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1289
- - Addition of DATE, DATEDIF, DATEVALUE, DAY, DAYS360- Implement more Excel calculation functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1290
- - Addition of AVEDEV, HARMEAN and GEOMEAN
1291
- - Addition of the BINOMDIST (Non-cumulative only), COUNTBLANK, EXPONDIST, FISHER, FISHERINV, NORMDIST, NORMSDIST, PERMUT, POISSON (Non-cumulative only) and STANDARDIZE Statistical Functions
1292
- - Addition of the CEILING, COMBIN, EVEN, FACT, FACTDOUBLE, FLOOR, MULTINOMIAL, ODD, ROUNDDOWN, ROUNDUP, SIGN, SQRTPI and SUMSQ Mathematical Functions
1293
- - Addition of the NORMINV, NORMSINV, CONFIDENCE and SKEW Statistical Functions
1294
- - Addition of the CRITBINOM, HYPGEOMDIST, KURT, LOGINV, LOGNORMDIST, NEGBINOMDIST and WEIBULL Statistical Functions
1295
- - Addition of the LARGE, PERCENTILE, QUARTILE, SMALL and TRIMMEAN Statistical Functions
1296
- - Addition of the BIN2HEX, BIN2OCT, DELTA, ERF, ERFC, GESTEP, HEX2BIN, HEX2DEC, HEX2OCT, OCT2BIN and OCT2HEX Engineering Functions
1297
- - Addition of the CHIDIST, GAMMADIST and GAMMALN Statistical Functions
1298
- - Addition of the GCD, LCM, MROUND and SUBTOTAL Mathematical Functions
1299
- - Addition of the LOWER, PROPER and UPPER Text Functions
1300
- - Addition of the BETADIST and BETAINV Statistical Functions
1301
- - Addition of the CHIINV and GAMMAINV Statistical Functions
1302
- - Addition of the SERIESSUM Mathematical Function
1303
- - Addition of the CHAR, CODE, FIND, LEN, REPT, SEARCH, T, TRIM Text Functions
1304
- - Addition of the FALSE and TRUE Boolean Functions
1305
- - Addition of the TDIST and TINV Statistical Functions
1306
- - Addition of the EDATE, EOMONTH, YEAR, MONTH, TIME, TIMEVALUE, HOUR, MINUTE, SECOND, WEEKDAY, WEEKNUM, NOW, TODAY and Date/Time Function
1307
- - Addition of the BESSELI, BESSELJ, BESSELK and BESSELY Engineering Functions
1308
- - Addition of the SLN and SYD Financial Functions
1309
- - reworked MODE calculation to handle floating point numbers
1310
- - Improved error trapping for invalid input values
1311
- - Fix to SMALL, LARGE, PERCENTILE and TRIMMEAN to eliminate non-numeric values
1312
- - Added CDF to BINOMDIST and POISSON
1313
- - Fix to a potential endless loop in CRITBINOM, together with other bugfixes to the algorithm
1314
- - Fix to SQRTPI so that it will work with a real value parameter rather than just integers
1315
- - Trap for passing negative values to FACT
1316
- - Improved accuracy of the NORMDIST cumulative function, and of the ERF and ERFC functions
1317
- - Replicated Excel data-type and error handling for BIN, DEC, OCT and HEX conversion functions
1318
- - Replicated Excel data-type and error handling for AND and OR Boolean functions
1319
- - Bugfix to MROUND
1320
- - Rework of the DATE, DATEVALUE, DAY, DAYS360 and DATEDIF date/Time functions to use Excel dates rather than straight PHP dates
1321
- - Rework of the AND, OR Boolean functions to ignore string values
1322
- - Rework of the BIN2DEC, BIN2HEX, BIN2OCT, DEC2BIN, DEC2HEX, DEC2OCT Engineering functions to handle two's complement
1323
- - Excel, Gnumeric and OpenOffice Calc compatibility flag for functions
1324
- - Note, not all functions have yet been written to work with the Gnumeric and OpenOffice Calc compatibility flags
1325
- - 1900 or 1904 Calendar flag for date functions
1326
- - Reworked ExcelToPHP date method to handle the Excel 1900 leap year
1327
- - Note that this will not correctly return values prior to 13-Dec-1901 20:45:52 as this is the minimum value that PHP date serial values can handle. If you need to work with dates prior to this, then an ExcelToPHPObject method has been added which will work correctly with values between Excel's 1900 calendar base date of 1-Jan-1900, and 13-Dec-1901
1328
- - Addition of ExcelToPHPObject date method to return a PHP DateTime object from an Excel date serial value
1329
- - PHPToExcel method modified to accept either PHP date serial numbers or PHP DateTime objects
1330
- - Addition of FormattedPHPToExcel which will accept a date and time broken to into year, month, day, hour, minute, second and return an Excel date serial value- Control characters in Excel 2007 - @MarkBaker [CodePlex #4485](https://phpexcel.codeplex.com/workitem/4485)
1331
- - BaseDrawing::setWidthAndHeight method request - @MarkBaker [CodePlex #4796](https://phpexcel.codeplex.com/workitem/4796)
1332
- - Page Setup -> Print Titles -> Sheet -> 'Rows to repeat at top' - @MarkBaker [CodePlex #4798](https://phpexcel.codeplex.com/workitem/4798)
1333
-
1334
- ### Bugfixes
1335
-
1336
- - Comment functionality - @MarkBaker [CodePlex #4433](https://phpexcel.codeplex.com/workitem/4433)
1337
- - Undefined variable in PHPExcel_Writer_Serialized - @MarkBaker [CodePlex #4124](https://phpexcel.codeplex.com/workitem/4124)
1338
- - Notice: Object of class PHPExcel_RichText could not be converted to int - @MarkBaker [CodePlex #4125](https://phpexcel.codeplex.com/workitem/4125)
1339
- - Excel5Writer: utf8 string not converted to utf16 - @MarkBaker [CodePlex #4126](https://phpexcel.codeplex.com/workitem/4126)
1340
- - PHPExcel_RichText and autosize - @MarkBaker [CodePlex #4180](https://phpexcel.codeplex.com/workitem/4180)
1341
- - Excel5Writer produces broken xls files after change mentioned in work item 4126 - @MarkBaker [CodePlex #4574](https://phpexcel.codeplex.com/workitem/4574)
1342
- - Small bug in PHPExcel_Reader_Excel2007 function _readStyle - @MarkBaker [CodePlex #4797](https://phpexcel.codeplex.com/workitem/4797)
1343
-
1344
- ## [1.5.0] - 2007-10-23
1345
-
1346
- ### Features
1347
-
1348
- - Refactor PHPExcel Drawing - @MarkBaker [CodePlex #3265](https://phpexcel.codeplex.com/workitem/3265)
1349
- - Update Shared/OLE.php to latest version from PEAR - @CS [CodePlex #3079](https://phpexcel.codeplex.com/workitem/3079)
1350
- - Excel2007 vs Excel2003 compatibility pack - @MarkBaker [CodePlex #3217](https://phpexcel.codeplex.com/workitem/3217)
1351
- - Cell protection (lock/unlock) - @MarkBaker [CodePlex #3234](https://phpexcel.codeplex.com/workitem/3234)
1352
- - Create clickable links (hyperlinks) - @MarkBaker [CodePlex #3543](https://phpexcel.codeplex.com/workitem/3543)
1353
- - Additional page setup parameters - @MarkBaker [CodePlex #3241](https://phpexcel.codeplex.com/workitem/3241)
1354
- - Make temporary file path configurable (Excel5) - @MarkBaker [CodePlex #3300](https://phpexcel.codeplex.com/workitem/3300)
1355
- - Small addition to applyFromArray for font - @MarkBaker [CodePlex #3306](https://phpexcel.codeplex.com/workitem/3306)
1356
-
1357
- ### Bugfixes
1358
-
1359
- - Better feedback when save of file is not possible - @MarkBaker [CodePlex #3373](https://phpexcel.codeplex.com/workitem/3373)
1360
- - Text Rotation - @MarkBaker [CodePlex #3181](https://phpexcel.codeplex.com/workitem/3181)
1361
- - Small bug in Page Orientation - @MarkBaker [CodePlex #3237](https://phpexcel.codeplex.com/workitem/3237)
1362
- - insertNewColumnBeforeByColumn undefined - @MarkBaker [CodePlex #3812](https://phpexcel.codeplex.com/workitem/3812)
1363
- - Sheet references not working in formula (Excel5 Writer) - @MarkBaker [CodePlex #3893](https://phpexcel.codeplex.com/workitem/3893)
1364
-
1365
- ## [1.4.5] - 2007-08-23
1366
-
1367
- ### General
1368
-
1369
- - Class file endings - @MarkBaker [CodePlex #3003](https://phpexcel.codeplex.com/workitem/3003)
1370
- - Different calculation engine improvements - @MarkBaker [CodePlex #3081](https://phpexcel.codeplex.com/workitem/3081)
1371
- - Different improvements in PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #3082](https://phpexcel.codeplex.com/workitem/3082)
1372
-
1373
- ### Features
1374
-
1375
- - Set XML indentation in PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #3146](https://phpexcel.codeplex.com/workitem/3146)
1376
- - Optionally store temporary Excel2007 writer data in file instead of memory - @MarkBaker [CodePlex #3159](https://phpexcel.codeplex.com/workitem/3159)
1377
- - Implement show/hide gridlines - @MarkBaker [CodePlex #3063](https://phpexcel.codeplex.com/workitem/3063)
1378
- - Implement option to read only data - @MarkBaker [CodePlex #3064](https://phpexcel.codeplex.com/workitem/3064)
1379
- - Optionally disable formula precalculation - @MarkBaker [CodePlex #3080](https://phpexcel.codeplex.com/workitem/3080)
1380
- - Explicitly set cell datatype - @MarkBaker [CodePlex #3154](https://phpexcel.codeplex.com/workitem/3154)
1381
-
1382
- ### Bugfixes
1383
-
1384
- - Implement more Excel calculation functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1385
- - Addition of MINA, MAXA, COUNTA, AVERAGEA, MEDIAN, MODE, DEVSQ, STDEV, STDEVA, STDEVP, STDEVPA, VAR, VARA, VARP and VARPA Excel Functions
1386
- - Fix to SUM, PRODUCT, QUOTIENT, MIN, MAX, COUNT and AVERAGE functions when cell contains a numeric value in a string datatype, bringing it in line with MS Excel behaviour- File_exists on ZIP fails on some installations - @MarkBaker [CodePlex #2881](https://phpexcel.codeplex.com/workitem/2881)
1387
- - Argument in textRotation should be -90..90 - @MarkBaker [CodePlex #2879](https://phpexcel.codeplex.com/workitem/2879)
1388
- - Excel2007 reader/writer not implementing OpenXML/SpreadsheetML styles 100% correct - @MarkBaker [CodePlex #2883](https://phpexcel.codeplex.com/workitem/2883)
1389
- - Active sheet index not read/saved - @MarkBaker [CodePlex #2513](https://phpexcel.codeplex.com/workitem/2513)
1390
- - Print and print preview of generated XLSX causes Excel2007 to crash - @MarkBaker [CodePlex #2935](https://phpexcel.codeplex.com/workitem/2935)
1391
- - Error in Calculations - COUNT() function - @MarkBaker [CodePlex #2952](https://phpexcel.codeplex.com/workitem/2952)
1392
- - HTML and CSV writer not writing last row - @MarkBaker [CodePlex #3002](https://phpexcel.codeplex.com/workitem/3002)
1393
- - Memory leak in Excel5 writer - @MarkBaker [CodePlex #3017](https://phpexcel.codeplex.com/workitem/3017)
1394
- - Printing (PHPExcel_Writer_Excel5) - @MarkBaker [CodePlex #3044](https://phpexcel.codeplex.com/workitem/3044)
1395
- - Problems reading zip:// - @MarkBaker [CodePlex #3046](https://phpexcel.codeplex.com/workitem/3046)
1396
- - Error reading conditional formatting - @MarkBaker [CodePlex #3047](https://phpexcel.codeplex.com/workitem/3047)
1397
- - Bug in Excel5 writer (storePanes) - @MarkBaker [CodePlex #3067](https://phpexcel.codeplex.com/workitem/3067)
1398
- - Memory leak in PHPExcel_Style_Color - @MarkBaker [CodePlex #3077](https://phpexcel.codeplex.com/workitem/3077)
1399
-
1400
- ## [1.4.0] - 2007-07-23
1401
-
1402
- ### General
1403
-
1404
- - Coding convention / code cleanup - @MarkBaker [CodePlex #2687](https://phpexcel.codeplex.com/workitem/2687)
1405
- - Use set_include_path in tests - @MarkBaker [CodePlex #2717](https://phpexcel.codeplex.com/workitem/2717)
1406
-
1407
- ### Features
1408
-
1409
- - Move PHPExcel_Writer_Excel5 OLE to PHPExcel_Shared_OLE - @MarkBaker [CodePlex #2812](https://phpexcel.codeplex.com/workitem/2812)
1410
- - Hide/Unhide Column or Row - @MarkBaker [CodePlex #2679](https://phpexcel.codeplex.com/workitem/2679)
1411
- - Implement multi-cell styling - @MarkBaker [CodePlex #2271](https://phpexcel.codeplex.com/workitem/2271)
1412
- - Implement CSV file format (reader/writer) - @MarkBaker [CodePlex #2720](https://phpexcel.codeplex.com/workitem/2720)
1413
-
1414
- ### Bugfixes
1415
-
1416
- - Implement HTML file format - @MarkBaker [CodePlex #2845](https://phpexcel.codeplex.com/workitem/2845)
1417
- - Active sheet index not read/saved - @MarkBaker [CodePlex #2513](https://phpexcel.codeplex.com/workitem/2513)
1418
- - Freeze Panes with PHPExcel_Writer_Excel5 - @MarkBaker [CodePlex #2678](https://phpexcel.codeplex.com/workitem/2678)
1419
- - OLE.php - @MarkBaker [CodePlex #2680](https://phpexcel.codeplex.com/workitem/2680)
1420
- - Copy and pasting multiple drop-down list cells breaks reader - @MarkBaker [CodePlex #2736](https://phpexcel.codeplex.com/workitem/2736)
1421
- - Function setAutoFilterByColumnAndRow takes wrong arguments - @MarkBaker [CodePlex #2775](https://phpexcel.codeplex.com/workitem/2775)
1422
- - Simplexml_load_file fails on ZipArchive - @MarkBaker [CodePlex #2858](https://phpexcel.codeplex.com/workitem/2858)
1423
-
1424
- ## [1.3.5] - 2007-06-27
1425
-
1426
- ### Features
1427
-
1428
- - Documentation - @MarkBaker [CodePlex #15](https://phpexcel.codeplex.com/workitem/15)
1429
- - PHPExcel_Writer_Excel5 - @JV
1430
- - PHPExcel_Reader_Excel2007: Image shadows - @JV
1431
- - Data validation - @MarkBaker [CodePlex #2385](https://phpexcel.codeplex.com/workitem/2385)
1432
-
1433
- ### Bugfixes
1434
-
1435
- - Implement richtext strings - @MarkBaker
1436
- - Empty relations when adding image to any sheet but the first one - @MarkBaker [CodePlex #2443](https://phpexcel.codeplex.com/workitem/2443)
1437
- - Excel2007 crashes on print preview - @MarkBaker [CodePlex #2536](https://phpexcel.codeplex.com/workitem/2536)
1438
-
1439
- ## [1.3.0] - 2007-06-05
1440
-
1441
- ### General
1442
-
1443
- - Create PEAR package - @MarkBaker [CodePlex #1942](https://phpexcel.codeplex.com/workitem/1942)
1444
-
1445
- ### Features
1446
-
1447
- - Replace *->duplicate() by __clone() - @MarkBaker [CodePlex #2331](https://phpexcel.codeplex.com/workitem/2331)
1448
- - PHPExcel_Reader_Excel2007: Column auto-size, Protection, Merged cells, Wrap text, Page breaks, Auto filter, Images - @JV
1449
- - Implement "freezing" panes - @MarkBaker [CodePlex #245](https://phpexcel.codeplex.com/workitem/245)
1450
- - Cell addressing alternative - @MarkBaker [CodePlex #2273](https://phpexcel.codeplex.com/workitem/2273)
1451
- - Implement cell word-wrap attribute - @MarkBaker [CodePlex #2270](https://phpexcel.codeplex.com/workitem/2270)
1452
- - Auto-size column - @MarkBaker [CodePlex #2282](https://phpexcel.codeplex.com/workitem/2282)
1453
- - Implement formula calculation - @MarkBaker [CodePlex #241](https://phpexcel.codeplex.com/workitem/241)
1454
-
1455
- ### Bugfixes
1456
-
1457
- - Insert/remove row/column - @MarkBaker [CodePlex #2375](https://phpexcel.codeplex.com/workitem/2375)
1458
- - PHPExcel_Worksheet::getCell() should not accept absolute coordinates - @MarkBaker [CodePlex #1931](https://phpexcel.codeplex.com/workitem/1931)
1459
- - Cell reference without row number - @MarkBaker [CodePlex #2272](https://phpexcel.codeplex.com/workitem/2272)
1460
- - Styles with same coordinate but different worksheet - @MarkBaker [CodePlex #2276](https://phpexcel.codeplex.com/workitem/2276)
1461
- - PHPExcel_Worksheet->getCellCollection() usort error - @MarkBaker [CodePlex #2290](https://phpexcel.codeplex.com/workitem/2290)
1462
- - Bug in PHPExcel_Cell::stringFromColumnIndex - @SS [CodePlex #2353](https://phpexcel.codeplex.com/workitem/2353)
1463
- - Reader: numFmts can be missing, use cellStyleXfs instead of cellXfs in styles - @JV [CodePlex #2353](https://phpexcel.codeplex.com/workitem/2353)
1464
-
1465
- ## [1.2.0] - 2007-04-26
1466
-
1467
- ### General
1468
-
1469
- - Stringtable attribute "count" not necessary, provides wrong info to Excel sometimes... - @MarkBaker
1470
- - Updated tests to address more document properties - @MarkBaker
1471
- - Some refactoring in PHPExcel_Writer_Excel2007_Workbook - @MarkBaker
1472
- - New package: PHPExcel_Shared - @MarkBaker
1473
- - Password hashing algorithm implemented in PHPExcel_Shared_PasswordHasher - @MarkBaker
1474
- - Moved pixel conversion functions to PHPExcel_Shared_Drawing - @MarkBaker
1475
- - Switch over to LGPL license - @MarkBaker [CodePlex #244](https://phpexcel.codeplex.com/workitem/244)
1476
-
1477
- ### Features
1478
-
1479
- - Include PHPExcel version in file headers - @MarkBaker [CodePlex #5](https://phpexcel.codeplex.com/workitem/5)
1480
- - Autofilter - @MarkBaker [CodePlex #6](https://phpexcel.codeplex.com/workitem/6)
1481
- - Extra document property: keywords - @MarkBaker [CodePlex #7](https://phpexcel.codeplex.com/workitem/7)
1482
- - Extra document property: category - @MarkBaker [CodePlex #8](https://phpexcel.codeplex.com/workitem/8)
1483
- - Document security - @MarkBaker [CodePlex #9](https://phpexcel.codeplex.com/workitem/9)
1484
- - PHPExcel_Writer_Serialized and PHPExcel_Reader_Serialized - @MarkBaker [CodePlex #10](https://phpexcel.codeplex.com/workitem/10)
1485
- - Alternative syntax: Addressing a cell - @MarkBaker [CodePlex #11](https://phpexcel.codeplex.com/workitem/11)
1486
- - Merge cells - @MarkBaker [CodePlex #12](https://phpexcel.codeplex.com/workitem/12)
1487
-
1488
- ### Bugfixes
1489
-
1490
- - Protect ranges of cells with a password - @MarkBaker [CodePlex #13](https://phpexcel.codeplex.com/workitem/13)
1491
- - (style/fill/patternFill/fgColor or bgColor can be empty) - @JV [CodePlex #14](https://phpexcel.codeplex.com/workitem/14)
1492
-
1493
- ## [1.1.1] - 2007-03-26
1494
-
1495
- ### General
1496
-
1497
- - Syntax error in "Classes/PHPExcel/Writer/Excel2007.php" on line 243 - @MarkBaker [CodePlex #1250](https://phpexcel.codeplex.com/workitem/1250)
1498
- - Reader should check if file exists and throws an exception when it doesn't - @MarkBaker [CodePlex #1282](https://phpexcel.codeplex.com/workitem/1282)
1499
-
1500
- ## [1.1.0] - 2007-03-22
1501
-
1502
- ### Bugfixes
1503
-
1504
- - Style information lost after passing trough Excel2007_Reader - @MarkBaker [CodePlex #836](https://phpexcel.codeplex.com/workitem/836)
1505
-
1506
- ### General
1507
-
1508
- - Number of columns > AZ fails fixed in PHPExcel_Cell::columnIndexFromString - @MarkBaker [CodePlex #913](https://phpexcel.codeplex.com/workitem/913)
1509
-
1510
- ### Features
1511
-
1512
- - Added a brief file with installation instructions - @MarkBaker
1513
- - Page breaks (horizontal and vertical) - @MarkBaker
1514
- - Image shadows - @MarkBaker
1515
-
1516
- ## [1.0.0] - 2007-02-22
1517
-
1518
- ### Bugfixes
1519
-
1520
- - PHPExcel->removeSheetByIndex now re-orders sheets after deletion, so no array indexes are lost - @JV
1521
- - PHPExcel_Writer_Excel2007_Worksheet::_writeCols() used direct assignment to $pSheet->getColumnDimension('A')->Width instead of $pSheet->getColumnDimension('A')->setWidth() - @JV
1522
- - DocumentProperties used $this->LastModifiedBy instead of $this->_lastModifiedBy. - @JV
1523
-
1524
- ### General
1525
-
1526
- - Only first = should be removed when writing formula in PHPExcel_Writer_Excel2007_Worksheet. - @JV
1527
- - Consistency of method names to camelCase - @JV
1528
- - Updated tests to match consistency changes - @JV
1529
- - Detection of mime-types now with image_type_to_mime_type() - @JV
1530
- - Constants now hold string value used in Excel 2007 - @JV
1531
-
1532
- ### Features
1533
-
1534
- - Fixed folder name case (WorkSheet -> Worksheet) - @MarkBaker
1535
- - PHPExcel classes (not the Writer classes) can be duplicated, using a duplicate() method. - @MarkBaker
1536
- - Cell styles can now be duplicated to a range of cells using PHPExcel_Worksheet->duplicateStyle() - @MarkBaker
1537
- - Conditional formatting - @MarkBaker
1538
- - Reader for Excel 2007 (not supporting full specification yet!) - @JV
1539
-
1540
- ## [1.0.0 RC] - 2007-01-31
1541
-
1542
- - Project name has been changed to PHPExcel
1543
- - Project homepage is now http://www.codeplex.com/PHPExcel
1544
- - Started versioning at number: PHPExcel 1.0.0 RC
1545
-
1546
- ## 2007-01-22
1547
-
1548
- - Fixed some performance issues on large-scale worksheets (mainly loops vs. indexed arrays)
1549
- - Performance on creating StringTable has been increased
1550
- - Performance on writing Excel2007 worksheet has been increased
1551
-
1552
- ## 2007-01-18
1553
-
1554
- - Images can now be rotated
1555
- - Fixed bug: When drawings have full path specified, no mime type can be deducted
1556
- - Fixed bug: Only one drawing can be added to a worksheet
1557
-
1558
- ## 2007-01-12
1559
-
1560
- - Refactoring of some classes to use ArrayObject instead of array()
1561
- - Cell style now has support for number format (i.e. #,##0)
1562
- - Implemented embedding images
1563
-
1564
- ## 2007-01-02
1565
-
1566
- - Cell style now has support for fills, including gradient fills
1567
- - Cell style now has support for fonts
1568
- - Cell style now has support for border colors
1569
- - Cell style now has support for font colors
1570
- - Cell style now has support for alignment
1571
-
1572
- ## 2006-12-21
1573
-
1574
- - Support for cell style borders
1575
- - Support for cell styles
1576
- - Refactoring of Excel2007 Writer into multiple classes in package SpreadSheet_Writer_Excel2007
1577
- - Refactoring of all classes, changed public members to public properties using getter/setter
1578
- - Worksheet names are now unique. On duplicate worksheet names, a number is appended.
1579
- - Worksheet now has parent SpreadSheet object
1580
- - Worksheet now has support for page header and footer
1581
- - Worksheet now has support for page margins
1582
- - Worksheet now has support for page setup (only Paper size and Orientation)
1583
- - Worksheet properties now accessible by using getProperties()
1584
- - Worksheet now has support for row and column dimensions (height / width)
1585
- - Exceptions thrown have a more clear description
1586
-
1587
- ## Initial version
1588
-
1589
- - Create a Spreadsheet object
1590
- - Add one or more Worksheet objects
1591
- - Add cells to Worksheet objects
1592
- - Export Spreadsheet object to Excel 2007 OpenXML format
1593
- - Each cell supports the following data formats: string, number, formula, boolean.
1
+ # Changelog for PHPExcel
2
+
3
+ This is the historic changelog of the project when it was still called PHPExcel.
4
+ It exists only for historical purposes and versions mentioned here should not be
5
+ confused with PhpSpreadsheet versions.
6
+
7
+ ## [1.8.1] - 2015-04-30
8
+
9
+ ### Bugfixes
10
+
11
+ - Fix for Writing an Open Document cell with non-numeric formula - @goncons [#397](https://github.com/PHPOffice/PHPExcel/issues/397)
12
+ - Avoid potential divide by zero in basedrawing - @sarciszewski [#329](https://github.com/PHPOffice/PHPExcel/issues/329)
13
+ - XML External Entity (XXE) Processing, different behaviour between simplexml_load_string() and simplexml_load_file(). - @ymaerschalck [#405](https://github.com/PHPOffice/PHPExcel/issues/405)
14
+ - Fix to ensure that current cell is maintained when executing formula calculations - @MarkBaker
15
+ - Keep/set the value on Reader _loadSheetsOnly as NULL, courtesy of Restless-ET - @MarkBaker [#350](https://github.com/PHPOffice/PHPExcel/issues/350)
16
+ - Loading an Excel 2007 spreadsheet throws an "Autofilter must be set on a range of cells" exception - @MarkBaker [CodePlex #18105](https://phpexcel.codeplex.com/workitem/18105)
17
+ - Fix to autoloader registration for backward compatibility with PHP 5.2.0 not accepting the prepend flag - @MarkBaker [#388](https://github.com/PHPOffice/PHPExcel/issues/388)
18
+ - DOM loadHTMLFile() failing with options flags when using PHP < 5.4.0 - @MarkBaker [#384](https://github.com/PHPOffice/PHPExcel/issues/384)
19
+ - Fix for percentage operator in formulae for BIFF Writer - @MarkBaker
20
+ - Fix to getStyle() call for cell object - @MarkBaker
21
+ - Discard Autofilters in Excel2007 Reader when filter range isn't a valid range - @MarkBaker
22
+ - Fix invalid NA return in VLOOKUP - @frozenstupidity [#423](https://github.com/PHPOffice/PHPExcel/issues/423)
23
+ - "No Impact" conditional formatting fix for NumberFormat - @wiseloren [CodePlex #21454](https://phpexcel.codeplex.com/workitem/21454)
24
+ - Bug in Excel2003XML reader, parsing merged cells - @bobwitlox [#467](https://github.com/PHPOffice/PHPExcel/issues/467)
25
+ - Fix for CEIL() and FLOOR() when number argument is zero - @MarkBaker [#302](https://github.com/PHPOffice/PHPExcel/issues/302)
26
+
27
+ ### General
28
+
29
+ - Remove cells cleanly when calling RemoveRow() or RemoveColumn() - @MarkBaker
30
+ - Small performance improvement for autosize columns - @MarkBaker
31
+ - Change the getter/setter for zeroHeight to camel case - @frost-nzcr4 [#379](https://github.com/PHPOffice/PHPExcel/issues/379)
32
+ - DefaultValueBinder is too much aggressive when converting string to numeric - @MarkBaker [#394](https://github.com/PHPOffice/PHPExcel/issues/394)
33
+ - Default precalculate formulas to false for writers - @MarkBaker
34
+ - Set default Cyclic Reference behaviour to 1 to eliminate exception when using a single cyclic iteration in formulae - @MarkBaker
35
+
36
+ ### Features
37
+
38
+ - Some Excel writer libraries erroneously use Codepage 21010 for UTF-16LE - @MarkBaker [#396](https://github.com/PHPOffice/PHPExcel/issues/396)
39
+ - Methods to manage most of the existing options for Chart Axis, Major Grid-lines and Minor Grid-lines - @WiktrzGE [#404](https://github.com/PHPOffice/PHPExcel/issues/404)
40
+ - ODS read/write comments in the cell - @frost-nzcr4 [#403](https://github.com/PHPOffice/PHPExcel/issues/403)
41
+ - Additional Mac CJK codepage definitions - @CQD [#389](https://github.com/PHPOffice/PHPExcel/issues/389)
42
+ - Update Worksheet.php getStyleByColumnAndRow() to allow a range of cells rather than just a single cell - @bolovincev [#269](https://github.com/PHPOffice/PHPExcel/issues/269)
43
+ - New methods added for testing cell status within merge groups - @MarkBaker
44
+ - Handling merge cells in HTML Reader - @cifren/MBaker [#205](https://github.com/PHPOffice/PHPExcel/issues/205)
45
+ - Helper to convert basic HTML markup to a Rich Text object - @MarkBaker
46
+ - Improved Iterators - @MarkBaker
47
+ - New Column Iterator
48
+ - Support for row and column ranges
49
+ - Improved handling for next/prev
50
+
51
+ ### Security
52
+
53
+ - XML filescan in XML-based Readers to prevent XML Entity Expansion (XEE) - @MarkBaker
54
+ - (see http://projects.webappsec.org/w/page/13247002/XML%20Entity%20Expansion for an explanation of XEE injection) attacks
55
+ - Reference CVE-2015-3542 - Identification of problem courtesy of Dawid Golunski (Pentest Ltd.)
56
+
57
+ ## [1.8.0] - 2014-03-02
58
+
59
+ ### Bugfixes
60
+
61
+ - Undefined variable: fileHandle in CSV Reader - @MarkBaker [CodePlex #19830](https://phpexcel.codeplex.com/workitem/19830)
62
+ - Out of memory in style/supervisor.php - @MarkBaker [CodePlex #19968](https://phpexcel.codeplex.com/workitem/19968)
63
+ - Style error with merged cells in PDF Writer - @MarkBaker
64
+ - Problem with cloning worksheets - @MarkBaker
65
+ - Bug fix reading Open Office files - @tavoarcila [#259](https://github.com/PHPOffice/PHPExcel/issues/259)
66
+ - Serious bug in absolute cell reference used in shared formula - @MarkBaker [CodePlex #20397](https://phpexcel.codeplex.com/workitem/20397)
67
+ - Would also have affected insert/delete column/row- CHOOSE() returns "#VALUE!" if the 1st entry is chosen - @RomanSyroeshko [#267](https://github.com/PHPOffice/PHPExcel/issues/267)
68
+ - When duplicating styles, styles shifted by one column to the right - @Gemorroj [#268](https://github.com/PHPOffice/PHPExcel/issues/268)
69
+ - Fix also applied to duplicating conditional styles- Fix for formulae that reference a sheet whose name begins with a digit: - @IndrekHaav [#212](https://github.com/PHPOffice/PHPExcel/issues/212)
70
+ - these were erroneously identified as numeric values, causing the parser to throw an undefined variable error.- Fixed undefined variable error due to $styleArray being used before it's initialised - @IndrekHaav [CodePlex #16208](https://phpexcel.codeplex.com/workitem/16208)
71
+ - ISTEXT() return wrong result if referencing an empty but formatted cell - @PowerKiKi [#273](https://github.com/PHPOffice/PHPExcel/issues/273)
72
+ - Binary comparison of strings are case insensitive - @PowerKiKi [#270](https://github.com/PHPOffice/PHPExcel/issues/270), [#31](https://github.com/PHPOffice/PHPExcel/issues/31)
73
+ - Insert New Row/Column Before is not correctly updating formula references - @MarkBaker [#275](https://github.com/PHPOffice/PHPExcel/issues/275)
74
+ - Passing an array of cells to _generateRow() in the HTML/PDF Writer causes caching problems with last cell in the range - @MarkBaker [#257](https://github.com/PHPOffice/PHPExcel/issues/257)
75
+ - Fix to empty worksheet garbage collection when using cell caching - @MarkBaker [#193](https://github.com/PHPOffice/PHPExcel/issues/193)
76
+ - Excel2007 does not correctly mark rows as hidden - @Jazzo [#248](https://github.com/PHPOffice/PHPExcel/issues/248)
77
+ - Fixed typo in Chart/Layout set/getYMode() - @Roy Shahbazian [#299](https://github.com/PHPOffice/PHPExcel/issues/299)
78
+ - Fatal error: Call to a member function cellExists() line: 3327 in calculation.php if referenced worksheet doesn't exist - @EliuFlorez [#279](https://github.com/PHPOffice/PHPExcel/issues/279)
79
+ - AdvancedValueBinder "Division by zero"-error - @MarkBaker [#290](https://github.com/PHPOffice/PHPExcel/issues/290)
80
+ - Adding Sheet to Workbook Bug - @MarkBaker [CodePlex #20604](https://phpexcel.codeplex.com/workitem/20604)
81
+ - Calculation engine incorrectly evaluates empty cells as #VALUE - @MarkBaker [CodePlex #20703](https://phpexcel.codeplex.com/workitem/20703)
82
+ - Formula references to cell on another sheet in ODS files - @MarkBaker [CodePlex #20760](https://phpexcel.codeplex.com/workitem/20760)
83
+
84
+ ### Features
85
+
86
+ - LibreOffice created XLSX files results in an empty file. - @MarkBaker [#321](https://github.com/PHPOffice/PHPExcel/issues/321), [#158](https://github.com/PHPOffice/PHPExcel/issues/158), [CodePlex #17824](https://phpexcel.codeplex.com/workitem/17824)
87
+ - Implementation of the Excel HLOOKUP() function - @amerov
88
+ - Added "Quote Prefix" to style settings (Excel2007 Reader and Writer only) - @MarkBaker
89
+ - Added Horizontal FILL alignment for Excel5 and Excel2007 Readers/Writers, and Horizontal DISTRIBUTED alignment for Excel2007 Reader/Writer - @MarkBaker
90
+ - Add support for reading protected (RC4 encrypted) .xls files - @trvrnrth [#261](https://github.com/PHPOffice/PHPExcel/issues/261)
91
+
92
+ ### General
93
+
94
+ - Adding support for macros, Ribbon in Excel 2007 - @LWol [#252](https://github.com/PHPOffice/PHPExcel/issues/252)
95
+ - Remove array_shift in ReferenceHelper::insertNewBefore improves column or row delete speed - @cdhutch [CodePlex #20055](https://phpexcel.codeplex.com/workitem/20055)
96
+ - Improve stock chart handling and rendering, with help from Swashata Ghosh - @MarkBaker
97
+ - Fix to calculation properties for Excel2007 so that the opening application will only recalculate on load if it's actually required - @MarkBaker
98
+ - Modified Excel2007 Writer to default preCalculateFormulas to false - @MarkBaker
99
+ - Note that autosize columns will still recalculate affected formulae internally- Functionality to getHighestRow() for a specified column, and getHighestColumn() for a specified row - @dresenhista [#242](https://github.com/PHPOffice/PHPExcel/issues/242)
100
+ - Modify PHPExcel_Reader_Excel2007 to use zipClass from PHPExcel_Settings::getZipClass() - @adamriyadi [#247](https://github.com/PHPOffice/PHPExcel/issues/247)
101
+ - This allows the use of PCLZip when reading for people that don't have access to ZipArchive
102
+ ### Security
103
+
104
+ - Convert properties to string in OOCalc reader - @infojunkie [#276](https://github.com/PHPOffice/PHPExcel/issues/276)
105
+ - Disable libxml external entity loading by default. - @maartenba [#322](https://github.com/PHPOffice/PHPExcel/issues/322)
106
+ - This is to prevent XML External Entity Processing (XXE) injection attacks (see http://websec.io/2012/08/27/Preventing-XEE-in-PHP.html for an explanation of XXE injection).
107
+ - Reference CVE-2014-2054
108
+
109
+ ## [1.7.9] - 2013-06-02
110
+
111
+ ### Features
112
+
113
+ - Include charts option for HTML Writer - @MarkBaker
114
+ - Added composer file - @MarkBaker
115
+ - cache_in_memory_gzip "eats" last worksheet line, cache_in_memory doesn't - @MarkBaker [CodePlex #18844](https://phpexcel.codeplex.com/workitem/18844)
116
+ - echo statements in HTML.php - @MarkBaker [#104](https://github.com/PHPOffice/PHPExcel/issues/104)
117
+
118
+ ### Bugfixes
119
+
120
+ - Added getStyle() method to Cell object - @MarkBaker
121
+ - Error in PHPEXCEL/Calculation.php script on line 2976 (stack pop check) - @Asker [CodePlex #18777](https://phpexcel.codeplex.com/workitem/18777)
122
+ - CSV files without a file extension being identified as HTML - @MarkBaker [CodePlex #18794](https://phpexcel.codeplex.com/workitem/18794)
123
+ - Wrong check for maximum number of rows in Excel5 Writer - @AndreKR [#66](https://github.com/PHPOffice/PHPExcel/issues/66)
124
+ - Cache directory for DiscISAM cache storage cannot be set - @MarkBaker [#67](https://github.com/PHPOffice/PHPExcel/issues/67)
125
+ - Fix to Excel2007 Reader for hyperlinks with an anchor fragment (following a #), otherwise they were treated as sheet references - @MarkBaker [CodePlex #17976](https://phpexcel.codeplex.com/workitem/17976)
126
+ - getSheetNames() fails on numeric (floating point style) names with trailing zeroes - @MarkBaker [CodePlex #18963](https://phpexcel.codeplex.com/workitem/18963)
127
+ - Modify cell's getCalculatedValue() method to return the content of RichText objects rather than the RichText object itself - @MarkBaker
128
+ - Fixed formula/formatting bug when removing rows - @techhead [#70](https://github.com/PHPOffice/PHPExcel/issues/70)
129
+ - Fix to cellExists for non-existent namedRanges - @alexgann [#63](https://github.com/PHPOffice/PHPExcel/issues/63)
130
+ - Sheet View in Excel5 Writer - @Progi1984 [#22](https://github.com/PHPOffice/PHPExcel/issues/22)
131
+ - PHPExcel_Worksheet::getCellCollection() may not return last cached cell - @amironov [#82](https://github.com/PHPOffice/PHPExcel/issues/82)
132
+ - Rich Text containing UTF-8 characters creating unreadable content with Excel5 Writer - @teso [CodePlex #18551](https://phpexcel.codeplex.com/workitem/18551)
133
+ - Work item GH-8/CP11704 : Conditional formatting in Excel 5 Writer - @Progi1984
134
+ - canRead() Error for GoogleDocs ODS files: in ODS files from Google Docs there is no mimetype file - @MarkBaker [#113](https://github.com/PHPOffice/PHPExcel/issues/113)
135
+ - "Sheet index is out of bounds." Exception - @MarkBaker [#80](https://github.com/PHPOffice/PHPExcel/issues/80)
136
+ - Fixed number format fatal error - @ccorliss [#105](https://github.com/PHPOffice/PHPExcel/issues/105)
137
+ - Add DROP TABLE in destructor for SQLite and SQLite3 cache controllers - @MarkBaker
138
+ - Fix merged-cell borders on HTML/PDF output - @alexgann [#154](https://github.com/PHPOffice/PHPExcel/issues/154)
139
+ - Fix: Hyperlinks break when removing rows - @Shanto [#161](https://github.com/PHPOffice/PHPExcel/issues/161)
140
+ - Fix Extra Table Row From Images and Charts - @neclimdul [#166](https://github.com/PHPOffice/PHPExcel/issues/166)
141
+
142
+ ### General
143
+
144
+ - Single cell print area - @MarkBaker [#130](https://github.com/PHPOffice/PHPExcel/issues/130)
145
+ - Improved AdvancedValueBinder for currency - @kea [#69](https://github.com/PHPOffice/PHPExcel/issues/69)
146
+ - Fix for environments where there is no access to /tmp but to upload_tmp_dir - @MarkBaker
147
+ - Provided an option to set the sys_get_temp_dir() call to use the upload_tmp_dir; though by default the standard temp directory will still be used- Search style by identity in PHPExcel_Worksheet::duplicateStyle() - @amironov [#84](https://github.com/PHPOffice/PHPExcel/issues/84)
148
+ - Fill SheetView IO in Excel5 - @karak [#85](https://github.com/PHPOffice/PHPExcel/issues/85)
149
+ - Memory and Speed improvements in PHPExcel_Reader_Excel5 - @cfhay [CodePlex #18958](https://phpexcel.codeplex.com/workitem/18958)
150
+ - Modify listWorksheetNames() and listWorksheetInfo to use XMLReader with streamed XML rather than SimpleXML - @MarkBaker [#78](https://github.com/PHPOffice/PHPExcel/issues/78)
151
+ - Restructuring of PHPExcel Exceptions - @dbonsch
152
+ - Refactor Calculation Engine from singleton to a Multiton - @MarkBaker
153
+ - Ensures that calculation cache is maintained independently for different workbooks
154
+
155
+ ## [1.7.8] - 2012-10-12
156
+
157
+ ### Features
158
+
159
+ - Phar builder script to add phar file as a distribution option - @kkamkou
160
+ - Refactor PDF Writer to allow use with a choice of PDF Rendering library - @MarkBaker
161
+ - rather than restricting to tcPDF
162
+ - Current options are tcPDF, mPDF, DomPDF
163
+ - tcPDF Library has now been removed from the deployment bundle- Initial version of HTML Reader - @MarkBaker
164
+ - Implement support for AutoFilter in PHPExcel_Writer_Excel5 - @Progi1984
165
+ - Modified ERF and ERFC Engineering functions to accept Excel 2010's modified acceptance of negative arguments - @MarkBaker
166
+ - Support SheetView `view` attribute (Excel2007) - @k1LoW
167
+ - Excel compatibility option added for writing CSV files - @MarkBaker
168
+ - While Excel 2010 can read CSV files with a simple UTF-8 BOM, Excel2007 and earlier require UTF-16LE encoded tab-separated files.
169
+ - The new setExcelCompatibility(TRUE) option for the CSV Writer will generate files with this formatting for easy import into Excel2007 and below.- Language implementations for Turkish (tr) - @MarkBaker
170
+ - Added fraction tests to advanced value binder - @MarkBaker
171
+
172
+ ### General
173
+
174
+ - Allow call to font setUnderline() for underline format to specify a simple boolean for UNDERLINE_NONE or UNDERLINE_SINGLE - @MarkBaker
175
+ - Add Currency detection to the Advanced Value Binder - @alexgann
176
+ - setCellValueExplicitByColumnAndRow() do not return PHPExcel_Worksheet - @MarkBaker [CodePlex #18404](https://phpexcel.codeplex.com/workitem/18404)
177
+ - Reader factory doesn't read anymore XLTX and XLT files - @MarkBaker [CodePlex #18324](https://phpexcel.codeplex.com/workitem/18324)
178
+ - Magic __toString() method added to Cell object to return raw data value as a string - @MarkBaker
179
+ - Add cell indent to html rendering - @alexgann
180
+
181
+ ### Bugfixes
182
+
183
+ - ZeroHeight for rows in sheet format - @Raghav1981
184
+ - OOCalc cells containing <text:span> inside the <text:p> tag - @cyberconte
185
+ - Fix to listWorksheetInfo() method for OOCalc Reader - @schir1964
186
+ - Support for "e" (epoch) date format mask - @MarkBaker
187
+ - Rendered as a 4-digit CE year in non-Excel outputs- Background color cell is always black when editing cell - @MarkBaker
188
+ - Allow "no impact" to formats on Conditional Formatting - @MarkBaker
189
+ - OOCalc Reader fix for NULL cells - @wackonline
190
+ - Fix to excel2007 Chart Writer when a $plotSeriesValues is empty - @seltzlab
191
+ - Various fixes to Chart handling - @MarkBaker
192
+ - Error loading xlsx file with column breaks - @MarkBaker [CodePlex #18370](https://phpexcel.codeplex.com/workitem/18370)
193
+ - OOCalc Reader now handles percentage and currency data types - @MarkBaker
194
+ - mb_stripos empty delimiter - @MarkBaker
195
+ - getNestingLevel() Error on Excel5 Read - @takaakik
196
+ - Fix to Excel5 Reader when cell annotations are defined before their referenced text objects - @MarkBaker
197
+ - OOCalc Reader modified to process number-rows-repeated - @MarkBaker
198
+ - Chart Title compatibility on Excel 2007 - @MarkBaker [CodePlex #18377](https://phpexcel.codeplex.com/workitem/18377)
199
+ - Chart Refresh returning cell reference rather than values - @MarkBaker [CodePlex #18146](https://phpexcel.codeplex.com/workitem/18146)
200
+ - Autoshape being identified in twoCellAnchor when includeCharts is TRUE triggering load error - @MarkBaker [CodePlex #18145](https://phpexcel.codeplex.com/workitem/18145)
201
+ - v-type texts for series labels now recognised and parsed correctly - @MarkBaker [CodePlex #18325](https://phpexcel.codeplex.com/workitem/18325)
202
+ - load file failed if the file has no extensionType - @wolf5x [CodePlex #18492](https://phpexcel.codeplex.com/workitem/18492)
203
+ - Pattern fill colours in Excel2007 Style Writer - @dverspui
204
+ - Excel2007 Writer order of font style elements to conform with Excel2003 using compatibility pack - @MarkBaker
205
+ - Problems with $_activeSheetIndex when decreased below 0. - @MarkBaker [CodePlex #18425](https://phpexcel.codeplex.com/workitem/18425)
206
+ - PHPExcel_CachedObjectStorage_SQLite3::cacheMethodIsAvailable() uses class_exists - autoloader throws error - @MarkBaker [CodePlex #18597](https://phpexcel.codeplex.com/workitem/18597)
207
+ - Cannot access private property PHPExcel_CachedObjectStorageFactory::$_cacheStorageMethod - @MarkBaker [CodePlex #18598](https://phpexcel.codeplex.com/workitem/18598)
208
+ - Data titles for charts - @MarkBaker [CodePlex #18397](https://phpexcel.codeplex.com/workitem/18397)
209
+ - PHPExcel_Chart_Layout now has methods for getting/setting switches for displaying/hiding chart data labels- Discard single cell merge ranges when reading (stupid that Excel allows them in the first place) - @MarkBaker
210
+ - Discard hidden autoFilter named ranges - @MarkBaker
211
+
212
+ ## [1.7.7] - 2012-05-19
213
+
214
+ ### Bugfixes
215
+
216
+ - Support for Rich-Text in PHPExcel_Writer_Excel5 - @Progi1984 [CodePlex #8916](https://phpexcel.codeplex.com/workitem/8916)
217
+ - Change iterators to implement Iterator rather than extend CachingIterator, as a fix for PHP 5.4. changes in SPL - @MarkBaker
218
+ - Invalid cell coordinate in Autofilter for Excel2007 Writer - @MarkBaker [CodePlex #15459](https://phpexcel.codeplex.com/workitem/15459)
219
+ - PCLZip library issue - @MarkBaker [CodePlex #15518](https://phpexcel.codeplex.com/workitem/15518)
220
+ - Excel2007 Reader canRead function bug - @MarkBaker [CodePlex #15537](https://phpexcel.codeplex.com/workitem/15537)
221
+ - Support for Excel functions whose return can be used as either a value or as a cell reference depending on its context within a formula - @MarkBaker
222
+ - ini_set() call in Calculation class destructor - @gilles06 [CodePlex #15707](https://phpexcel.codeplex.com/workitem/15707)
223
+ - RangeToArray strange array keys - @MarkBaker [CodePlex #15786](https://phpexcel.codeplex.com/workitem/15786)
224
+ - INDIRECT() function doesn't work with named ranges - @MarkBaker [CodePlex #15762](https://phpexcel.codeplex.com/workitem/15762)
225
+ - Locale-specific fix to text functions when passing a boolean argument instead of a string - @MarkBaker
226
+ - reader/CSV fails on this file - @MarkBaker [CodePlex #16246](https://phpexcel.codeplex.com/workitem/16246)
227
+ - auto_detect_line_endings now set in CSV reader- $arguments improperly used in CachedObjectStorage/PHPTemp.php - @MarkBaker [CodePlex #16212](https://phpexcel.codeplex.com/workitem/16212)
228
+ - Bug In Cache System (cell reference when throwing caching errors) - @MarkBaker [CodePlex #16643](https://phpexcel.codeplex.com/workitem/16643)
229
+ - PHP Invalid index notice on writing excel file when active sheet has been deleted - @MarkBaker [CodePlex #16895](https://phpexcel.codeplex.com/workitem/16895)
230
+ - External links in Excel2010 files cause Fatal error - @MarkBaker [CodePlex #16956](https://phpexcel.codeplex.com/workitem/16956)
231
+ - Previous calculation engine error conditions trigger cyclic reference errors - @MarkBaker [CodePlex #16960](https://phpexcel.codeplex.com/workitem/16960)
232
+ - PHPExcel_Style::applyFromArray() returns null rather than style object in advanced mode - @mkopinsky [CodePlex #16266](https://phpexcel.codeplex.com/workitem/16266)
233
+ - Cell::getFormattedValue returns RichText object instead of string - @fauvel [CodePlex #16958](https://phpexcel.codeplex.com/workitem/16958)
234
+ - Indexed colors do not refer to Excel's indexed colors? - @MarkBaker [CodePlex #17166](https://phpexcel.codeplex.com/workitem/17166)
235
+ - Indexed colors should be consistent with Excel and start from 1 (current index starts at 0) - @MarkBaker [CodePlex #17199](https://phpexcel.codeplex.com/workitem/17199)
236
+ - Named Range definition in .xls when sheet reeference is quote wrapped - @MarkBaker [CodePlex #17262](https://phpexcel.codeplex.com/workitem/17262)
237
+ - duplicateStyle() method doesn't duplicate conditional formats - @MarkBaker [CodePlex #17403](https://phpexcel.codeplex.com/workitem/17403)
238
+ - Added an equivalent duplicateConditionalStyle() method for duplicating conditional styles- =sumproduct(A,B) <> =sumproduct(B,A) in xlsx - @bnr [CodePlex #17501](https://phpexcel.codeplex.com/workitem/17501)
239
+
240
+ ### Features
241
+
242
+ - OOCalc cells contain same data bug? - @cyberconte [CodePlex #17471](https://phpexcel.codeplex.com/workitem/17471)
243
+ - listWorksheetInfo() method added to Readers... courtesy of Christopher Mullins - @schir1964
244
+ - Options for cell caching using Igbinary and SQLite/SQlite3. - @MarkBaker
245
+ - Additional row iterator options: allow a start row to be defined in the constructor; seek(), and prev() methods added. - @MarkBaker
246
+ - Implement document properties in Excel5 writer - @Progi1984 [CodePlex #9759](https://phpexcel.codeplex.com/workitem/9759)
247
+
248
+ ### General
249
+
250
+ - Implement chart functionality (EXPERIMENTAL) - @MarkBaker [CodePlex #16](https://phpexcel.codeplex.com/workitem/16)
251
+ - Initial definition of chart objects.
252
+ - Reading Chart definitions through the Excel2007 Reader
253
+ - Facility to render charts to images using the 3rd-party jpgraph library
254
+ - Writing Charts using the Excel2007 Writer- Fix to build to ensure that Examples are included with the documentation - @MarkBaker
255
+ - Reduce cell caching overhead using dirty flag to ensure that cells are only rewritten to the cache if they have actually been changed - @MarkBaker
256
+ - Improved memory usage in CSV Writer - @MarkBaker
257
+ - Improved speed and memory usage in Excel5 Writer - @MarkBaker
258
+ - Experimental - @MarkBaker
259
+ - Added getHighestDataColumn(), getHighestDataRow(), getHighestRowAndColumn() and calculateWorksheetDataDimension() methods for the worksheet that return the highest row and column that have cell records- Support for Rich-Text in PHPExcel_Writer_Excel5 - @Progi1984 [CodePlex #8916](https://phpexcel.codeplex.com/workitem/8916)
260
+ - Two easy to fix Issues concerning PHPExcel_Token_Stack (l10n/UC) - @MarkBaker [CodePlex #15405](https://phpexcel.codeplex.com/workitem/15405)
261
+ - Locale file paths not fit for windows - @MarkBaker [CodePlex #15461](https://phpexcel.codeplex.com/workitem/15461)
262
+ - Add file directory as a cache option for cache_to_discISAM - @MarkBaker [CodePlex #16643](https://phpexcel.codeplex.com/workitem/16643)
263
+ - Datatype.php & constant TYPE_NULL - @MarkBaker [CodePlex #16923](https://phpexcel.codeplex.com/workitem/16923)
264
+ - Ensure use of system temp directory for all temporary work files, unless explicitly specified - @MarkBaker
265
+ - [Patch] faster stringFromColumnIndex() - @char101 [CodePlex #16359](https://phpexcel.codeplex.com/workitem/16359)
266
+ - Fix for projects that still use old autoloaders - @whit1206 [CodePlex #16028](https://phpexcel.codeplex.com/workitem/16028)
267
+ - Unknown codepage: 10007 - @atz [CodePlex #17024](https://phpexcel.codeplex.com/workitem/17024)
268
+ - Additional Mac codepages
269
+
270
+ ## [1.7.6] - 2011-02-27
271
+
272
+ ### Features
273
+
274
+ - Provide option to use PCLZip as an alternative to ZipArchive. - @MarkBaker
275
+ - This allows the writing of Excel2007 files, even without ZipArchive enabled (it does require zlib), or when php_zip is one of the buggy PHP 5.2.6 or 5.2.8 versions
276
+ - It can be enabled using PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
277
+ - Note that it is not yet implemented as an alternative to ZipArchive for those Readers that are extracting from zips- Added listWorksheetNames() method to Readers that support multiple worksheets in a workbook, allowing a user to extract a list of all the worksheet names from a file without parsing/loading the whole file. - @MarkBaker [CodePlex #14979](https://phpexcel.codeplex.com/workitem/14979)
278
+ - Speed boost and memory reduction in the Worksheet toArray() method. - @MarkBaker
279
+ - Added new rangeToArray() and namedRangeToArray() methods to the PHPExcel_Worksheet object. - @MarkBaker
280
+ - Functionally, these are identical to the toArray() method, except that they take an additional first parameter of a Range (e.g. 'B2:C3') or a Named Range name.
281
+ - Modified the toArray() method so that it actually uses rangeToArray().- Added support for cell comments in the OOCalc, Gnumeric and Excel2003XML Readers, and in the Excel5 Reader - @MarkBaker
282
+ - Improved toFormattedString() handling for Currency and Accounting formats to render currency symbols - @MarkBaker
283
+
284
+ ### Bugfixes
285
+
286
+ - Implement more Excel calculation functions - @MarkBaker
287
+ - Implemented the DAVERAGE(), DCOUNT(), DCOUNTA(), DGET(), DMAX(), DMIN(), DPRODUCT(), DSTDEV(), DSTDEVP(), DSUM(), DVAR() and DVARP() Database functions- Simple =IF() formula disappears - @MarkBaker [CodePlex #14888](https://phpexcel.codeplex.com/workitem/14888)
288
+ - PHP Warning: preg_match(): Compilation failed: PCRE does not support \\L, \\l, \\N, \\P, \\p, \\U, \\u, or \\X - @MarkBaker [CodePlex #14898](https://phpexcel.codeplex.com/workitem/14898)
289
+ - VLOOKUP choking on parameters in PHPExcel.1.7.5/PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #14901](https://phpexcel.codeplex.com/workitem/14901)
290
+ - PHPExcel_Cell::isInRange() incorrect results - offset by one column - @MarkBaker [CodePlex #14973](https://phpexcel.codeplex.com/workitem/14973)
291
+ - Treat CodePage of 0 as CP1251 (for .xls files written by applications that don't set the CodePage correctly, such as Apple Numbers) - @MarkBaker
292
+ - Need method for removing autoFilter - @MarkBaker [CodePlex #11583](https://phpexcel.codeplex.com/workitem/11583)
293
+ - coordinateFromString throws exception for rows greater than 99,999 - @MarkBaker [CodePlex #15029](https://phpexcel.codeplex.com/workitem/15029)
294
+ - PHPExcel Excel2007 Reader colour problems with solidfill - @MarkBaker [CodePlex #14999](https://phpexcel.codeplex.com/workitem/14999)
295
+ - Formatting get lost and edit a template XLSX file - @MarkBaker [CodePlex #13215](https://phpexcel.codeplex.com/workitem/13215)
296
+ - Excel 2007 Reader /writer lost fontcolor - @MarkBaker [CodePlex #14029](https://phpexcel.codeplex.com/workitem/14029)
297
+ - file that makes cells go black - @MarkBaker [CodePlex #13374](https://phpexcel.codeplex.com/workitem/13374)
298
+ - Minor patchfix for Excel2003XML Reader when XML is defined with a charset attribute - @MarkBaker
299
+ - PHPExcel_Worksheet->toArray() index problem - @MarkBaker [CodePlex #15089](https://phpexcel.codeplex.com/workitem/15089)
300
+ - Merge cells 'un-merge' when using an existing spreadsheet - @MarkBaker [CodePlex #15094](https://phpexcel.codeplex.com/workitem/15094)
301
+ - Worksheet fromArray() only working with 2-D arrays - @MarkBaker [CodePlex #15129](https://phpexcel.codeplex.com/workitem/15129)
302
+ - rangeToarray function modified for non-existent cells - @xkeshav [CodePlex #15172](https://phpexcel.codeplex.com/workitem/15172)
303
+ - Images not getting copyied with the ->clone function - @MarkBaker [CodePlex #14980](https://phpexcel.codeplex.com/workitem/14980)
304
+ - AdvancedValueBinder.php: String sometimes becomes a date when it shouldn't - @MarkBaker [CodePlex #11576](https://phpexcel.codeplex.com/workitem/11576)
305
+ - Fix Excel5 Writer so that it only writes column dimensions for columns that are actually used rather than the full range (A to IV) - @MarkBaker
306
+ - FreezePane causing damaged or modified error - @MarkBaker [CodePlex #15198](https://phpexcel.codeplex.com/workitem/15198)
307
+ - The freezePaneByColumnAndRow() method row argument should default to 1 rather than 0.
308
+ - Default row argument for all __ByColumnAndRow() methods should be 1- Column reference rather than cell reference in Print Area definition - @MarkBaker [CodePlex #15121](https://phpexcel.codeplex.com/workitem/15121)
309
+ - Fix Excel2007 Writer to handle print areas that are defined as row or column ranges rather than just as cell ranges- Reduced false positives from isDateTimeFormatCode() method by suppressing testing within quoted strings - @MarkBaker
310
+ - Caching and tmp partition exhaustion - @MarkBaker [CodePlex #15312](https://phpexcel.codeplex.com/workitem/15312)
311
+ - Writing to Variable No Longer Works. $_tmp_dir Missing in PHPExcel\PHPExcel\Shared\OLE\PPS\Root.php - @MarkBaker [CodePlex #15308](https://phpexcel.codeplex.com/workitem/15308)
312
+ - Named ranges with dot don't get parsed properly - @MarkBaker [CodePlex #15379](https://phpexcel.codeplex.com/workitem/15379)
313
+ - insertNewRowBefore fails to consistently update references - @MarkBaker [CodePlex #15096](https://phpexcel.codeplex.com/workitem/15096)
314
+ - "i" is not a valid character for Excel date format masks (in isDateTimeFormatCode() method) - @MarkBaker
315
+ - PHPExcel_ReferenceHelper::insertNewBefore() is missing an 'Update worksheet: comments' section - @MKunert [CodePlex #15421](https://phpexcel.codeplex.com/workitem/15421)
316
+
317
+ ### General
318
+
319
+ - Full column/row references in named ranges not supported by updateCellReference() - @MarkBaker [CodePlex #15409](https://phpexcel.codeplex.com/workitem/15409)
320
+ - Improved performance (speed), for building the Shared Strings table in the Excel2007 Writer. - @MarkBaker
321
+ - Improved performance (speed), for PHP to Excel date conversions - @MarkBaker
322
+ - Enhanced SheetViews element structures in the Excel2007 Writer for frozen panes. - @MarkBaker
323
+ - Removed Serialized Reader/Writer as these no longer work. - @MarkBaker
324
+
325
+ ## [1.7.5] - 2010-12-10
326
+
327
+ ### Features
328
+
329
+ - Implement Gnumeric File Format - @MarkBaker [CodePlex #8769](https://phpexcel.codeplex.com/workitem/8769)
330
+ - Initial work on Gnumeric Reader (Worksheet Data, Document Properties and basic Formatting)- Support for Extended Workbook Properties in Excel2007, Excel5 and OOCalc Readers; support for User-defined Workbook Properties in Excel2007 and OOCalc Readers - @MarkBaker
331
+ - Support for Extended and User-defined Workbook Properties in Excel2007 Writer - @MarkBaker
332
+ - Provided a setGenerateSheetNavigationBlock(false); option to suppress generation of the sheet navigation block when writing multiple worksheets to HTML - @MarkBaker
333
+ - Advanced Value Binder now recognises TRUE/FALSE strings (locale-specific) and converts to boolean - @MarkBaker
334
+ - PHPExcel_Worksheet->toArray() is returning truncated values - @MarkBaker [CodePlex #14301](https://phpexcel.codeplex.com/workitem/14301)
335
+ - Configure PDF Writer margins based on Excel Worksheet Margin Settings value - @MarkBaker
336
+ - Added Contiguous flag for the CSV Reader, when working with Read Filters - @MarkBaker
337
+ - Added getFormattedValue() method for cell object - @MarkBaker
338
+ - Added strictNullComparison argument to the worksheet fromArray() method - @MarkBaker
339
+
340
+ ### Bugfixes
341
+
342
+ - Fix to toFormattedString() method in PHPExcel_Style_NumberFormat to handle fractions with a # code for the integer part - @MarkBaker
343
+ - NA() doesn't propagate in matrix calc - quick fix in JAMA/Matrix.php - @MarkBaker [CodePlex #14143](https://phpexcel.codeplex.com/workitem/14143)
344
+ - Excel5 : Formula : String constant containing double quotation mark - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
345
+ - Excel5 : Formula : Percent - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
346
+ - Excel5 : Formula : Error constant - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
347
+ - Excel5 : Formula : Concatenation operator - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
348
+ - Worksheet clone broken for CachedObjectStorage_Memory - @MarkBaker [CodePlex #14146](https://phpexcel.codeplex.com/workitem/14146)
349
+ - PHPExcel_Reader_Excel2007 fails when gradient fill without type is present in a file - @MarkBaker [CodePlex #12998](https://phpexcel.codeplex.com/workitem/12998)
350
+ - @ format for numeric strings in XLSX to CSV conversion - @MarkBaker [CodePlex #14176](https://phpexcel.codeplex.com/workitem/14176)
351
+ - Advanced Value Binder Not Working? - @MarkBaker [CodePlex #14223](https://phpexcel.codeplex.com/workitem/14223)
352
+ - unassigned object variable in PHPExcel->removeCellXfByIndex - @MarkBaker [CodePlex #14226](https://phpexcel.codeplex.com/workitem/14226)
353
+ - problem with getting cell values from another worksheet... (if cell doesn't exist) - @MarkBaker [CodePlex #14236](https://phpexcel.codeplex.com/workitem/14236)
354
+ - Setting cell values to one char strings & Trouble reading one character string (thanks gorfou) - @MarkBaker
355
+ - Worksheet title exception when duplicate worksheet is being renamed but exceeds the 31 character limit - @MarkBaker [CodePlex #14256](https://phpexcel.codeplex.com/workitem/14256)
356
+ - Named range with sheet name that contains the $ throws exception when getting the cell - @MarkBaker [CodePlex #14086](https://phpexcel.codeplex.com/workitem/14086)
357
+ - Added autoloader to DefaultValueBinder and AdvancedValueBinder - @MarkBaker
358
+ - Modified PHPExcel_Shared_Date::isDateTimeFormatCode() to return false if format code begins with "_" or with "0 " to prevent false positives - @MarkBaker
359
+ - These leading characters are most commonly associated with number, currency or accounting (or occasionally fraction) formats- BUG : Excel5 and setReadFilter ? - @MarkBaker [CodePlex #14374](https://phpexcel.codeplex.com/workitem/14374)
360
+ - Wrong exception message while deleting column - @MarkBaker [CodePlex #14425](https://phpexcel.codeplex.com/workitem/14425)
361
+ - Formula evaluation fails with Japanese sheet refs - @MarkBaker [CodePlex #14679](https://phpexcel.codeplex.com/workitem/14679)
362
+ - PHPExcel_Writer_PDF does not handle cell borders correctly - @MarkBaker [CodePlex #13559](https://phpexcel.codeplex.com/workitem/13559)
363
+ - Style : applyFromArray() for 'allborders' not working - @MarkBaker [CodePlex #14831](https://phpexcel.codeplex.com/workitem/14831)
364
+
365
+ ### General
366
+
367
+ - Using $this when not in object context in Excel5 Reader - @MarkBaker [CodePlex #14837](https://phpexcel.codeplex.com/workitem/14837)
368
+ - Removes a unnecessary loop through each cell when applying conditional formatting to a range. - @MarkBaker
369
+ - Removed spurious PHP end tags (?>) - @MarkBaker
370
+ - Improved performance (speed) and reduced memory overheads, particularly for the Writers, but across the whole library. - @MarkBaker
371
+
372
+ ## [1.7.4] - 2010-08-26
373
+
374
+ ### Bugfixes
375
+
376
+ - Excel5 : Formula : Power - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
377
+ - Excel5 : Formula : Unary plus - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895)
378
+ - Excel5 : Just write the Escher stream if necessary in Worksheet - @Progi1984
379
+ - Syntax errors in memcache.php 1.7.3c - @MarkBaker [CodePlex #13433](https://phpexcel.codeplex.com/workitem/13433)
380
+ - Support for row or column ranges in the calculation engine, e.g. =SUM(C:C) or =SUM(1:2) - @MarkBaker
381
+ - Also support in the calculation engine for absolute row or column ranges e.g. =SUM($C:$E) or =SUM($3:5)- Picture problem with Excel 2003 - @Erik Tilt [CodePlex #13455](https://phpexcel.codeplex.com/workitem/13455)
382
+ - Wrong variable used in addExternalSheet in PHPExcel.php - @MarkBaker [CodePlex #13484](https://phpexcel.codeplex.com/workitem/13484)
383
+ - "Invalid cell coordinate" error when formula access data from an other sheet - @MarkBaker [CodePlex #13515](https://phpexcel.codeplex.com/workitem/13515)
384
+ - (related to Work item 13515) Calculation engine confusing cell range worksheet when referencing cells in a different worksheet to the formula - @MarkBaker
385
+ - Wrong var naming in Worksheet->garbageCollect() - @MarkBaker [CodePlex #13752](https://phpexcel.codeplex.com/workitem/13752)
386
+ - PHPExcel_Style_*::__clone() methods cause cloning loops? - @MarkBaker [CodePlex #13764](https://phpexcel.codeplex.com/workitem/13764)
387
+ - Recent builds causing problems loading xlsx files? (ZipArchive issue?) - @MarkBaker [CodePlex #11488](https://phpexcel.codeplex.com/workitem/11488)
388
+ - cache_to_apc causes fatal error when processing large data sets - @MarkBaker [CodePlex #13856](https://phpexcel.codeplex.com/workitem/13856)
389
+ - OOCalc reader misses first line if it's a 'table-header-row' - @MarkBaker [CodePlex #13880](https://phpexcel.codeplex.com/workitem/13880)
390
+ - using cache with copy or clone bug? - @MarkBaker [CodePlex #14011](https://phpexcel.codeplex.com/workitem/14011)
391
+ - Fixed $worksheet->copy() or clone $worksheet when using cache_in_memory, cache_in_memory_gzip, cache_in_memory_serialized, cache_to_discISAM, cache_to_phpTemp, cache_to_apc and cache_to_memcache;
392
+ - Fixed but untested when using cache_to_wincache.
393
+ ### Features
394
+
395
+ - Standard Deviation functions returning DIV/0 Error when Standard Deviation is zero - @MarkBaker [CodePlex #13450](https://phpexcel.codeplex.com/workitem/13450)
396
+ - Support for print area with several ranges in the Excel2007 reader, and improved features for editing print area with several ranges - @MarkBaker
397
+ - Improved Cell Exception Reporting - @MarkBaker [CodePlex #13769](https://phpexcel.codeplex.com/workitem/13769)
398
+
399
+ ### General
400
+
401
+ - Fixed problems with reading Excel2007 Properties - @MarkBaker
402
+ - PHP Strict Standards: Non-static method PHPExcel_Shared_String::utf16_decode() should not be called statically - @MarkBaker
403
+ - Array functions were ignored when loading an existing file containing them, and as a result, they would lose their 'cse' status. - @MarkBaker
404
+ - Minor memory tweaks to Excel2007 Writer - @MarkBaker
405
+ - Modified ReferenceHelper updateFormulaReferences() method to handle updates to row and column cell ranges (including absolute references e.g. =SUM(A:$E) or =SUM($5:5), and range/cell references that reference a worksheet by name), and to provide both performance and memory improvements. - @MarkBaker
406
+ - Modified Excel2007 Reader so that ReferenceHelper class is instantiated only once rather than for every shared formula in a workbook. - @MarkBaker
407
+ - Correct handling for additional (synonym) formula tokens in Excel5 Reader - @MarkBaker
408
+ - Additional reading of some Excel2007 Extended Properties (Company, Manager) - @MarkBaker
409
+
410
+ ## [1.7.3c] - 2010-06-01
411
+
412
+ ### Bugfixes
413
+
414
+ - Fatal error: Class 'ZipArchive' not found... ...Reader/Excel2007.php on line 217 - @MarkBaker [CodePlex #13012](https://phpexcel.codeplex.com/workitem/13012)
415
+ - PHPExcel_Writer_Excel2007 error after 1.7.3b - @MarkBaker [CodePlex #13398](https://phpexcel.codeplex.com/workitem/13398)
416
+
417
+ ## [1.7.3b] - 2010-05-31
418
+
419
+ ### Bugfixes
420
+
421
+ - Infinite loop when reading - @MarkBaker [CodePlex #12903](https://phpexcel.codeplex.com/workitem/12903)
422
+ - Wrong method chaining on PHPExcel_Worksheet class - @MarkBaker [CodePlex #13381](https://phpexcel.codeplex.com/workitem/13381)
423
+
424
+ ## [1.7.3] - 2010-05-17
425
+
426
+ ### General
427
+
428
+ - Applied patch 4990 (modified) - @Erik Tilt
429
+ - Applied patch 5568 (modified) - @MarkBaker
430
+ - Applied patch 5943 - @MarkBaker
431
+ - Upgrade build script to use Phing - @MarkBaker [CodePlex #13042](https://phpexcel.codeplex.com/workitem/13042)
432
+ - Replacing var with public/private - @Erik Tilt [CodePlex #11586](https://phpexcel.codeplex.com/workitem/11586)
433
+ - Applied Anthony's Sterling's Class Autoloader to reduce memory overhead by "Lazy Loading" of classes - @MarkBaker
434
+ - Modification to functions that accept a date parameter to support string values containing ordinals as per Excel (English language only) - @MarkBaker
435
+ - Modify PHPExcel_Style_NumberFormat::toFormattedString() to handle dates that fall outside of PHP's 32-bit date range - @MarkBaker
436
+ - Applied patch 5207 - @MarkBaker
437
+
438
+ ### Features
439
+
440
+ - PHPExcel developer documentation: Set page margins - @Erik Tilt [CodePlex #11970](https://phpexcel.codeplex.com/workitem/11970)
441
+ - Special characters and accents in SYLK reader - @Erik Tilt [CodePlex #11038](https://phpexcel.codeplex.com/workitem/11038)
442
+ - Implement more Excel calculation functions - @MarkBaker
443
+ - Implemented the COUPDAYS(), COUPDAYBS(), COUPDAYSNC(), COUPNCD(), COUPPCD() and PRICE() Financial functions
444
+ - Implemented the N() and TYPE() Information functions
445
+ - Implemented the HYPERLINK() Lookup and Reference function- Horizontal page break support in PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #11526](https://phpexcel.codeplex.com/workitem/11526)
446
+ - Introduce method setActiveSheetIndexByName() - @Erik Tilt [CodePlex #11529](https://phpexcel.codeplex.com/workitem/11529)
447
+ - AdvancedValueBinder.php: Automatically wrap text when there is new line in string (ALT+"Enter") - @Erik Tilt [CodePlex #11550](https://phpexcel.codeplex.com/workitem/11550)
448
+ - Data validation support in PHPExcel_Reader_Excel5 and PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10300](https://phpexcel.codeplex.com/workitem/10300)
449
+ - Improve autosize calculation - @MarkBaker [CodePlex #11616](https://phpexcel.codeplex.com/workitem/11616)
450
+ - Methods to translate locale-specific function names in formulae - @MarkBaker
451
+ - Language implementations for Czech (cs), Danish (da), German (de), English (uk), Spanish (es), Finnish (fi), French (fr), Hungarian (hu), Italian (it), Dutch (nl), Norwegian (no), Polish (pl), Portuguese (pt), Brazilian Portuguese (pt_br), Russian (ru) and Swedish (sv)- Implement document properties in Excel5 reader/writer - @Erik Tilt [CodePlex #9759](https://phpexcel.codeplex.com/workitem/9759)
452
+ - Fixed so far for PHPExcel_Reader_Excel5- Show/hide row and column headers in worksheet - @Erik Tilt [CodePlex #11849](https://phpexcel.codeplex.com/workitem/11849)
453
+ - Can't set font on writing PDF (by key) - @Erik Tilt [CodePlex #11919](https://phpexcel.codeplex.com/workitem/11919)
454
+ - Thousands scale (1000^n) support in PHPExcel_Style_NumberFormat::toFormattedString - @Erik Tilt [CodePlex #12096](https://phpexcel.codeplex.com/workitem/12096)
455
+ - Implement repeating rows in PDF and HTML writer - @Erik Tilt
456
+ - Sheet tabs in PHPExcel_Writer_HTML - @Erik Tilt [CodePlex #12289](https://phpexcel.codeplex.com/workitem/12289)
457
+ - Add Wincache CachedObjectProvider - @MarkBaker [CodePlex #13041](https://phpexcel.codeplex.com/workitem/13041)
458
+ - Configure PDF Writer paper size based on Excel Page Settings value, and provided methods to override paper size and page orientation with the writer - @MarkBaker
459
+ - Note PHPExcel defaults to Letter size, while the previous PDF writer enforced A4 size, so PDF writer will now default to Letter- Initial implementation of cell caching: allowing larger workbooks to be managed, but at a cost in speed - @MarkBaker
460
+
461
+ ### Bugfixes
462
+
463
+ - Added an identify() method to the IO Factory that identifies the reader which will be used to load a particular file without actually loading it. - @MarkBaker
464
+ - Warning messages with INDEX function having 2 arguments - @MarkBaker [CodePlex #10979](https://phpexcel.codeplex.com/workitem/10979)
465
+ - setValue('=') should result in string instead of formula - @Erik Tilt [CodePlex #11473](https://phpexcel.codeplex.com/workitem/11473)
466
+ - method _raiseFormulaError should no be private - @MarkBaker [CodePlex #11471](https://phpexcel.codeplex.com/workitem/11471)
467
+ - Fatal error: Call to undefined function mb_substr() in ...Classes\PHPExcel\Reader\Excel5.php on line 2903 - @Erik Tilt [CodePlex #11485](https://phpexcel.codeplex.com/workitem/11485)
468
+ - getBold(), getItallic(), getStrikeThrough() not always working with PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #11487](https://phpexcel.codeplex.com/workitem/11487)
469
+ - AdvancedValueBinder.php not working correctly for $cell->setValue('hh:mm:ss') - @Erik Tilt [CodePlex #11492](https://phpexcel.codeplex.com/workitem/11492)
470
+ - Fixed leap year handling for the YEARFRAC() Date/Time function when basis ia 1 (Actual/actual) - @MarkBaker
471
+ - Warning messages - @MarkBaker [CodePlex #11490](https://phpexcel.codeplex.com/workitem/11490)
472
+ - Calculation Engine code modified to enforce strict standards for pass by reference- PHPExcel_Cell_AdvancedValueBinder doesnt work for dates in far future - @Erik Tilt [CodePlex #11483](https://phpexcel.codeplex.com/workitem/11483)
473
+ - MSODRAWING bug with long CONTINUE record in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #11528](https://phpexcel.codeplex.com/workitem/11528)
474
+ - PHPExcel_Reader_Excel2007 reads print titles as named range when there is more than one sheet - @Erik Tilt [CodePlex #11571](https://phpexcel.codeplex.com/workitem/11571)
475
+ - missing @return in phpdocblock in reader classes - @Erik Tilt [CodePlex #11561](https://phpexcel.codeplex.com/workitem/11561)
476
+ - AdvancedValueBinder.php: String sometimes becomes a date when it shouldn't - @Erik Tilt [CodePlex #11576](https://phpexcel.codeplex.com/workitem/11576)
477
+ - Small numbers escape treatment in PHPExcel_Style_NumberFormat::toFormattedString() - @Erik Tilt [CodePlex #11588](https://phpexcel.codeplex.com/workitem/11588)
478
+ - Blank styled cells are not blank in output by HTML writer due to &nbsp; - @Erik Tilt [CodePlex #11590](https://phpexcel.codeplex.com/workitem/11590)
479
+ - Calculation engine bug: Existing, blank cell + number gives #NUM - @MarkBaker [CodePlex #11587](https://phpexcel.codeplex.com/workitem/11587)
480
+ - AutoSize only measures length of first line in cell with multiple lines (ALT+Enter) - @Erik Tilt [CodePlex #11608](https://phpexcel.codeplex.com/workitem/11608)
481
+ - Fatal error running Tests/12serializedfileformat.php (PHPExcel 1.7.2) - @Erik Tilt [CodePlex #11608](https://phpexcel.codeplex.com/workitem/11608)
482
+ - Fixed various errors in the WORKDAY() and NETWORKDAYS() Date/Time functions (particularly related to holidays) - @MarkBaker
483
+ - Uncaught exception 'Exception' with message 'Valid scale is between 10 and 400.' in Classes/PHPExcel/Worksheet/SheetView.php:115 - @Erik Tilt [CodePlex #11660](https://phpexcel.codeplex.com/workitem/11660)
484
+ - "Unrecognized token 39 in formula" with PHPExcel_Reader_Excel5 (occuring with add-in functions) - @Erik Tilt [CodePlex #11551](https://phpexcel.codeplex.com/workitem/11551)
485
+ - Excel2007 reader not reading PHPExcel_Style_Conditional::CONDITION_EXPRESSION - @Erik Tilt [CodePlex #11668](https://phpexcel.codeplex.com/workitem/11668)
486
+ - Fix to the BESSELI(), BESSELJ(), BESSELK(), BESSELY() and COMPLEX() Engineering functions to use correct default values for parameters - @MarkBaker
487
+ - DATEVALUE function not working for pure time values + allow DATEVALUE() function to handle partial dates (e.g. "1-Jun" or "12/2010") - @MarkBaker [CodePlex #11525](https://phpexcel.codeplex.com/workitem/11525)
488
+ - Fix for empty quoted strings in formulae - @MarkBaker
489
+ - Trap for division by zero in Bessel functions - @MarkBaker
490
+ - Fix to OOCalc Reader to convert semi-colon (;) argument separator in formulae to a comma (,) - @MarkBaker
491
+ - PHPExcel_Writer_Excel5_Parser cannot parse formula like =SUM(C$5:C5) - @Erik Tilt [CodePlex #11693](https://phpexcel.codeplex.com/workitem/11693)
492
+ - Fix to OOCalc Reader to handle dates that fall outside 32-bit PHP's date range - @MarkBaker
493
+ - File->sys_get_temp_dir() can fail in safe mode - @Erik Tilt [CodePlex #11692](https://phpexcel.codeplex.com/workitem/11692)
494
+ - Sheet references in Excel5 writer do not work when referenced sheet title contains non-Latin symbols - @Erik Tilt [CodePlex #11727](https://phpexcel.codeplex.com/workitem/11727)
495
+ - Bug in HTML writer can result in missing rows in output - @Erik Tilt [CodePlex #11743](https://phpexcel.codeplex.com/workitem/11743)
496
+ - setShowGridLines(true) not working with PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #11674](https://phpexcel.codeplex.com/workitem/11674)
497
+ - PHPExcel_Worksheet_RowIterator initial position incorrect - @Erik Tilt [CodePlex #11836](https://phpexcel.codeplex.com/workitem/11836)
498
+ - PHPExcel_Worksheet_HeaderFooterDrawing Strict Exception thrown (by jshaw86) - @Erik Tilt [CodePlex #11835](https://phpexcel.codeplex.com/workitem/11835)
499
+ - Parts of worksheet lost when there are embedded charts (Excel5 reader) - @Erik Tilt [CodePlex #11850](https://phpexcel.codeplex.com/workitem/11850)
500
+ - VLOOKUP() function error when lookup value is passed as a cell reference rather than an absolute value - @MarkBaker
501
+ - First segment of Rich-Text not read correctly by PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #12041](https://phpexcel.codeplex.com/workitem/12041)
502
+ - Fatal Error with getCell('name') when name matches the pattern for a cell reference - @MarkBaker [CodePlex #12048](https://phpexcel.codeplex.com/workitem/12048)
503
+ - excel5 writer appears to be swapping image locations - @Erik Tilt [CodePlex #12039](https://phpexcel.codeplex.com/workitem/12039)
504
+ - Undefined index: host in ZipStreamWrapper.php, line 94 and line 101 - @Erik Tilt [CodePlex #11954](https://phpexcel.codeplex.com/workitem/11954)
505
+ - BIFF8 File Format problem (too short COLINFO record) - @Erik Tilt [CodePlex #11672](https://phpexcel.codeplex.com/workitem/11672)
506
+ - Column width sometimes changed after read/write with Excel2007 reader/writer - @Erik Tilt [CodePlex #12121](https://phpexcel.codeplex.com/workitem/12121)
507
+ - Worksheet.php throws a fatal error when styling is turned off via setReadDataOnly on the reader - @Erik Tilt [CodePlex #11964](https://phpexcel.codeplex.com/workitem/11964)
508
+ - Checking for Circular References in Formulae - @MarkBaker [CodePlex #11851](https://phpexcel.codeplex.com/workitem/11851)
509
+ - Calculation Engine code now traps for cyclic references, raising an error or throwing an exception, or allows 1 or more iterations through cyclic references, based on a configuration setting- PNG transparency using Excel2007 writer - @Erik Tilt [CodePlex #12244](https://phpexcel.codeplex.com/workitem/12244)
510
+ - Custom readfilter error when cell formulas reference excluded cells (Excel5 reader) - @Erik Tilt [CodePlex #12221](https://phpexcel.codeplex.com/workitem/12221)
511
+ - Protection problem in XLS - @Erik Tilt [CodePlex #12288](https://phpexcel.codeplex.com/workitem/12288)
512
+ - getColumnDimension()->setAutoSize() incorrect on cells with Number Formatting - @Erik Tilt [CodePlex #12300](https://phpexcel.codeplex.com/workitem/12300)
513
+ - Notices reading Excel file with Add-in funcitons (PHPExcel_Reader_Excel5) - @Erik Tilt [CodePlex #12378](https://phpexcel.codeplex.com/workitem/12378)
514
+ - Excel5 reader not reading formulas with deleted sheet references - @Erik Tilt [CodePlex #12380](https://phpexcel.codeplex.com/workitem/12380)
515
+ - Named range (defined name) scope problems for in PHPExcel - @Erik Tilt [CodePlex #12404](https://phpexcel.codeplex.com/workitem/12404)
516
+ - PHP Parse error: syntax error, unexpected T_PUBLIC in PHPExcel/Calculation.php on line 3482 - @Erik Tilt [CodePlex #12423](https://phpexcel.codeplex.com/workitem/12423)
517
+ - Named ranges don't appear in name box using Excel5 writer - @Erik Tilt [CodePlex #12505](https://phpexcel.codeplex.com/workitem/12505)
518
+ - Many merged cells + autoSize column -> slows down the writer - @Erik Tilt [CodePlex #12509](https://phpexcel.codeplex.com/workitem/12509)
519
+ - Incorrect fallback order comment in Shared/Strings.php ConvertEncoding() - @Erik Tilt [CodePlex #12539](https://phpexcel.codeplex.com/workitem/12539)
520
+ - IBM AIX iconv() will not work, should revert to mbstring etc. instead - @Erik Tilt [CodePlex #12538](https://phpexcel.codeplex.com/workitem/12538)
521
+ - Excel5 writer and mbstring functions overload - @Erik Tilt [CodePlex #12568](https://phpexcel.codeplex.com/workitem/12568)
522
+ - OFFSET needs to flattenSingleValue the $rows and $columns args - @MarkBaker [CodePlex #12672](https://phpexcel.codeplex.com/workitem/12672)
523
+ - Formula with DMAX(): Notice: Undefined offset: 2 in ...\PHPExcel\Calculation.php on line 2365 - @MarkBaker [CodePlex #12546](https://phpexcel.codeplex.com/workitem/12546)
524
+ - Note that the Database functions have not yet been implemented- Call to a member function getParent() on a non-object in Classes\\PHPExcel\\Calculation.php Title is required - @MarkBaker [CodePlex #12839](https://phpexcel.codeplex.com/workitem/12839)
525
+ - Cyclic Reference in Formula - @MarkBaker [CodePlex #12935](https://phpexcel.codeplex.com/workitem/12935)
526
+ - Memory error...data validation? - @MarkBaker [CodePlex #13025](https://phpexcel.codeplex.com/workitem/13025)
527
+
528
+ ## [1.7.2] - 2010-01-11
529
+
530
+ ### General
531
+
532
+ - Applied patch 4362 - @Erik Tilt
533
+ - Applied patch 4363 (modified) - @Erik Tilt
534
+ - 1.7.1 Extremely Slow - Refactored PHPExcel_Calculation_Functions::flattenArray() method and set calculation cache timer default to 2.5 seconds - @MarkBaker [CodePlex #10874](https://phpexcel.codeplex.com/workitem/10874)
535
+ - Allow formulae to contain line breaks - @MarkBaker
536
+ - split() function deprecated in PHP 5.3.0 - @Erik Tilt [CodePlex #10910](https://phpexcel.codeplex.com/workitem/10910)
537
+ - sys_get_temp_dir() requires PHP 5.2.1, not PHP 5.2 [provide fallback function for PHP 5.2.0] - @Erik Tilt
538
+ - Implementation of the ISPMT() Financial function by Matt Groves - @MarkBaker
539
+ - Put the example of formula with more arguments in documentation - @MarkBaker [CodePlex #11052](https://phpexcel.codeplex.com/workitem/11052)
540
+
541
+ ### Features
542
+
543
+ - Improved accuracy for the GAMMAINV() Statistical Function - @MarkBaker
544
+ - XFEXT record support to fix colors change from Excel5 reader, and copy/paste color change with Excel5 writer - @Erik Tilt [CodePlex #10409](https://phpexcel.codeplex.com/workitem/10409)
545
+ - Excel5 reader reads RGB color information in XFEXT records for borders, font color and fill color- Implement more Excel calculation functions - @MarkBaker
546
+ - Implemented the FVSCHEDULE(), XNPV(), IRR(), MIRR(), XIRR() and RATE() Financial functions
547
+ - Implemented the SUMPRODUCT() Mathematical function
548
+ - Implemented the ZTEST() Statistical Function- Multiple print areas in one sheet - @Erik Tilt [CodePlex #10919](https://phpexcel.codeplex.com/workitem/10919)
549
+ - Store calculated values in output by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10930](https://phpexcel.codeplex.com/workitem/10930)
550
+ - Sheet protection options in Excel5 reader/writer - @Erik Tilt [CodePlex #10939](https://phpexcel.codeplex.com/workitem/10939)
551
+ - Modification of the COUNT(), AVERAGE(), AVERAGEA(), DEVSQ, AVEDEV(), STDEV(), STDEVA(), STDEVP(), STDEVPA(), VARA() and VARPA() SKEW() and KURT() functions to correctly handle boolean values depending on whether they're passed in as values, values within a matrix or values within a range of cells. - @MarkBaker
552
+ - Cell range selection - @Erik Tilt
553
+ - Root-relative path handling - @MarkBaker [CodePlex #10266](https://phpexcel.codeplex.com/workitem/10266)
554
+
555
+ ### Bugfixes
556
+
557
+ - Named Ranges not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #11315](https://phpexcel.codeplex.com/workitem/11315)
558
+ - Excel2007 Reader fails to load Apache POI generated Excel - @MarkBaker [CodePlex #11206](https://phpexcel.codeplex.com/workitem/11206)
559
+ - Number format is broken when system's thousands separator is empty - @MarkBaker [CodePlex #11154](https://phpexcel.codeplex.com/workitem/11154)
560
+ - ReferenceHelper::updateNamedFormulas throws errors if oldName is empty - @MarkBaker [CodePlex #11401](https://phpexcel.codeplex.com/workitem/11401)
561
+ - parse_url() fails to parse path to an image in xlsx - @MarkBaker [CodePlex #11296](https://phpexcel.codeplex.com/workitem/11296)
562
+ - Workaround for iconv_substr() bug in PHP 5.2.0 - @Erik Tilt [CodePlex #10876](https://phpexcel.codeplex.com/workitem/10876)
563
+ - 1 pixel error for image width and height with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10877](https://phpexcel.codeplex.com/workitem/10877)
564
+ - Fix to GEOMEAN() Statistical function - @MarkBaker
565
+ - setValue('-') and setValue('.') sets numeric 0 instead of 1-character string - @Erik Tilt [CodePlex #10884](https://phpexcel.codeplex.com/workitem/10884)
566
+ - Row height sometimes much too low after read with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10885](https://phpexcel.codeplex.com/workitem/10885)
567
+ - Diagonal border. Miscellaneous missing support. - @Erik Tilt [CodePlex #10888](https://phpexcel.codeplex.com/workitem/10888)
568
+ - Constant PHPExcel_Style_Borders::DIAGONAL_BOTH added to support double-diagonal (cross)
569
+ - PHPExcel_Reader_Excel2007 not always reading diagonal borders (only recognizes 'true' and not '1')
570
+ - PHPExcel_Reader_Excel5 support for diagonal borders
571
+ - PHPExcel_Writer_Excel5 support for diagonal borders- Session bug: Fatal error: Call to a member function bindValue() on a non-object in ...\Classes\PHPExcel\Cell.php on line 217 - @Erik Tilt [CodePlex #10894](https://phpexcel.codeplex.com/workitem/10894)
572
+ - Colors messed up saving twice with same instance of PHPExcel_Writer_Excel5 (regression since 1.7.0) - @Erik Tilt [CodePlex #10896](https://phpexcel.codeplex.com/workitem/10896)
573
+ - Method PHPExcel_Worksheet::setDefaultStyle is not working - @Erik Tilt [CodePlex #10917](https://phpexcel.codeplex.com/workitem/10917)
574
+ - PHPExcel_Reader_CSV::canRead() sometimes says false when it shouldn't - @Erik Tilt [CodePlex #10897](https://phpexcel.codeplex.com/workitem/10897)
575
+ - Changes in workbook not picked up between two saves with PHPExcel_Writer_Excel2007 - @Erik Tilt [CodePlex #10922](https://phpexcel.codeplex.com/workitem/10922)
576
+ - Decimal and thousands separators missing in HTML and PDF output - @Erik Tilt [CodePlex #10913](https://phpexcel.codeplex.com/workitem/10913)
577
+ - Notices with PHPExcel_Reader_Excel5 and named array constants - @Erik Tilt [CodePlex #10936](https://phpexcel.codeplex.com/workitem/10936)
578
+ - Calculation engine limitation on 32-bit platform with integers > 2147483647 - @MarkBaker [CodePlex #10938](https://phpexcel.codeplex.com/workitem/10938)
579
+ - Shared(?) formulae containing absolute cell references not read correctly using Excel5 Reader - @Erik Tilt [CodePlex #10959](https://phpexcel.codeplex.com/workitem/10959)
580
+ - Warning messages with intersection operator involving single cell - @MarkBaker [CodePlex #10962](https://phpexcel.codeplex.com/workitem/10962)
581
+ - Infinite loop in Excel5 reader caused by zero-length string in SST - @Erik Tilt [CodePlex #10980](https://phpexcel.codeplex.com/workitem/10980)
582
+ - Remove unnecessary cell sorting to improve speed by approx. 18% in HTML and PDF writers - @Erik Tilt [CodePlex #10983](https://phpexcel.codeplex.com/workitem/10983)
583
+ - Cannot read A1 cell content - OO_Reader - @MarkBaker [CodePlex #10977](https://phpexcel.codeplex.com/workitem/10977)
584
+ - Transliteration failed, invalid encoding - @Erik Tilt [CodePlex #11000](https://phpexcel.codeplex.com/workitem/11000)
585
+
586
+ ## [1.7.1] - 2009-11-02
587
+
588
+ ### General
589
+
590
+ - ereg() function deprecated in PHP 5.3.0 - @Erik Tilt [CodePlex #10687](https://phpexcel.codeplex.com/workitem/10687)
591
+ - Writer Interface Inconsequence - setTempDir and setUseDiskCaching - @MarkBaker [CodePlex #10739](https://phpexcel.codeplex.com/workitem/10739)
592
+
593
+ ### Features
594
+
595
+ - Upgrade to TCPDF 4.8.009 - @Erik Tilt
596
+ - Support for row and column styles (feature request) - @Erik Tilt
597
+ - Basic implementation for Excel2007/Excel5 reader/writer- Hyperlink to local file in Excel5 reader/writer - @Erik Tilt [CodePlex #10459](https://phpexcel.codeplex.com/workitem/10459)
598
+ - Color Tab (Color Sheet's name) - @MarkBaker [CodePlex #10472](https://phpexcel.codeplex.com/workitem/10472)
599
+ - Border style "double" support in PHPExcel_Writer_HTML - @Erik Tilt [CodePlex #10488](https://phpexcel.codeplex.com/workitem/10488)
600
+ - Multi-section number format support in HTML/PDF/CSV writers - @Erik Tilt [CodePlex #10492](https://phpexcel.codeplex.com/workitem/10492)
601
+ - Some additional performance tweaks in the calculation engine - @MarkBaker
602
+ - Fix result of DB() and DDB() Financial functions to 2dp when in Gnumeric Compatibility mode - @MarkBaker
603
+ - Added AMORDEGRC(), AMORLINC() and COUPNUM() Financial function (no validation of parameters yet) - @MarkBaker
604
+ - Improved accuracy of TBILLEQ(), TBILLPRICE() and TBILLYIELD() Financial functions when in Excel or Gnumeric mode - @MarkBaker
605
+ - Added INDIRECT() Lookup/Reference function (only supports full addresses at the moment) - @MarkBaker
606
+ - PHPExcel_Reader_CSV::canRead() improvements - @MarkBaker [CodePlex #10498](https://phpexcel.codeplex.com/workitem/10498)
607
+ - Input encoding option for PHPExcel_Reader_CSV - @Erik Tilt [CodePlex #10500](https://phpexcel.codeplex.com/workitem/10500)
608
+ - Colored number format support, e.g. [Red], in HTML/PDF output - @Erik Tilt [CodePlex #10493](https://phpexcel.codeplex.com/workitem/10493)
609
+ - Color Tab (Color Sheet's name) [Excel5 reader/writer support] - @Erik Tilt [CodePlex #10559](https://phpexcel.codeplex.com/workitem/10559)
610
+ - Initial version of SYLK (slk) and Excel 2003 XML Readers (Cell data and basic cell formatting) - @MarkBaker
611
+ - Initial version of Open Office Calc (ods) Reader (Cell data only) - @MarkBaker
612
+ - Initial use of "pass by reference" in the calculation engine for ROW() and COLUMN() Lookup/Reference functions - @MarkBaker
613
+ - COLUMNS() and ROWS() Lookup/Reference functions, and SUBSTITUTE() Text function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
614
+ - AdvancedValueBinder(): Re-enable zero-padded string-to-number conversion, e.g '0004' -> 4 - @Erik Tilt [CodePlex #10502](https://phpexcel.codeplex.com/workitem/10502)
615
+ - Make PHP type match Excel datatype - @Erik Tilt [CodePlex #10600](https://phpexcel.codeplex.com/workitem/10600)
616
+ - Change first page number on header - @MarkBaker [CodePlex #10630](https://phpexcel.codeplex.com/workitem/10630)
617
+ - Applied patch 3941 - @MarkBaker
618
+ - Hidden sheets - @MB,ET [CodePlex #10745](https://phpexcel.codeplex.com/workitem/10745)
619
+ - mbstring fallback when iconv is broken - @Erik Tilt [CodePlex #10761](https://phpexcel.codeplex.com/workitem/10761)
620
+ - Note, can't yet handle comparison of two matrices - @MarkBaker
621
+ - Improved handling for validation and error trapping in a number of functions - @MarkBaker
622
+ - Improved support for fraction number formatting - @MarkBaker
623
+ - Support Reading CSV with Byte Order Mark (BOM) - @Erik Tilt [CodePlex #10455](https://phpexcel.codeplex.com/workitem/10455)
624
+
625
+ ### Bugfixes
626
+
627
+ - addExternalSheet() at specified index - @Erik Tilt [CodePlex #10860](https://phpexcel.codeplex.com/workitem/10860)
628
+ - Named range can no longer be passed to worksheet->getCell() - @MarkBaker [CodePlex #10684](https://phpexcel.codeplex.com/workitem/10684)
629
+ - RichText HTML entities no longer working in PHPExcel 1.7.0 - @Erik Tilt [CodePlex #10455](https://phpexcel.codeplex.com/workitem/10455)
630
+ - Fit-to-width value of 1 is lost after read/write of Excel2007 spreadsheet [+ support for simultaneous scale/fitToPage] - @Erik Tilt
631
+ - Performance issue identified by profiling - @MarkBaker [CodePlex #10469](https://phpexcel.codeplex.com/workitem/10469)
632
+ - setSelectedCell is wrong - @Erik Tilt [CodePlex #10473](https://phpexcel.codeplex.com/workitem/10473)
633
+ - Images get squeezed/stretched with (Mac) Verdana 10 Excel files using Excel5 reader/writer - @Erik Tilt [CodePlex #10481](https://phpexcel.codeplex.com/workitem/10481)
634
+ - Error in argument count for DATEDIF() function - @MarkBaker [CodePlex #10482](https://phpexcel.codeplex.com/workitem/10482)
635
+ - updateFormulaReferences is buggy - @MarkBaker [CodePlex #10452](https://phpexcel.codeplex.com/workitem/10452)
636
+ - CellIterator returns null Cell if onlyExistingCells is set and key() is in use - @MarkBaker [CodePlex #10485](https://phpexcel.codeplex.com/workitem/10485)
637
+ - Wrong RegEx for parsing cell references in formulas - @MarkBaker [CodePlex #10453](https://phpexcel.codeplex.com/workitem/10453)
638
+ - Optimisation subverted to devastating effect if IterateOnlyExistingCells is clear - @MarkBaker [CodePlex #10486](https://phpexcel.codeplex.com/workitem/10486)
639
+ - Fatal error: Uncaught exception 'Exception' with message 'Unrecognized token 6C in formula'... with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10494](https://phpexcel.codeplex.com/workitem/10494)
640
+ - Fractions stored as text are not treated as numbers by PHPExcel's calculation engine - @MarkBaker [CodePlex #10490](https://phpexcel.codeplex.com/workitem/10490)
641
+ - AutoFit (autosize) row height not working in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10503](https://phpexcel.codeplex.com/workitem/10503)
642
+ - Fixed problem with null values breaking the calculation stack - @MarkBaker
643
+ - Date number formats sometimes fail with PHPExcel_Style_NumberFormat::toFormattedString, e.g. [$-40047]mmmm d yyyy - @Erik Tilt [CodePlex #10524](https://phpexcel.codeplex.com/workitem/10524)
644
+ - Fixed minor problem with DATEDIFF YM calculation - @MarkBaker
645
+ - Applied patch 3695 - @MarkBaker
646
+ - setAutosize() and Date cells not working properly - @Erik Tilt [CodePlex #10536](https://phpexcel.codeplex.com/workitem/10536)
647
+ - Time value hour offset in output by HTML/PDF/CSV writers (system timezone problem) - @Erik Tilt [CodePlex #10556](https://phpexcel.codeplex.com/workitem/10556)
648
+ - Control characters 0x14-0x1F are not treated by PHPExcel - @Erik Tilt [CodePlex #10558](https://phpexcel.codeplex.com/workitem/10558)
649
+ - PHPExcel_Writer_Excel5 not working when open_basedir restriction is in effect - @Erik Tilt [CodePlex #10560](https://phpexcel.codeplex.com/workitem/10560)
650
+ - IF formula calculation problem in PHPExcel 1.7.0 (string comparisons) - @MarkBaker [CodePlex #10563](https://phpexcel.codeplex.com/workitem/10563)
651
+ - Improved CODE() Text function result for UTF-8 characters - @MarkBaker
652
+ - Empty rows are collapsed with HTML/PDF writer - @Erik Tilt [CodePlex #10568](https://phpexcel.codeplex.com/workitem/10568)
653
+ - Gaps between rows in output by PHPExcel_Writer_PDF (Upgrading to TCPDF 4.7.003) - @Erik Tilt [CodePlex #10569](https://phpexcel.codeplex.com/workitem/10569)
654
+ - Problem reading formulas (Excel5 reader problem with "fake" shared formulas) - @Erik Tilt [CodePlex #10575](https://phpexcel.codeplex.com/workitem/10575)
655
+ - Error type in formula: "_raiseFormulaError message is Formula Error: An unexpected error occured" - @MarkBaker [CodePlex #10588](https://phpexcel.codeplex.com/workitem/10588)
656
+ - Miscellaneous column width problems in Excel5/Excel2007 writer - @Erik Tilt [CodePlex #10599](https://phpexcel.codeplex.com/workitem/10599)
657
+ - Reader/Excel5 'Unrecognized token 2D in formula' in latest version - @Erik Tilt [CodePlex #10615](https://phpexcel.codeplex.com/workitem/10615)
658
+ - on php 5.3 PHPExcel 1.7 Excel 5 reader fails in _getNextToken, token = 2C, throws exception - @Erik Tilt [CodePlex #10623](https://phpexcel.codeplex.com/workitem/10623)
659
+ - Fatal error when altering styles after workbook has been saved - @Erik Tilt [CodePlex #10617](https://phpexcel.codeplex.com/workitem/10617)
660
+ - Images vertically stretched or squeezed when default font size is changed (PHPExcel_Writer_Excel5) - @Erik Tilt [CodePlex #10661](https://phpexcel.codeplex.com/workitem/10661)
661
+ - Styles not read in "manipulated" Excel2007 workbook - @Erik Tilt [CodePlex #10676](https://phpexcel.codeplex.com/workitem/10676)
662
+ - Windows 7 says corrupt file by PHPExcel_Writer_Excel5 when opening in Excel - @Erik Tilt [CodePlex #10059](https://phpexcel.codeplex.com/workitem/10059)
663
+ - Calculations sometimes not working with cell references to other sheets - @MarkBaker [CodePlex #10708](https://phpexcel.codeplex.com/workitem/10708)
664
+ - Problem with merged cells after insertNewRowBefore() - @Erik Tilt [CodePlex #10706](https://phpexcel.codeplex.com/workitem/10706)
665
+ - Applied patch 4023 - @MarkBaker
666
+ - Fix to SUMIF() and COUNTIF() Statistical functions for when condition is a match against a string value - @MarkBaker
667
+ - PHPExcel_Cell::coordinateFromString should throw exception for bad string parameter - @Erik Tilt [CodePlex #10721](https://phpexcel.codeplex.com/workitem/10721)
668
+ - EucrosiaUPC (Thai font) not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10723](https://phpexcel.codeplex.com/workitem/10723)
669
+ - Improved the return of calculated results when the result value is an array - @MarkBaker
670
+ - Allow calculation engine to support Functions prefixed with @ within formulae - @MarkBaker
671
+ - Intersection operator (space operator) fatal error with calculation engine - @MarkBaker [CodePlex #10632](https://phpexcel.codeplex.com/workitem/10632)
672
+ - Chinese, Japanese, Korean characters show as squares in PDF - @Erik Tilt [CodePlex #10742](https://phpexcel.codeplex.com/workitem/10742)
673
+ - sheet title allows invalid characters - @Erik Tilt [CodePlex #10756](https://phpexcel.codeplex.com/workitem/10756)
674
+ - Sheet!$A$1 as function argument in formula causes infinite loop in Excel5 writer - @Erik Tilt [CodePlex #10757](https://phpexcel.codeplex.com/workitem/10757)
675
+ - Cell range involving name not working with calculation engine - Modified calculation parser to handle range operator (:), but doesn't currently handle worksheet references with spaces or other non-alphameric characters, or trap erroneous references - @MarkBaker [CodePlex #10740](https://phpexcel.codeplex.com/workitem/10740)
676
+ - DATE function problem with calculation engine (says too few arguments given) - @MarkBaker [CodePlex #10798](https://phpexcel.codeplex.com/workitem/10798)
677
+ - Blank cell can cause wrong calculated value - @MarkBaker [CodePlex #10799](https://phpexcel.codeplex.com/workitem/10799)
678
+ - Modified ROW() and COLUMN() Lookup/Reference Functions to return an array when passed a cell range, plus some additional work on INDEX() - @MarkBaker
679
+ - Images not showing in Excel 97 using PHPExcel_Writer_Excel5 (patch by Jordi Gutiérrez Hermoso) - @Erik Tilt [CodePlex #10817](https://phpexcel.codeplex.com/workitem/10817)
680
+ - When figures are contained in the excel sheet, Reader was stopped - @Erik Tilt [CodePlex #10785](https://phpexcel.codeplex.com/workitem/10785)
681
+ - Formulas changed after insertNewRowBefore() - @MarkBaker [CodePlex #10818](https://phpexcel.codeplex.com/workitem/10818)
682
+ - Cell range row offset problem with shared formulas using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10825](https://phpexcel.codeplex.com/workitem/10825)
683
+ - Warning: Call-time pass-by-reference has been deprecated - @MarkBaker [CodePlex #10832](https://phpexcel.codeplex.com/workitem/10832)
684
+ - Image should "Move but don't size with cells" instead of "Move and size with cells" with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10849](https://phpexcel.codeplex.com/workitem/10849)
685
+ - Opening a Excel5 generated XLS in Excel 2007 results in header/footer entry not showing on input - @Erik Tilt [CodePlex #10856](https://phpexcel.codeplex.com/workitem/10856)
686
+ - addExternalSheet() not returning worksheet - @Erik Tilt [CodePlex #10859](https://phpexcel.codeplex.com/workitem/10859)
687
+ - Invalid results in formulas with named ranges - @MarkBaker [CodePlex #10629](https://phpexcel.codeplex.com/workitem/10629)
688
+
689
+ ## [1.7.0] - 2009-08-10
690
+
691
+ ### General
692
+
693
+ - Expand documentation: Number formats - @Erik Tilt
694
+ - Class 'PHPExcel_Cell_AdvancedValueBinder' not found - @Erik Tilt
695
+
696
+ ### Features
697
+
698
+ - Change return type of date functions to PHPExcel_Calculation_Functions::RETURNDATE_EXCEL - @MarkBaker
699
+ - New RPN and stack-based calculation engine for improved performance of formula calculation - @MarkBaker
700
+ - Faster (anything between 2 and 12 times faster than the old parser, depending on the complexity and nature of the formula)
701
+ - Significantly more memory efficient when formulae reference cells across worksheets
702
+ - Correct behaviour when referencing Named Ranges that exist on several worksheets
703
+ - Support for Excel ^ (Exponential) and % (Percentage) operators
704
+ - Support for matrices within basic arithmetic formulae (e.g. ={1,2,3;4,5,6;7,8,9}/2)
705
+ - Better trapping/handling of NaN and infinity results (return #NUM! error)
706
+ - Improved handling of empty parameters for Excel functions
707
+ - Optional logging of calculation steps- New calculation engine can be accessed independently of workbooks (for use as a standalone calculator) - @MarkBaker
708
+ - Implement more Excel calculation functions - @MarkBaker
709
+ - Initial implementation of the COUNTIF() and SUMIF() Statistical functions
710
+ - Added ACCRINT() Financial function- Modifications to number format handling for dddd and ddd masks in dates, use of thousand separators even when locale only implements it for money, and basic fraction masks (0 ?/? and ?/?) - @MarkBaker
711
+ - Support arbitrary fixed number of decimals in PHPExcel_Style_NumberFormat::toFormattedString() - @Erik Tilt
712
+ - Improving performance and memory on data dumps - @Erik Tilt
713
+ - Various style optimizations (merging from branch wi6857-memory)
714
+ - Moving hyperlink and dataValidation properties from cell to worksheet for lower PHP memory usage- Provide fluent interfaces where possible - @MarkBaker
715
+ - Make easy way to apply a border to a rectangular selection - @Erik Tilt
716
+ - Support for system window colors in PHPExcel_Reader_Excel5 - @Erik Tilt
717
+ - Horizontal center across selection - @Erik Tilt
718
+ - Merged cells record, write to full record size in PHPExcel_Writer_Excel5 - @Erik Tilt
719
+ - Add page break between sheets in exported PDF - @MarkBaker
720
+ - Sanitization of UTF-8 input for cell values - @Erik Tilt
721
+ - Read cached calculated value with PHPExcel_Reader_Excel5 - @Erik Tilt
722
+ - Miscellaneous CSS improvements for PHPExcel_Writer_HTML - @Erik Tilt
723
+ - getProperties: setCompany feature request - @Erik Tilt
724
+ - Insert worksheet at a specified index - @MarkBaker
725
+ - Change worksheet index - @MarkBaker
726
+ - Readfilter for CSV reader - @MarkBaker
727
+ - Check value of mbstring.func_overload when saving with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10172](https://phpexcel.codeplex.com/workitem/10172)
728
+ - Eliminate dependency of an include path pointing to class directory - @Erik Tilt [CodePlex #10251](https://phpexcel.codeplex.com/workitem/10251)
729
+ - Method for getting the correct reader for a certain file (contribution) - @Erik Tilt [CodePlex #10292](https://phpexcel.codeplex.com/workitem/10292)
730
+ - Choosing specific row in fromArray method - @Erik Tilt [CodePlex #10287](https://phpexcel.codeplex.com/workitem/10287)
731
+ - Shared formula support in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10319](https://phpexcel.codeplex.com/workitem/10319)
732
+
733
+ ### Bugfixes
734
+
735
+ - Right-to-left column direction in worksheet - @MB,ET [CodePlex #10345](https://phpexcel.codeplex.com/workitem/10345)
736
+ - PHPExcel_Reader_Excel5 not reading PHPExcel_Style_NumberFormat::FORMAT_NUMBER ('0') - @Erik Tilt
737
+ - Fractional row height in locale other than English results in corrupt output using PHPExcel_Writer_Excel2007 - @Erik Tilt
738
+ - Fractional (decimal) numbers not inserted correctly when locale is other than English - @Erik Tilt
739
+ - Fractional calculated value in locale other than English results in corrupt output using PHPExcel_Writer_Excel2007 - @Erik Tilt
740
+ - Locale aware decimal and thousands separator in exported formats HTML, CSV, PDF - @Erik Tilt
741
+ - Cannot Add Image with Space on its Name - @MarkBaker
742
+ - Black line at top of every page in output by PHPExcel_Writer_PDF - @Erik Tilt
743
+ - Border styles and border colors not showing in HTML output (regression since 1.6.4) - @Erik Tilt
744
+ - Hidden screen gridlines setting in worksheet not read by PHPExcel_Reader_Excel2007 - @Erik Tilt
745
+ - Some valid sheet names causes corrupt output using PHPExcel_Writer_Excel2007 - @MarkBaker
746
+ - More than 32,767 characters in a cell gives corrupt Excel file - @Erik Tilt
747
+ - Images not getting copyied with the ->copy() function - @Erik Tilt
748
+ - Bad calculation of column width setAutoSize(true) function - @Erik Tilt
749
+ - Dates are sometimes offset by 1 day in output by HTML and PDF writers depending on system timezone setting - @Erik Tilt
750
+ - Wingdings symbol fonts not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10003](https://phpexcel.codeplex.com/workitem/10003)
751
+ - White space string prefix stripped by PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #10010](https://phpexcel.codeplex.com/workitem/10010)
752
+ - The name of the Workbook stream MUST be "Workbook", not "Book" - @Erik Tilt [CodePlex #10023](https://phpexcel.codeplex.com/workitem/10023)
753
+ - Avoid message "Microsoft Excel recalculates formulas..." when closing xls file from Excel - @Erik Tilt [CodePlex #10030](https://phpexcel.codeplex.com/workitem/10030)
754
+ - Non-unique newline representation causes problems with LEN formula - @Erik Tilt [CodePlex #10031](https://phpexcel.codeplex.com/workitem/10031)
755
+ - Newline in cell not showing with PHPExcel_Writer_HTML and PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #10033](https://phpexcel.codeplex.com/workitem/10033)
756
+ - Rich-Text strings get prefixed by &nbsp; when output by HTML writer - @Erik Tilt [CodePlex #10046](https://phpexcel.codeplex.com/workitem/10046)
757
+ - Leading spaces do not appear in output by HTML/PDF writers - @Erik Tilt [CodePlex #10052](https://phpexcel.codeplex.com/workitem/10052)
758
+ - Empty Apache POI-generated file can not be read - @MarkBaker [CodePlex #10061](https://phpexcel.codeplex.com/workitem/10061)
759
+ - Column width not scaling correctly with font size in HTML and PDF writers - @Erik Tilt [CodePlex #10068](https://phpexcel.codeplex.com/workitem/10068)
760
+ - Inaccurate row heights with HTML writer - @Erik Tilt [CodePlex #10069](https://phpexcel.codeplex.com/workitem/10069)
761
+ - Reference helper - @MarkBaker
762
+ - Excel 5 Named ranges should not be local to the worksheet, but accessible from all worksheets - @MarkBaker
763
+ - Row heights are ignored by PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #10088](https://phpexcel.codeplex.com/workitem/10088)
764
+ - Write raw XML - @MarkBaker
765
+ - removeRow(), removeColumn() not always clearing cell values - @Erik Tilt [CodePlex #10098](https://phpexcel.codeplex.com/workitem/10098)
766
+ - Problem reading certain hyperlink records with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10142](https://phpexcel.codeplex.com/workitem/10142)
767
+ - Hyperlink cell range read failure with PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #10143](https://phpexcel.codeplex.com/workitem/10143)
768
+ - 'Column string index can not be empty.' - @MarkBaker [CodePlex #10149](https://phpexcel.codeplex.com/workitem/10149)
769
+ - getHighestColumn() sometimes says there are 256 columns with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10204](https://phpexcel.codeplex.com/workitem/10204)
770
+ - extractSheetTitle fails when sheet title contains exclamation mark (!) - @Erik Tilt [CodePlex #10220](https://phpexcel.codeplex.com/workitem/10220)
771
+ - setTitle() sometimes erroneously appends integer to sheet name - @Erik Tilt [CodePlex #10221](https://phpexcel.codeplex.com/workitem/10221)
772
+ - Mac BIFF5 Excel file read failure (missing support for Mac OS Roman character set) - @Erik Tilt [CodePlex #10229](https://phpexcel.codeplex.com/workitem/10229)
773
+ - BIFF5 header and footer incorrectly read by PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10230](https://phpexcel.codeplex.com/workitem/10230)
774
+ - iconv notices when reading hyperlinks with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10259](https://phpexcel.codeplex.com/workitem/10259)
775
+ - Excel5 reader OLE read failure with small Mac BIFF5 Excel files - @Erik Tilt [CodePlex #10252](https://phpexcel.codeplex.com/workitem/10252)
776
+ - Problem in reading formula : IF( IF ) with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10272](https://phpexcel.codeplex.com/workitem/10272)
777
+ - Error reading formulas referencing external sheets with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10274](https://phpexcel.codeplex.com/workitem/10274)
778
+ - Image horizontally stretched when default font size is increased (PHPExcel_Writer_Excel5) - @Erik Tilt [CodePlex #10291](https://phpexcel.codeplex.com/workitem/10291)
779
+ - Undefined offset in Reader\Excel5.php on line 3572 - @Erik Tilt [CodePlex #10333](https://phpexcel.codeplex.com/workitem/10333)
780
+ - PDF output different then XLS (copied data) - @MarkBaker [CodePlex #10340](https://phpexcel.codeplex.com/workitem/10340)
781
+ - Internal hyperlinks with UTF-8 sheet names not working in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10352](https://phpexcel.codeplex.com/workitem/10352)
782
+ - String shared formula result read error with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10361](https://phpexcel.codeplex.com/workitem/10361)
783
+ - Uncaught exception 'Exception' with message 'Valid scale is between 10 and 400.' in Classes/PHPExcel/Worksheet/PageSetup.php:338 - @Erik Tilt [CodePlex #10363](https://phpexcel.codeplex.com/workitem/10363)
784
+ - Using setLoadSheetsOnly fails if you do not use setReadDataOnly(true) and sheet is not the first sheet - @Erik Tilt [CodePlex #10355](https://phpexcel.codeplex.com/workitem/10355)
785
+ - getCalculatedValue() sometimes incorrect with IF formula and 0-values - @MarkBaker [CodePlex #10362](https://phpexcel.codeplex.com/workitem/10362)
786
+ - Excel Reader 2007 problem with "shared" formulae when "master" is an error - @MarkBaker
787
+ - Named Range Bug, using the same range name on different worksheets - @MarkBaker
788
+ - Java code in JAMA classes - @MarkBaker
789
+ - getCalculatedValue() not working with some formulas involving error types - @MarkBaker
790
+ - evaluation of both return values in an IF() statement returning an error if either result was an error, irrespective of the IF evaluation - @MarkBaker
791
+ - Power in formulas: new calculation engine no longer treats ^ as a bitwise XOR operator - @MarkBaker
792
+ - Bugfixes and improvements to many of the Excel functions in PHPExcel - @MarkBaker
793
+ - Added optional "places" parameter in the BIN2HEX(), BIN2OCT, DEC2BIN(), DEC2OCT(), DEC2HEX(), HEX2BIN(), HEX2OCT(), OCT2BIN() and OCT2HEX() Engineering Functions
794
+ - Trap for unbalanced matrix sizes in MDETERM() and MINVERSE() Mathematic and Trigonometric functions
795
+ - Fix for default characters parameter value for LEFT() and RIGHT() Text functions
796
+ - Fix for GCD() and LCB() Mathematical functions when the parameters include a zero (0) value
797
+ - Fix for BIN2OCT() Engineering Function for 2s complement values (which were returning hex values)
798
+ - Fix for BESSELK() and BESSELY() Engineering functions
799
+ - Fix for IMDIV() Engineering Function when result imaginary component is positive (wasn't setting the sign)
800
+ - Fix for ERF() Engineering Function when called with an upper limit value for the integration
801
+ - Fix to DATE() Date/Time Function for year value of 0
802
+ - Set ISPMT() function as category FINANCIAL
803
+ - Fix for DOLLARDE() and DOLLARFR() Financial functions
804
+ - Fix to EFFECT() Financial function (treating $nominal_rate value as a variable name rather than a value)
805
+ - Fix to CRITBINOM() Statistical function (CurrentValue and EssentiallyZero treated as constants rather than variables)
806
+ - Note that an Error in the function logic can still lead to a permanent loop
807
+ - Fix to MOD() Mathematical function to work with floating point results
808
+ - Fix for QUOTIENT() Mathematical function
809
+ - Fix to HOUR(), MINUTE() and SECOND() Date/Time functions to return an error when passing in a floating point value of 1.0 or greater, or less than 0
810
+ - LOG() Function now correctly returns base-10 log when called with only one parameter, rather than the natural log as the default base
811
+ - Modified text functions to handle multibyte character set (UTF-8).
812
+
813
+ ## [1.6.7] - 2009-04-22
814
+
815
+ ### BREAKING CHANGE
816
+
817
+ In previous versions of PHPExcel up to and including 1.6.6,
818
+ when a cell had a date-like number format code, it was possible to enter a date
819
+ directly using an integer PHP-time without converting to Excel date format.
820
+ Starting with PHPExcel 1.6.7 this is no longer supported. Refer to the developer
821
+ documentation for more information on entering dates into a cell.
822
+
823
+ ### General
824
+
825
+ - Deprecate misspelled setStriketrough() and getStriketrough() methods - @MarkBaker [CodePlex #9416](https://phpexcel.codeplex.com/workitem/9416)
826
+
827
+ ### Features
828
+
829
+ - Performance improvement when saving file - @MarkBaker [CodePlex #9526](https://phpexcel.codeplex.com/workitem/9526)
830
+ - Check that sheet title has maximum 31 characters - @MarkBaker [CodePlex #9598](https://phpexcel.codeplex.com/workitem/9598)
831
+ - True support for Excel built-in number format codes - @MB, ET [CodePlex #9631](https://phpexcel.codeplex.com/workitem/9631)
832
+ - Ability to read defect BIFF5 Excel file without CODEPAGE record - @Erik Tilt [CodePlex #9683](https://phpexcel.codeplex.com/workitem/9683)
833
+ - Auto-detect which reader to invoke - @MarkBaker [CodePlex #9701](https://phpexcel.codeplex.com/workitem/9701)
834
+ - Deprecate insertion of dates using PHP-time (Unix time) [request for removal of feature] - @Erik Tilt [CodePlex #9214](https://phpexcel.codeplex.com/workitem/9214)
835
+ - Support for entering time values like '9:45', '09:45' using AdvancedValueBinder - @Erik Tilt [CodePlex #9747](https://phpexcel.codeplex.com/workitem/9747)
836
+
837
+ ### Bugfixes
838
+
839
+ - DataType dependent horizontal alignment in HTML and PDF writer - @Erik Tilt [CodePlex #9797](https://phpexcel.codeplex.com/workitem/9797)
840
+ - Cloning data validation object causes script to stop - @MarkBaker [CodePlex #9375](https://phpexcel.codeplex.com/workitem/9375)
841
+ - Simultaneous repeating rows and repeating columns not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9400](https://phpexcel.codeplex.com/workitem/9400)
842
+ - Simultaneous repeating rows and repeating columns not working with PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #9399](https://phpexcel.codeplex.com/workitem/9399)
843
+ - Row outline level not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9437](https://phpexcel.codeplex.com/workitem/9437)
844
+ - Occasional notices with PHPExcel_Reader_Excel5 when Excel file contains drawing elements - @Erik Tilt [CodePlex #9452](https://phpexcel.codeplex.com/workitem/9452)
845
+ - PHPExcel_Reader_Excel5 fails as a whole when workbook contains images other than JPEG/PNG - @Erik Tilt [CodePlex #9453](https://phpexcel.codeplex.com/workitem/9453)
846
+ - Excel5 writer checks for iconv but does not necessarily use it - @Erik Tilt [CodePlex #9444](https://phpexcel.codeplex.com/workitem/9444)
847
+ - Altering a style on copied worksheet alters also the original - @Erik Tilt [CodePlex #9463](https://phpexcel.codeplex.com/workitem/9463)
848
+ - Formulas are incorrectly updated when a sheet is renamed - @MarkBaker [CodePlex #9480](https://phpexcel.codeplex.com/workitem/9480)
849
+ - PHPExcel_Worksheet::extractSheetTitle not treating single quotes correctly - @MarkBaker [CodePlex #9513](https://phpexcel.codeplex.com/workitem/9513)
850
+ - PHP Warning raised in function array_key_exists - @MarkBaker [CodePlex #9477](https://phpexcel.codeplex.com/workitem/9477)
851
+ - getAlignWithMargins() gives wrong value when using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9599](https://phpexcel.codeplex.com/workitem/9599)
852
+ - getScaleWithDocument() gives wrong value when using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9600](https://phpexcel.codeplex.com/workitem/9600)
853
+ - PHPExcel_Reader_Excel2007 not reading the first user-defined number format - @MarkBaker [CodePlex #9630](https://phpexcel.codeplex.com/workitem/9630)
854
+ - Print area converted to uppercase after read with PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9647](https://phpexcel.codeplex.com/workitem/9647)
855
+ - Incorrect reading of scope for named range using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9661](https://phpexcel.codeplex.com/workitem/9661)
856
+ - Error with pattern (getFillType) and rbg (getRGB) - @MarkBaker [CodePlex #9690](https://phpexcel.codeplex.com/workitem/9690)
857
+ - AdvancedValueBinder affected by system timezone setting when inserting date values - @Erik Tilt [CodePlex #9712](https://phpexcel.codeplex.com/workitem/9712)
858
+ - PHPExcel_Reader_Excel2007 not reading value of active sheet index - @Erik Tilt [CodePlex #9743](https://phpexcel.codeplex.com/workitem/9743)
859
+ - getARGB() sometimes returns SimpleXMLElement object instead of string with PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #9742](https://phpexcel.codeplex.com/workitem/9742)
860
+ - Negative image offset causes defects in 14excel5.xls and 20readexcel5.xlsx - @Erik Tilt [CodePlex #9731](https://phpexcel.codeplex.com/workitem/9731)
861
+ - HTML & PDF Writer not working with mergeCells (regression since 1.6.5) - @Erik Tilt [CodePlex #9758](https://phpexcel.codeplex.com/workitem/9758)
862
+ - Too wide columns with HTML and PDF writer - @Erik Tilt [CodePlex #9774](https://phpexcel.codeplex.com/workitem/9774)
863
+ - PDF and cyrillic fonts - @MarkBaker [CodePlex #9775](https://phpexcel.codeplex.com/workitem/9775)
864
+ - Percentages not working correctly with HTML and PDF writers (shows 0.25% instead of 25%) - @Erik Tilt [CodePlex #9793](https://phpexcel.codeplex.com/workitem/9793)
865
+ - PHPExcel_Writer_HTML creates extra borders around cell contents using setUseInlineCss(true) - @Erik Tilt [CodePlex #9791](https://phpexcel.codeplex.com/workitem/9791)
866
+ - Problem with text wrap + merged cells in HTML and PDF writer - @Erik Tilt [CodePlex #9784](https://phpexcel.codeplex.com/workitem/9784)
867
+ - Adjacent path separators in include_path causing IOFactory to violate open_basedir restriction - @Erik Tilt [CodePlex #9814](https://phpexcel.codeplex.com/workitem/9814)
868
+
869
+ ## [1.6.6] - 2009-03-02
870
+
871
+ ### General
872
+
873
+ - Improve support for built-in number formats in PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9102](https://phpexcel.codeplex.com/workitem/9102)
874
+ - Source files are in both UNIX and DOS formats - changed to UNIX - @Erik Tilt [CodePlex #9281](https://phpexcel.codeplex.com/workitem/9281)
875
+
876
+ ### Features
877
+
878
+ - Update documentation: Which language to write formulas in? - @MarkBaker [CodePlex #9338](https://phpexcel.codeplex.com/workitem/9338)
879
+ - Ignore DEFCOLWIDTH records with value 8 in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8817](https://phpexcel.codeplex.com/workitem/8817)
880
+ - Support for width, height, offsetX, offsetY for images in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8847](https://phpexcel.codeplex.com/workitem/8847)
881
+ - Disk Caching in specific folder - @MarkBaker [CodePlex #8870](https://phpexcel.codeplex.com/workitem/8870)
882
+ - Added SUMX2MY2, SUMX2PY2, SUMXMY2, MDETERM and MINVERSE Mathematical and Trigonometric Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
883
+ - Added CONVERT Engineering Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
884
+ - Added DB, DDB, DISC, DOLLARDE, DOLLARFR, INTRATE, IPMT, PPMT, PRICEDISC, PRICEMAT and RECEIVED Financial Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
885
+ - Added ACCRINTM, CUMIPMT, CUMPRINC, TBILLEQ, TBILLPRICE, TBILLYIELD, YIELDDISC and YIELDMAT Financial Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
886
+ - Added DOLLAR Text Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
887
+ - Added CORREL, COVAR, FORECAST, INTERCEPT, RSQ, SLOPE and STEYX Statistical Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
888
+ - Added PEARSON Statistical Functions as a synonym for CORREL - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
889
+ - Added LINEST, LOGEST (currently only valid for stats = false), TREND and GROWTH Statistical Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
890
+ - Added RANK and PERCENTRANK Statistical Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
891
+ - Added ROMAN Mathematical Function (Classic form only) - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
892
+ - Update documentation to show example of getCellByColumnAndRow($col, $row) - @MarkBaker [CodePlex #8931](https://phpexcel.codeplex.com/workitem/8931)
893
+ - Implement worksheet, row and cell iterators - @MarkBaker [CodePlex #8770](https://phpexcel.codeplex.com/workitem/8770)
894
+ - Support for arbitrary defined names (named range) - @MarkBaker [CodePlex #9001](https://phpexcel.codeplex.com/workitem/9001)
895
+ - Update formulas when sheet title / named range title changes - @MB, ET [CodePlex #9016](https://phpexcel.codeplex.com/workitem/9016)
896
+ - Ability to read cached calculated value - @MarkBaker [CodePlex #9103](https://phpexcel.codeplex.com/workitem/9103)
897
+ - Support for Excel 1904 calendar date mode (Mac) - @MBaker, ET [CodePlex #8483](https://phpexcel.codeplex.com/workitem/8483)
898
+ - PHPExcel_Writer_Excel5 improvements writing shared strings table - @Erik Tilt [CodePlex #9194](https://phpexcel.codeplex.com/workitem/9194)
899
+ - PHPExcel_Writer_Excel5 iconv fallback when mbstring extension is not enabled - @Erik Tilt [CodePlex #9248](https://phpexcel.codeplex.com/workitem/9248)
900
+ - UTF-8 support in font names in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9253](https://phpexcel.codeplex.com/workitem/9253)
901
+ - Implement value binding architecture - @MarkBaker [CodePlex #9215](https://phpexcel.codeplex.com/workitem/9215)
902
+ - PDF writer not working with UTF-8 - @MarkBaker [CodePlex #6742](https://phpexcel.codeplex.com/workitem/6742)
903
+
904
+ ### Bugfixes
905
+
906
+ - Eliminate duplicate style entries in multisheet workbook written by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9355](https://phpexcel.codeplex.com/workitem/9355)
907
+ - Redirect to client browser fails due to trailing white space in class definitions - @Erik Tilt [CodePlex #8810](https://phpexcel.codeplex.com/workitem/8810)
908
+ - Spurious column dimension element introduced in blank worksheet after using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #8816](https://phpexcel.codeplex.com/workitem/8816)
909
+ - Image gets slightly narrower than expected when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8830](https://phpexcel.codeplex.com/workitem/8830)
910
+ - Image laid over non-visible row gets squeezed in height when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8831](https://phpexcel.codeplex.com/workitem/8831)
911
+ - PHPExcel_Reader_Excel5 fails when there are 10 or more images in the workbook - @Erik Tilt [CodePlex #8860](https://phpexcel.codeplex.com/workitem/8860)
912
+ - Different header/footer images in different sheets not working with PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #8909](https://phpexcel.codeplex.com/workitem/8909)
913
+ - Fractional seconds disappear when using PHPExcel_Reader_Excel2007 and PHPExcel_Reader_Excel5 - @MB, ET [CodePlex #8924](https://phpexcel.codeplex.com/workitem/8924)
914
+ - Images not showing in OpenOffice when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7994](https://phpexcel.codeplex.com/workitem/7994)
915
+ - Images not showing on print using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9047](https://phpexcel.codeplex.com/workitem/9047)
916
+ - PHPExcel_Writer_Excel5 maximum allowed record size 4 bytes too short - @Erik Tilt [CodePlex #9085](https://phpexcel.codeplex.com/workitem/9085)
917
+ - Not numeric strings are formatted as dates and numbers using worksheet's toArray method - @MarkBaker [CodePlex #9119](https://phpexcel.codeplex.com/workitem/9119)
918
+ - Excel5 simple formula parsing error - @Erik Tilt [CodePlex #9132](https://phpexcel.codeplex.com/workitem/9132)
919
+ - Problems writing dates with CSV - @Erik Tilt [CodePlex #9206](https://phpexcel.codeplex.com/workitem/9206)
920
+ - PHPExcel_Reader_Excel5 reader fails with fatal error when reading group shapes - @Erik Tilt [CodePlex #9203](https://phpexcel.codeplex.com/workitem/9203)
921
+ - PHPExcel_Writer_Excel5 fails completely when workbook contains more than 57 colors - @Erik Tilt [CodePlex #9231](https://phpexcel.codeplex.com/workitem/9231)
922
+ - PHPExcel_Writer_PDF not compatible with autoload - @Erik Tilt [CodePlex #9244](https://phpexcel.codeplex.com/workitem/9244)
923
+ - Fatal error: Call to a member function getNestingLevel() on a non-object in PHPExcel/Reader/Excel5.php on line 690 - @Erik Tilt [CodePlex #9250](https://phpexcel.codeplex.com/workitem/9250)
924
+ - Notices when running test 04printing.php on PHP 5.2.8 - @MarkBaker [CodePlex #9246](https://phpexcel.codeplex.com/workitem/9246)
925
+ - insertColumn() spawns creation of spurious RowDimension - @MarkBaker [CodePlex #9294](https://phpexcel.codeplex.com/workitem/9294)
926
+ - Fix declarations for methods in extended Trend classes - @MarkBaker [CodePlex #9296](https://phpexcel.codeplex.com/workitem/9296)
927
+ - Fix to parameters for the FORECAST Statistical Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
928
+ - PDF writer problems with cell height and text wrapping - @MarkBaker [CodePlex #7083](https://phpexcel.codeplex.com/workitem/7083)
929
+ - Fix test for calculated value in case the returned result is an array - @MarkBaker
930
+ - Column greater than 256 results in corrupt Excel file using PHPExcel_Writer_Excel5 - @Erik Tilt
931
+ - Excel Numberformat 0.00 results in non internal decimal places values in toArray() Method - @MarkBaker [CodePlex #9351](https://phpexcel.codeplex.com/workitem/9351)
932
+ - setAutoSize not taking into account text rotation - @MB,ET [CodePlex #9356](https://phpexcel.codeplex.com/workitem/9356)
933
+ - Call to undefined method PHPExcel_Worksheet_MemoryDrawing::getPath() in PHPExcel/Writer/HTML.php - @Erik Tilt [CodePlex #9372](https://phpexcel.codeplex.com/workitem/9372)
934
+
935
+ ## [1.6.5] - 2009-01-05
936
+
937
+ ### General
938
+
939
+ - Applied patch 2063 - @MarkBaker
940
+ - Optimise Shared Strings - @MarkBaker
941
+ - Optimise Cell Sorting - @MarkBaker
942
+ - Optimise Style Hashing - @MarkBaker
943
+ - UTF-8 enhancements - @Erik Tilt
944
+ - PHPExcel_Writer_HTML validation errors against strict HTML 4.01 / CSS 2.1 - @Erik Tilt
945
+ - Documented work items 6203 and 8110 in manual - @MarkBaker
946
+ - Restructure package hierachy so classes can be found more easily in auto-generated API (from work item 8468) - @Erik Tilt
947
+
948
+ ### Features
949
+
950
+ - Redirect output to a client's browser: Update recommendation in documentation - @MarkBaker [CodePlex #8806](https://phpexcel.codeplex.com/workitem/8806)
951
+ - PHPExcel_Reader_Excel5 support for print gridlines - @Erik Tilt [CodePlex #7897](https://phpexcel.codeplex.com/workitem/7897)
952
+ - Screen gridlines support in Excel5 reader/writer - @Erik Tilt [CodePlex #7899](https://phpexcel.codeplex.com/workitem/7899)
953
+ - Option for adding image to spreadsheet from image resource in memory - @MB, ET [CodePlex #7552](https://phpexcel.codeplex.com/workitem/7552)
954
+ - PHPExcel_Reader_Excel5 style support for BIFF5 files (Excel 5.0 - Excel 95) - @Erik Tilt [CodePlex #7862](https://phpexcel.codeplex.com/workitem/7862)
955
+ - PHPExcel_Reader_Excel5 support for user-defined colors and special built-in colors - @Erik Tilt [CodePlex #7918](https://phpexcel.codeplex.com/workitem/7918)
956
+ - Support for freeze panes in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7992](https://phpexcel.codeplex.com/workitem/7992)
957
+ - Support for header and footer margins in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7996](https://phpexcel.codeplex.com/workitem/7996)
958
+ - Support for active sheet index in Excel5 reader/writer - @Erik Tilt [CodePlex #7997](https://phpexcel.codeplex.com/workitem/7997)
959
+ - Freeze panes not read by PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7991](https://phpexcel.codeplex.com/workitem/7991)
960
+ - Support for screen zoom level (feature request) - @MB, ET [CodePlex #7993](https://phpexcel.codeplex.com/workitem/7993)
961
+ - Support for default style in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8012](https://phpexcel.codeplex.com/workitem/8012)
962
+ - Apple iWork / Numbers.app incompatibility - @MarkBaker [CodePlex #8094](https://phpexcel.codeplex.com/workitem/8094)
963
+ - Support "between rule" in conditional formatting - @MarkBaker [CodePlex #7931](https://phpexcel.codeplex.com/workitem/7931)
964
+ - Comment size, width and height control (feature request) - @MarkBaker [CodePlex #8308](https://phpexcel.codeplex.com/workitem/8308)
965
+ - Improve method for storing MERGEDCELLS records in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8418](https://phpexcel.codeplex.com/workitem/8418)
966
+ - Support for protectCells() in Excel5 reader/writer - @Erik Tilt [CodePlex #8435](https://phpexcel.codeplex.com/workitem/8435)
967
+ - Support for fitToWidth and fitToHeight pagesetup properties in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8472](https://phpexcel.codeplex.com/workitem/8472)
968
+ - Support for setShowSummaryBelow() and setShowSummaryRight() in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8489](https://phpexcel.codeplex.com/workitem/8489)
969
+ - Support for Excel 1904 calendar date mode (Mac) - @MarkBaker [CodePlex #8483](https://phpexcel.codeplex.com/workitem/8483)
970
+ - Excel5 reader: Support for reading images (bitmaps) - @Erik Tilt [CodePlex #7538](https://phpexcel.codeplex.com/workitem/7538)
971
+ - Support for default style in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8787](https://phpexcel.codeplex.com/workitem/8787)
972
+ - Modified calculate() method to return either an array or the first value from the array for those functions that return arrays rather than single values (e.g the MMULT and TRANSPOSE function). This performance can be modified based on the $returnArrayAsType which can be set/retrieved by calling the setArrayReturnType() and getArrayReturnType() methods of the PHPExcel_Calculation class. - @MarkBaker
973
+
974
+ ### Bugfixes
975
+
976
+ - Added ERROR.TYPE Information Function, MMULT Mathematical and Trigonometry Function, and TRANSPOSE Lookup and Reference Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
977
+ - setPrintGridlines(true) not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7896](https://phpexcel.codeplex.com/workitem/7896)
978
+ - Incorrect mapping of fill patterns in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7907](https://phpexcel.codeplex.com/workitem/7907)
979
+ - setShowGridlines(false) not working with PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #7898](https://phpexcel.codeplex.com/workitem/7898)
980
+ - getShowGridlines() gives inverted value when reading sheet with PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7905](https://phpexcel.codeplex.com/workitem/7905)
981
+ - User-defined column width becomes slightly larger after read/write with Excel5 - @Erik Tilt [CodePlex #7944](https://phpexcel.codeplex.com/workitem/7944)
982
+ - Incomplete border style support in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7949](https://phpexcel.codeplex.com/workitem/7949)
983
+ - Conditional formatting "containsText" read/write results in MS Office Excel 2007 crash - @MarkBaker [CodePlex #7928](https://phpexcel.codeplex.com/workitem/7928)
984
+ - All sheets are always selected in output when using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #7995](https://phpexcel.codeplex.com/workitem/7995)
985
+ - COLUMN function warning message during plain read/write - @MarkBaker [CodePlex #8013](https://phpexcel.codeplex.com/workitem/8013)
986
+ - setValue(0) results in string data type '0' - @MarkBaker [CodePlex #8155](https://phpexcel.codeplex.com/workitem/8155)
987
+ - Styles not removed when removing rows from sheet - @MarkBaker [CodePlex #8226](https://phpexcel.codeplex.com/workitem/8226)
988
+ - =IF formula causes fatal error during $objWriter->save() in Excel2007 format - @MarkBaker [CodePlex #8301](https://phpexcel.codeplex.com/workitem/8301)
989
+ - Exception thrown reading valid xls file: "Excel file is corrupt. Didn't find CONTINUE record while reading shared strings" - @Erik Tilt [CodePlex #8333](https://phpexcel.codeplex.com/workitem/8333)
990
+ - MS Outlook corrupts files generated by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8320](https://phpexcel.codeplex.com/workitem/8320)
991
+ - Undefined method PHPExcel_Worksheet::setFreezePane() in ReferenceHelper.php on line 271 - @MarkBaker [CodePlex #8351](https://phpexcel.codeplex.com/workitem/8351)
992
+ - Ampersands (&), left and right angles (<, >) in Rich-Text strings leads to corrupt output using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #8401](https://phpexcel.codeplex.com/workitem/8401)
993
+ - Print header and footer not supporting UTF-8 in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8408](https://phpexcel.codeplex.com/workitem/8408)
994
+ - Vertical page breaks not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8463](https://phpexcel.codeplex.com/workitem/8463)
995
+ - Missing support for accounting underline types in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8476](https://phpexcel.codeplex.com/workitem/8476)
996
+ - Infinite loops when reading corrupt xls file using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8482](https://phpexcel.codeplex.com/workitem/8482)
997
+ - Sheet protection password not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8566](https://phpexcel.codeplex.com/workitem/8566)
998
+ - PHPExcel_Style_NumberFormat::FORMAT_NUMBER ignored by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8596](https://phpexcel.codeplex.com/workitem/8596)
999
+ - PHPExcel_Reader_Excel5 fails a whole when workbook contains a chart - @Erik Tilt [CodePlex #8781](https://phpexcel.codeplex.com/workitem/8781)
1000
+ - Occasional loss of column widths using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8788](https://phpexcel.codeplex.com/workitem/8788)
1001
+ - Notices while reading formulas with deleted sheet references using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8795](https://phpexcel.codeplex.com/workitem/8795)
1002
+ - Default style not read by PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #8807](https://phpexcel.codeplex.com/workitem/8807)
1003
+ - Blank rows occupy too much space in file generated by PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #9341](https://phpexcel.codeplex.com/workitem/9341)
1004
+
1005
+ ## [1.6.4] - 2008-10-27
1006
+
1007
+ ### Features
1008
+
1009
+ - RK record number error in MS developer documentation: 0x007E should be 0x027E - @Erik Tilt [CodePlex #7882](https://phpexcel.codeplex.com/workitem/7882)
1010
+ - getHighestColumn() returning "@" for blank worksheet causes corrupt output - @MarkBaker [CodePlex #7878](https://phpexcel.codeplex.com/workitem/7878)
1011
+ - Implement ROW and COLUMN Lookup/Reference Functions (when specified with a parameter) - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1012
+ - Implement initial work on OFFSET Lookup/Reference Function (returning address rather than value at address) - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1013
+ - Excel5 reader: Page margins - @Erik Tilt [CodePlex #7416](https://phpexcel.codeplex.com/workitem/7416)
1014
+ - Excel5 reader: Header & Footer - @Erik Tilt [CodePlex #7417](https://phpexcel.codeplex.com/workitem/7417)
1015
+ - Excel5 reader support for page setup (paper size etc.) - @Erik Tilt [CodePlex #7449](https://phpexcel.codeplex.com/workitem/7449)
1016
+ - Improve speed and memory consumption of PHPExcel_Writer_CSV - @MarkBaker [CodePlex #7445](https://phpexcel.codeplex.com/workitem/7445)
1017
+ - Better recognition of number format in HTML, CSV, and PDF writer - @MarkBaker [CodePlex #7432](https://phpexcel.codeplex.com/workitem/7432)
1018
+ - Font support: Superscript and Subscript - @MarkBaker [CodePlex #7485](https://phpexcel.codeplex.com/workitem/7485)
1019
+ - Excel5 reader font support: Super- and subscript - @Erik Tilt [CodePlex #7509](https://phpexcel.codeplex.com/workitem/7509)
1020
+ - Excel5 reader style support: Text rotation and stacked text - @Erik Tilt [CodePlex #7521](https://phpexcel.codeplex.com/workitem/7521)
1021
+ - Excel5 reader: Support for hyperlinks - @Erik Tilt [CodePlex #7530](https://phpexcel.codeplex.com/workitem/7530)
1022
+ - Import sheet by request - @MB, ET [CodePlex #7557](https://phpexcel.codeplex.com/workitem/7557)
1023
+ - PHPExcel_Reader_Excel5 support for page breaks - @Erik Tilt [CodePlex #7607](https://phpexcel.codeplex.com/workitem/7607)
1024
+ - PHPExcel_Reader_Excel5 support for shrink-to-fit - @Erik Tilt [CodePlex #7622](https://phpexcel.codeplex.com/workitem/7622)
1025
+ - Support for error types - @MB, ET [CodePlex #7675](https://phpexcel.codeplex.com/workitem/7675)
1026
+ - Excel5 reader true formula support - @Erik Tilt [CodePlex #7388](https://phpexcel.codeplex.com/workitem/7388)
1027
+ - Support for named ranges (defined names) in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7701](https://phpexcel.codeplex.com/workitem/7701)
1028
+ - Support for repeating rows and repeating columns (print titles) in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7781](https://phpexcel.codeplex.com/workitem/7781)
1029
+ - Support for print area in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7783](https://phpexcel.codeplex.com/workitem/7783)
1030
+ - Excel5 reader and writer support for horizontal and vertical centering of page - @Erik Tilt [CodePlex #7795](https://phpexcel.codeplex.com/workitem/7795)
1031
+ - Applied patch 1962 - @MarkBaker
1032
+ - Excel5 reader and writer support for hidden cells (formulas) - @Erik Tilt [CodePlex #7866](https://phpexcel.codeplex.com/workitem/7866)
1033
+ - Support for indentation in cells (feature request) - @MB, ET [CodePlex #7612](https://phpexcel.codeplex.com/workitem/7612)
1034
+
1035
+ ### Bugfixes
1036
+
1037
+ - Option for reading only specified interval of rows in a sheet - @MB, ET [CodePlex #7828](https://phpexcel.codeplex.com/workitem/7828)
1038
+ - PHPExcel_Calculation_Functions::DATETIMENOW() and PHPExcel_Calculation_Functions::DATENOW() to force UTC - @MarkBaker [CodePlex #7367](https://phpexcel.codeplex.com/workitem/7367)
1039
+ - Modified PHPExcel_Shared_Date::FormattedPHPToExcel() and PHPExcel_Shared_Date::ExcelToPHP to force datatype for return values - @MarkBaker [CodePlex #7395](https://phpexcel.codeplex.com/workitem/7395)
1040
+ - Excel5 reader not producing UTF-8 strings with BIFF5 files - @Erik Tilt [CodePlex #7450](https://phpexcel.codeplex.com/workitem/7450)
1041
+ - Array constant in formula gives run-time notice with Excel2007 writer - @MarkBaker [CodePlex #7470](https://phpexcel.codeplex.com/workitem/7470)
1042
+ - PHPExcel_Reader_Excel2007 setReadDataOnly(true) returns Rich-Text - @MarkBaker [CodePlex #7494](https://phpexcel.codeplex.com/workitem/7494)
1043
+ - PHPExcel_Reader_Excel5 setReadDataOnly(true) returns Rich-Text - @Erik Tilt [CodePlex #7496](https://phpexcel.codeplex.com/workitem/7496)
1044
+ - Characters before superscript or subscript losing style - @MarkBaker [CodePlex #7497](https://phpexcel.codeplex.com/workitem/7497)
1045
+ - Subscript not working with HTML writer - @MarkBaker [CodePlex #7507](https://phpexcel.codeplex.com/workitem/7507)
1046
+ - DefaultColumnDimension not working on first column (A) - @MarkBaker [CodePlex #7508](https://phpexcel.codeplex.com/workitem/7508)
1047
+ - Negative numbers are stored as text in PHPExcel_Writer_2007 - @MarkBaker [CodePlex #7527](https://phpexcel.codeplex.com/workitem/7527)
1048
+ - Text rotation and stacked text not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7531](https://phpexcel.codeplex.com/workitem/7531)
1049
+ - PHPExcel_Shared_Date::isDateTimeFormatCode erroneously says true - @MarkBaker [CodePlex #7536](https://phpexcel.codeplex.com/workitem/7536)
1050
+ - Different images with same filename in separate directories become duplicates - @MarkBaker [CodePlex #7559](https://phpexcel.codeplex.com/workitem/7559)
1051
+ - PHPExcel_Reader_Excel5 not returning sheet names as UTF-8 using for Excel 95 files - @Erik Tilt [CodePlex #7568](https://phpexcel.codeplex.com/workitem/7568)
1052
+ - setAutoSize(true) on empty column gives column width of 10 using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #7575](https://phpexcel.codeplex.com/workitem/7575)
1053
+ - setAutoSize(true) on empty column gives column width of 255 using PHPExcel_Writer_Excel5 - @MB, ET [CodePlex #7573](https://phpexcel.codeplex.com/workitem/7573)
1054
+ - Worksheet_Drawing bug - @MarkBaker [CodePlex #7514](https://phpexcel.codeplex.com/workitem/7514)
1055
+ - getCalculatedValue() with REPT function causes script to stop - @MarkBaker [CodePlex #7593](https://phpexcel.codeplex.com/workitem/7593)
1056
+ - getCalculatedValue() with LEN function causes script to stop - @MarkBaker [CodePlex #7594](https://phpexcel.codeplex.com/workitem/7594)
1057
+ - Explicit fit-to-width (page setup) results in fit-to-height becoming 1 - @MarkBaker [CodePlex #7600](https://phpexcel.codeplex.com/workitem/7600)
1058
+ - Fit-to-width value of 1 is lost after read/write of Excel2007 spreadsheet - @MarkBaker [CodePlex #7610](https://phpexcel.codeplex.com/workitem/7610)
1059
+ - Conditional styles not read properly using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7516](https://phpexcel.codeplex.com/workitem/7516)
1060
+ - PHPExcel_Writer_2007: Default worksheet style works only for first sheet - @MarkBaker [CodePlex #7611](https://phpexcel.codeplex.com/workitem/7611)
1061
+ - Cannot Lock Cells using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #6940](https://phpexcel.codeplex.com/workitem/6940)
1062
+ - Incorrect cell protection values found when using Excel5 reader - @Erik Tilt [CodePlex #7621](https://phpexcel.codeplex.com/workitem/7621)
1063
+ - Default row height not working above highest row using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7623](https://phpexcel.codeplex.com/workitem/7623)
1064
+ - Default column width does not get applied when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7637](https://phpexcel.codeplex.com/workitem/7637)
1065
+ - Broken support for UTF-8 string formula results in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7642](https://phpexcel.codeplex.com/workitem/7642)
1066
+ - UTF-8 sheet names not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7643](https://phpexcel.codeplex.com/workitem/7643)
1067
+ - getCalculatedValue() with ISNONTEXT function causes script to stop - @MarkBaker [CodePlex #7631](https://phpexcel.codeplex.com/workitem/7631)
1068
+ - Missing BIFF3 functions in PHPExcel_Writer_Excel5: USDOLLAR (YEN), FINDB, SEARCHB, REPLACEB, LEFTB, RIGHTB, MIDB, LENB, ASC, DBCS (JIS) - @Erik Tilt [CodePlex #7652](https://phpexcel.codeplex.com/workitem/7652)
1069
+ - Excel5 reader doesn't read numbers correctly in 64-bit systems - @Erik Tilt [CodePlex #7663](https://phpexcel.codeplex.com/workitem/7663)
1070
+ - Missing BIFF5 functions in PHPExcel_Writer_Excel5: ISPMT, DATEDIF, DATESTRING, NUMBERSTRING - @Erik Tilt [CodePlex #7667](https://phpexcel.codeplex.com/workitem/7667)
1071
+ - Missing BIFF8 functions in PHPExcel_Writer_Excel5: GETPIVOTDATA, HYPERLINK, PHONETIC, AVERAGEA, MAXA, MINA, STDEVPA, VARPA, STDEVA, VARA - @Erik Tilt [CodePlex #7668](https://phpexcel.codeplex.com/workitem/7668)
1072
+ - Wrong host value in PHPExcel_Shared_ZipStreamWrapper::stream_open() - @MarkBaker [CodePlex #7657](https://phpexcel.codeplex.com/workitem/7657)
1073
+ - PHPExcel_Reader_Excel5 not reading explicitly entered error types in cells - @Erik Tilt [CodePlex #7676](https://phpexcel.codeplex.com/workitem/7676)
1074
+ - Boolean and error data types not preserved for formula results in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7678](https://phpexcel.codeplex.com/workitem/7678)
1075
+ - PHPExcel_Reader_Excel2007 ignores cell data type - @MarkBaker [CodePlex #7695](https://phpexcel.codeplex.com/workitem/7695)
1076
+ - PHPExcel_Reader_Excel5 ignores cell data type - @Erik Tilt [CodePlex #7712](https://phpexcel.codeplex.com/workitem/7712)
1077
+ - PHPExcel_Writer_Excel5 not aware of data type - @Erik Tilt [CodePlex #7587](https://phpexcel.codeplex.com/workitem/7587)
1078
+ - Long strings sometimes truncated when using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7713](https://phpexcel.codeplex.com/workitem/7713)
1079
+ - Direct entry of boolean or error type in cell not supported by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7727](https://phpexcel.codeplex.com/workitem/7727)
1080
+ - PHPExcel_Reader_Excel2007: Error reading cell with data type string, date number format, and numeric-like cell value - @MarkBaker [CodePlex #7714](https://phpexcel.codeplex.com/workitem/7714)
1081
+ - Row and column outlines (group indent level) not showing after using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7735](https://phpexcel.codeplex.com/workitem/7735)
1082
+ - Missing UTF-8 support in number format codes for PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7737](https://phpexcel.codeplex.com/workitem/7737)
1083
+ - Missing UTF-8 support with PHPExcel_Writer_Excel5 for explicit string in formula - @Erik Tilt [CodePlex #7750](https://phpexcel.codeplex.com/workitem/7750)
1084
+ - Problem with class constants in PHPExcel_Style_NumberFormat - @MarkBaker [CodePlex #7726](https://phpexcel.codeplex.com/workitem/7726)
1085
+ - Sometimes errors with PHPExcel_Reader_Excel5 reading hyperlinks - @Erik Tilt [CodePlex #7758](https://phpexcel.codeplex.com/workitem/7758)
1086
+ - Hyperlink in cell always results in string data type when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7759](https://phpexcel.codeplex.com/workitem/7759)
1087
+ - Excel file with blank sheet seen as broken in MS Office Excel 2007 when created by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7771](https://phpexcel.codeplex.com/workitem/7771)
1088
+ - PHPExcel_Reader_Excel5: Incorrect reading of formula with explicit string containing (escaped) double-quote - @Erik Tilt [CodePlex #7785](https://phpexcel.codeplex.com/workitem/7785)
1089
+ - getCalculatedValue() fails on formula with sheet name containing (escaped) single-quote - @MarkBaker [CodePlex #7787](https://phpexcel.codeplex.com/workitem/7787)
1090
+ - getCalculatedValue() fails on formula with explicit string containing (escaped) double-quote - @MarkBaker [CodePlex #7786](https://phpexcel.codeplex.com/workitem/7786)
1091
+ - Problems with simultaneous repeatRowsAtTop and repeatColumnsAtLeft using Excel2007 reader and writer - @MarkBaker [CodePlex #7780](https://phpexcel.codeplex.com/workitem/7780)
1092
+ - PHPExcel_Reader_Excel5: Error reading formulas with sheet reference containing special characters - @Erik Tilt [CodePlex #7802](https://phpexcel.codeplex.com/workitem/7802)
1093
+ - Off-sheet references sheet!A1 not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7831](https://phpexcel.codeplex.com/workitem/7831)
1094
+ - Repeating rows/columns (print titles), print area not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7834](https://phpexcel.codeplex.com/workitem/7834)
1095
+ - Formula having datetime number format shows as text when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7849](https://phpexcel.codeplex.com/workitem/7849)
1096
+ - Cannot set formula to hidden using applyFromArray() - @MarkBaker [CodePlex #7863](https://phpexcel.codeplex.com/workitem/7863)
1097
+ - HTML/PDF Writers limited to 26 columns by calculateWorksheetDimension (erroneous comparison in getHighestColumn() method) - @MarkBaker [CodePlex #7805](https://phpexcel.codeplex.com/workitem/7805)
1098
+ - Formula returning error type is lost when read by PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7873](https://phpexcel.codeplex.com/workitem/7873)
1099
+ - PHPExcel_Reader_Excel5: Cell style lost for last column in group of blank cells - @Erik Tilt [CodePlex #7883](https://phpexcel.codeplex.com/workitem/7883)
1100
+ - Column width sometimes collapses to auto size using Excel2007 reader/writer - @MarkBaker [CodePlex #7886](https://phpexcel.codeplex.com/workitem/7886)
1101
+ - Data Validation Formula = 0 crashes Excel - @MarkBaker [CodePlex #9343](https://phpexcel.codeplex.com/workitem/9343)
1102
+
1103
+ ## [1.6.3] - 2008-08-25
1104
+
1105
+ ### General
1106
+
1107
+ - Modified PHPExcel_Shared_Date::PHPToExcel() to force UTC - @MarkBaker [CodePlex #7367](https://phpexcel.codeplex.com/workitem/7367)
1108
+ - Applied patch 1629 - @MarkBaker
1109
+ - Applied patch 1644 - @MarkBaker
1110
+ - Implement repeatRow and repeatColumn in Excel5 writer - @MarkBaker [CodePlex #6485](https://phpexcel.codeplex.com/workitem/6485)
1111
+
1112
+ ### Features
1113
+
1114
+ - Remove scene3d filter in Excel2007 drawing - @MarkBaker [CodePlex #6838](https://phpexcel.codeplex.com/workitem/6838)
1115
+ - Implement CHOOSE and INDEX Lookup/Reference Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1116
+ - Implement CLEAN Text Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1117
+ - Implement YEARFRAC Date/Time Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1118
+ - Implement 2 options for print/show gridlines - @MarkBaker [CodePlex #6508](https://phpexcel.codeplex.com/workitem/6508)
1119
+ - Add VLOOKUP function (contribution) - @MarkBaker [CodePlex #7270](https://phpexcel.codeplex.com/workitem/7270)
1120
+ - Implemented: ShrinkToFit - @MarkBaker [CodePlex #7182](https://phpexcel.codeplex.com/workitem/7182)
1121
+ - Row heights not updated correctly when inserting new rows - @MarkBaker [CodePlex #7218](https://phpexcel.codeplex.com/workitem/7218)
1122
+ - Copy worksheets within the same workbook - @MarkBaker [CodePlex #7157](https://phpexcel.codeplex.com/workitem/7157)
1123
+ - Excel5 reader style support: horizontal and vertical alignment plus text wrap - @Erik Tilt [CodePlex #7290](https://phpexcel.codeplex.com/workitem/7290)
1124
+ - Excel5 reader support for merged cells - @Erik Tilt [CodePlex #7294](https://phpexcel.codeplex.com/workitem/7294)
1125
+ - Excel5 reader: Sheet Protection - @Erik Tilt [CodePlex #7296](https://phpexcel.codeplex.com/workitem/7296)
1126
+ - Excel5 reader: Password for sheet protection - @Erik Tilt [CodePlex #7297](https://phpexcel.codeplex.com/workitem/7297)
1127
+ - Excel5 reader: Column width - @Erik Tilt [CodePlex #7299](https://phpexcel.codeplex.com/workitem/7299)
1128
+ - Excel5 reader: Row height - @Erik Tilt [CodePlex #7301](https://phpexcel.codeplex.com/workitem/7301)
1129
+ - Excel5 reader: Font support - @Erik Tilt [CodePlex #7304](https://phpexcel.codeplex.com/workitem/7304)
1130
+ - Excel5 reader: support for locked cells - @Erik Tilt [CodePlex #7324](https://phpexcel.codeplex.com/workitem/7324)
1131
+ - Excel5 reader style support: Fill (background colors and patterns) - @Erik Tilt [CodePlex #7330](https://phpexcel.codeplex.com/workitem/7330)
1132
+ - Excel5 reader style support: Borders (style and color) - @Erik Tilt [CodePlex #7332](https://phpexcel.codeplex.com/workitem/7332)
1133
+ - Excel5 reader: Rich-Text support - @Erik Tilt [CodePlex #7346](https://phpexcel.codeplex.com/workitem/7346)
1134
+ - Read Excel built-in number formats with Excel 2007 reader - @MarkBaker [CodePlex #7313](https://phpexcel.codeplex.com/workitem/7313)
1135
+ - Excel5 reader: Number format support - @Erik Tilt [CodePlex #7317](https://phpexcel.codeplex.com/workitem/7317)
1136
+ - Creating a copy of PHPExcel object - @MarkBaker [CodePlex #7362](https://phpexcel.codeplex.com/workitem/7362)
1137
+ - Excel5 reader: support for row / column outline (group) - @Erik Tilt [CodePlex #7373](https://phpexcel.codeplex.com/workitem/7373)
1138
+ - Implement default row/column sizes - @MarkBaker [CodePlex #7380](https://phpexcel.codeplex.com/workitem/7380)
1139
+ - Writer HTML - option to return styles and table separately - @MarkBaker [CodePlex #7364](https://phpexcel.codeplex.com/workitem/7364)
1140
+
1141
+ ### Bugfixes
1142
+
1143
+ - Excel5 reader: Support for remaining built-in number formats - @Erik Tilt [CodePlex #7393](https://phpexcel.codeplex.com/workitem/7393)
1144
+ - Fixed rounding in HOUR MINUTE and SECOND Time functions, and improved performance for these - @MarkBaker
1145
+ - Fix to TRIM function - @MarkBaker
1146
+ - Fixed range validation in TIME Functions.php - @MarkBaker
1147
+ - EDATE and EOMONTH functions now return date values based on the returnDateType flag - @MarkBaker
1148
+ - Write date values that are the result of a calculation function correctly as Excel serialized dates rather than PHP serialized date values - @MarkBaker
1149
+ - Excel2007 reader not always reading boolean correctly - @MarkBaker [CodePlex #6690](https://phpexcel.codeplex.com/workitem/6690)
1150
+ - Columns above IZ - @MarkBaker [CodePlex #6275](https://phpexcel.codeplex.com/workitem/6275)
1151
+ - Other locale than English causes Excel2007 writer to produce broken xlsx - @MarkBaker [CodePlex #6853](https://phpexcel.codeplex.com/workitem/6853)
1152
+ - Typo: Number_fromat in NumberFormat.php - @MarkBaker [CodePlex #7061](https://phpexcel.codeplex.com/workitem/7061)
1153
+ - Bug in Worksheet_BaseDrawing setWidth() - @MarkBaker [CodePlex #6865](https://phpexcel.codeplex.com/workitem/6865)
1154
+ - PDF writer collapses column width for merged cells - @MarkBaker [CodePlex #6891](https://phpexcel.codeplex.com/workitem/6891)
1155
+ - Issues with drawings filenames - @MarkBaker [CodePlex #6867](https://phpexcel.codeplex.com/workitem/6867)
1156
+ - fromArray() local variable isn't defined - @MarkBaker [CodePlex #7073](https://phpexcel.codeplex.com/workitem/7073)
1157
+ - PHPExcel_Writer_Excel5->setTempDir() not passed to all classes involved in writing to a file - @MarkBaker [CodePlex #7276](https://phpexcel.codeplex.com/workitem/7276)
1158
+ - Excel5 reader not handling UTF-8 properly - @MarkBaker [CodePlex #7277](https://phpexcel.codeplex.com/workitem/7277)
1159
+ - If you write a 0 value in cell, cell shows as empty - @MarkBaker [CodePlex #7327](https://phpexcel.codeplex.com/workitem/7327)
1160
+ - Excel2007 writer: Row height ignored for empty rows - @MarkBaker [CodePlex #7302](https://phpexcel.codeplex.com/workitem/7302)
1161
+ - Excel2007 (comments related error) - @MarkBaker [CodePlex #7281](https://phpexcel.codeplex.com/workitem/7281)
1162
+ - Column width in other locale - @MarkBaker [CodePlex #7345](https://phpexcel.codeplex.com/workitem/7345)
1163
+ - Excel2007 reader not reading underlined Rich-Text - @MarkBaker [CodePlex #7347](https://phpexcel.codeplex.com/workitem/7347)
1164
+ - Excel5 reader converting booleans to strings - @Erik Tilt [CodePlex #7357](https://phpexcel.codeplex.com/workitem/7357)
1165
+ - Recursive Object Memory Leak - @MarkBaker [CodePlex #7365](https://phpexcel.codeplex.com/workitem/7365)
1166
+ - Excel2007 writer ignoring row dimensions without cells - @MarkBaker [CodePlex #7372](https://phpexcel.codeplex.com/workitem/7372)
1167
+ - Excel5 reader is converting formatted numbers / dates to strings - @Erik Tilt [CodePlex #7382](https://phpexcel.codeplex.com/workitem/7382)
1168
+
1169
+ ## [1.6.2] - 2008-06-23
1170
+
1171
+ ### General
1172
+
1173
+ - Document style array values - @MarkBaker [CodePlex #6088](https://phpexcel.codeplex.com/workitem/6088)
1174
+ - Applied patch 1195 - @MarkBaker
1175
+ - Redirecting output to a client’s web browser - http headers - @MarkBaker [CodePlex #6178](https://phpexcel.codeplex.com/workitem/6178)
1176
+ - Improve worksheet garbage collection - @MarkBaker [CodePlex #6187](https://phpexcel.codeplex.com/workitem/6187)
1177
+ - Functions that return date values can now be configured to return as Excel serialized date/time, PHP serialized date/time, or a PHP date/time object. - @MarkBaker
1178
+ - Functions that explicitly accept dates as parameters now permit values as Excel serialized date/time, PHP serialized date/time, a valid date string, or a PHP date/time object. - @MarkBaker
1179
+ - Implement ACOSH, ASINH and ATANH functions for those operating platforms/PHP versions that don't include these functions - @MarkBaker
1180
+ - Implement ATAN2 logic reversing the arguments as per Excel - @MarkBaker
1181
+ - Additional validation of parameters for COMBIN - @MarkBaker
1182
+
1183
+ ### Features
1184
+
1185
+ - Fixed validation for CEILING and FLOOR when the value and significance parameters have different signs; and allowed default value of 1 or -1 for significance when in GNUMERIC compatibility mode - @MarkBaker
1186
+ - Implement ADDRESS, ISLOGICAL, ISTEXT and ISNONTEXT functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1187
+ - Implement COMPLEX, IMAGINARY, IMREAL, IMARGUMENT, IMCONJUGATE, IMABS, IMSUB, IMDIV, IMSUM, IMPRODUCT, IMSQRT, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER IMCOS and IMSIN Engineering functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1188
+ - Implement NETWORKDAYS and WORKDAY Date/Time functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1189
+ - Make cell column AAA available - @MarkBaker [CodePlex #6100](https://phpexcel.codeplex.com/workitem/6100)
1190
+ - Mark particular cell as selected when opening Excel - @MarkBaker [CodePlex #6095](https://phpexcel.codeplex.com/workitem/6095)
1191
+ - Multiple sheets in PDF and HTML - @MarkBaker [CodePlex #6120](https://phpexcel.codeplex.com/workitem/6120)
1192
+ - Implement PHPExcel_ReaderFactory and PHPExcel_WriterFactory - @MarkBaker [CodePlex #6227](https://phpexcel.codeplex.com/workitem/6227)
1193
+ - Set image root of PHPExcel_Writer_HTML - @MarkBaker [CodePlex #6249](https://phpexcel.codeplex.com/workitem/6249)
1194
+ - Enable/disable calculation cache - @MarkBaker [CodePlex #6264](https://phpexcel.codeplex.com/workitem/6264)
1195
+ - PDF writer and multi-line text - @MarkBaker [CodePlex #6259](https://phpexcel.codeplex.com/workitem/6259)
1196
+ - Feature request - setCacheExpirationTime() - @MarkBaker [CodePlex #6350](https://phpexcel.codeplex.com/workitem/6350)
1197
+ - Implement late-binding mechanisms to reduce memory footprint - @JB [CodePlex #6370](https://phpexcel.codeplex.com/workitem/6370)
1198
+ - Implement shared styles - @JB [CodePlex #6430](https://phpexcel.codeplex.com/workitem/6430)
1199
+ - Copy sheet from external Workbook to active Workbook - @MarkBaker [CodePlex #6391](https://phpexcel.codeplex.com/workitem/6391)
1200
+
1201
+ ### Bugfixes
1202
+
1203
+ - Functions in Conditional Formatting - @MarkBaker [CodePlex #6428](https://phpexcel.codeplex.com/workitem/6428)
1204
+ - Default Style in Excel5 - @MarkBaker [CodePlex #6096](https://phpexcel.codeplex.com/workitem/6096)
1205
+ - Numbers starting with '+' cause Excel 2007 errors - @MarkBaker [CodePlex #6150](https://phpexcel.codeplex.com/workitem/6150)
1206
+ - ExcelWriter5 is not PHP5 compatible, using it with E_STRICT results in a bunch of errors (applied patches) - @MarkBaker [CodePlex #6092](https://phpexcel.codeplex.com/workitem/6092)
1207
+ - Error Reader Excel2007 line 653 foreach ($relsDrawing->Relationship as $ele) - @MarkBaker [CodePlex #6179](https://phpexcel.codeplex.com/workitem/6179)
1208
+ - Worksheet toArray() screws up DATE - @MarkBaker [CodePlex #6229](https://phpexcel.codeplex.com/workitem/6229)
1209
+ - References to a Richtext cell in a formula - @MarkBaker [CodePlex #6253](https://phpexcel.codeplex.com/workitem/6253)
1210
+ - insertNewColumnBefore Bug - @MarkBaker [CodePlex #6285](https://phpexcel.codeplex.com/workitem/6285)
1211
+ - Error reading Excel2007 file with shapes - @MarkBaker [CodePlex #6319](https://phpexcel.codeplex.com/workitem/6319)
1212
+ - Determine whether date values need conversion from PHP dates to Excel dates before writing to file, based on the data type (float or integer) - @MarkBaker [CodePlex #6302](https://phpexcel.codeplex.com/workitem/6302)
1213
+ - Fixes to DATE function when it is given negative input parameters - @MarkBaker
1214
+ - PHPExcel handles empty cells other than Excel - @MarkBaker [CodePlex #6347](https://phpexcel.codeplex.com/workitem/6347)
1215
+ - PHPExcel handles 0 and "" as being the same - @MarkBaker [CodePlex #6348](https://phpexcel.codeplex.com/workitem/6348)
1216
+ - Problem Using Excel2007 Reader for Spreadsheets containing images - @MarkBaker [CodePlex #6357](https://phpexcel.codeplex.com/workitem/6357)
1217
+ - ShowGridLines ignored when reading/writing Excel 2007 - @MarkBaker [CodePlex #6359](https://phpexcel.codeplex.com/workitem/6359)
1218
+ - Bug With Word Wrap in Excel 2007 Reader - @MarkBaker [CodePlex #6426](https://phpexcel.codeplex.com/workitem/6426)
1219
+
1220
+ ## [1.6.1] - 2008-04-28
1221
+
1222
+ ### General
1223
+
1224
+ - Fix documentation printing - @MarkBaker [CodePlex #5532](https://phpexcel.codeplex.com/workitem/5532)
1225
+ - Memory usage improvements - @MarkBaker [CodePlex #5586](https://phpexcel.codeplex.com/workitem/5586)
1226
+ - Applied patch 990 - @MarkBaker
1227
+
1228
+ ### Features
1229
+
1230
+ - Applied patch 991 - @MarkBaker
1231
+ - Implement PHPExcel_Reader_Excel5 - @BM [CodePlex #2841](https://phpexcel.codeplex.com/workitem/2841)
1232
+ - Implement "toArray" and "fromArray" method - @MarkBaker [CodePlex #5564](https://phpexcel.codeplex.com/workitem/5564)
1233
+ - Read shared formula - @MarkBaker [CodePlex #5665](https://phpexcel.codeplex.com/workitem/5665)
1234
+ - Read image twoCellAnchor - @MarkBaker [CodePlex #5681](https://phpexcel.codeplex.com/workitem/5681)
1235
+ - &G Image as bg for headerfooter - @MarkBaker [CodePlex #4446](https://phpexcel.codeplex.com/workitem/4446)
1236
+ - Implement page layout functionality for Excel5 format - @MarkBaker [CodePlex #5834](https://phpexcel.codeplex.com/workitem/5834)
1237
+
1238
+ ### Bugfixes
1239
+
1240
+ - Feature request: PHPExcel_Writer_PDF - @MarkBaker [CodePlex #6039](https://phpexcel.codeplex.com/workitem/6039)
1241
+ - DefinedNames null check - @MarkBaker [CodePlex #5517](https://phpexcel.codeplex.com/workitem/5517)
1242
+ - Hyperlinks should not always have trailing slash - @MarkBaker [CodePlex #5463](https://phpexcel.codeplex.com/workitem/5463)
1243
+ - Saving Error - Uncaught exception (#REF! named range) - @MarkBaker [CodePlex #5592](https://phpexcel.codeplex.com/workitem/5592)
1244
+ - Error when creating Zip file on Linux System (Not Windows) - @MarkBaker [CodePlex #5634](https://phpexcel.codeplex.com/workitem/5634)
1245
+ - Time incorrecly formated - @MarkBaker [CodePlex #5876](https://phpexcel.codeplex.com/workitem/5876)
1246
+ - Conditional formatting - second rule not applied - @MarkBaker [CodePlex #5914](https://phpexcel.codeplex.com/workitem/5914)
1247
+ - PHPExcel_Reader_Excel2007 cannot load PHPExcel_Shared_File - @MarkBaker [CodePlex #5978](https://phpexcel.codeplex.com/workitem/5978)
1248
+ - Output redirection to web browser - @MarkBaker [CodePlex #6020](https://phpexcel.codeplex.com/workitem/6020)
1249
+
1250
+ ## [1.6.0] - 2008-02-14
1251
+
1252
+ ### Features
1253
+
1254
+ - Use PHPExcel datatypes in formula calculation - @MarkBaker [CodePlex #3156](https://phpexcel.codeplex.com/workitem/3156)
1255
+ - Center on page when printing - @MarkBaker [CodePlex #5019](https://phpexcel.codeplex.com/workitem/5019)
1256
+ - Hyperlink to other spreadsheet - @MarkBaker [CodePlex #5099](https://phpexcel.codeplex.com/workitem/5099)
1257
+ - Set the print area of a worksheet - @MarkBaker [CodePlex #5104](https://phpexcel.codeplex.com/workitem/5104)
1258
+ - Read "definedNames" property of worksheet - @MarkBaker [CodePlex #5118](https://phpexcel.codeplex.com/workitem/5118)
1259
+ - Set default style for all cells - @MarkBaker [CodePlex #5338](https://phpexcel.codeplex.com/workitem/5338)
1260
+ - Named Ranges - @MarkBaker [CodePlex #4216](https://phpexcel.codeplex.com/workitem/4216)
1261
+
1262
+ ### Bugfixes
1263
+
1264
+ - Implement worksheet references (Sheet1!A1) - @MarkBaker [CodePlex #5398](https://phpexcel.codeplex.com/workitem/5398)
1265
+ - Redirect output to a client's web browser - @MarkBaker [CodePlex #4967](https://phpexcel.codeplex.com/workitem/4967)
1266
+ - "File Error: data may have been lost." seen in Excel 2007 and Excel 2003 SP3 when opening XLS file - @MarkBaker [CodePlex #5008](https://phpexcel.codeplex.com/workitem/5008)
1267
+ - Bug in style's getHashCode() - @MarkBaker [CodePlex #5165](https://phpexcel.codeplex.com/workitem/5165)
1268
+ - PHPExcel_Reader not correctly reading numeric values - @MarkBaker [CodePlex #5165](https://phpexcel.codeplex.com/workitem/5165)
1269
+ - Text rotation is read incorrectly - @MarkBaker [CodePlex #5324](https://phpexcel.codeplex.com/workitem/5324)
1270
+ - Enclosure " and data " result a bad data : \" instead of "" - @MarkBaker [CodePlex #5326](https://phpexcel.codeplex.com/workitem/5326)
1271
+ - Formula parser - IF statement returning array instead of scalar - @MarkBaker [CodePlex #5332](https://phpexcel.codeplex.com/workitem/5332)
1272
+ - setFitToWidth(nbpage) & setFitToWidth(nbpage) work partially - @MarkBaker [CodePlex #5351](https://phpexcel.codeplex.com/workitem/5351)
1273
+ - Worksheet::setTitle() causes unwanted renaming - @MarkBaker [CodePlex #5361](https://phpexcel.codeplex.com/workitem/5361)
1274
+ - Hyperlinks not working. Results in broken xlsx file. - @MarkBaker [CodePlex #5407](https://phpexcel.codeplex.com/workitem/5407)
1275
+
1276
+ ## [1.5.5] - 2007-12-24
1277
+
1278
+ ### General
1279
+
1280
+ - Grouping Rows - @MarkBaker [CodePlex #4135](https://phpexcel.codeplex.com/workitem/4135)
1281
+
1282
+ ### Features
1283
+
1284
+ - Semi-nightly builds - @MarkBaker [CodePlex #4427](https://phpexcel.codeplex.com/workitem/4427)
1285
+ - Implement "date" datatype - @MarkBaker [CodePlex #3155](https://phpexcel.codeplex.com/workitem/3155)
1286
+ - Date format not honored in CSV writer - @MarkBaker [CodePlex #4150](https://phpexcel.codeplex.com/workitem/4150)
1287
+ - RichText and sharedStrings - @MarkBaker [CodePlex #4199](https://phpexcel.codeplex.com/workitem/4199)
1288
+ - Implement more Excel calculation functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1289
+ - Addition of DATE, DATEDIF, DATEVALUE, DAY, DAYS360- Implement more Excel calculation functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1290
+ - Addition of AVEDEV, HARMEAN and GEOMEAN
1291
+ - Addition of the BINOMDIST (Non-cumulative only), COUNTBLANK, EXPONDIST, FISHER, FISHERINV, NORMDIST, NORMSDIST, PERMUT, POISSON (Non-cumulative only) and STANDARDIZE Statistical Functions
1292
+ - Addition of the CEILING, COMBIN, EVEN, FACT, FACTDOUBLE, FLOOR, MULTINOMIAL, ODD, ROUNDDOWN, ROUNDUP, SIGN, SQRTPI and SUMSQ Mathematical Functions
1293
+ - Addition of the NORMINV, NORMSINV, CONFIDENCE and SKEW Statistical Functions
1294
+ - Addition of the CRITBINOM, HYPGEOMDIST, KURT, LOGINV, LOGNORMDIST, NEGBINOMDIST and WEIBULL Statistical Functions
1295
+ - Addition of the LARGE, PERCENTILE, QUARTILE, SMALL and TRIMMEAN Statistical Functions
1296
+ - Addition of the BIN2HEX, BIN2OCT, DELTA, ERF, ERFC, GESTEP, HEX2BIN, HEX2DEC, HEX2OCT, OCT2BIN and OCT2HEX Engineering Functions
1297
+ - Addition of the CHIDIST, GAMMADIST and GAMMALN Statistical Functions
1298
+ - Addition of the GCD, LCM, MROUND and SUBTOTAL Mathematical Functions
1299
+ - Addition of the LOWER, PROPER and UPPER Text Functions
1300
+ - Addition of the BETADIST and BETAINV Statistical Functions
1301
+ - Addition of the CHIINV and GAMMAINV Statistical Functions
1302
+ - Addition of the SERIESSUM Mathematical Function
1303
+ - Addition of the CHAR, CODE, FIND, LEN, REPT, SEARCH, T, TRIM Text Functions
1304
+ - Addition of the FALSE and TRUE Boolean Functions
1305
+ - Addition of the TDIST and TINV Statistical Functions
1306
+ - Addition of the EDATE, EOMONTH, YEAR, MONTH, TIME, TIMEVALUE, HOUR, MINUTE, SECOND, WEEKDAY, WEEKNUM, NOW, TODAY and Date/Time Function
1307
+ - Addition of the BESSELI, BESSELJ, BESSELK and BESSELY Engineering Functions
1308
+ - Addition of the SLN and SYD Financial Functions
1309
+ - reworked MODE calculation to handle floating point numbers
1310
+ - Improved error trapping for invalid input values
1311
+ - Fix to SMALL, LARGE, PERCENTILE and TRIMMEAN to eliminate non-numeric values
1312
+ - Added CDF to BINOMDIST and POISSON
1313
+ - Fix to a potential endless loop in CRITBINOM, together with other bugfixes to the algorithm
1314
+ - Fix to SQRTPI so that it will work with a real value parameter rather than just integers
1315
+ - Trap for passing negative values to FACT
1316
+ - Improved accuracy of the NORMDIST cumulative function, and of the ERF and ERFC functions
1317
+ - Replicated Excel data-type and error handling for BIN, DEC, OCT and HEX conversion functions
1318
+ - Replicated Excel data-type and error handling for AND and OR Boolean functions
1319
+ - Bugfix to MROUND
1320
+ - Rework of the DATE, DATEVALUE, DAY, DAYS360 and DATEDIF date/Time functions to use Excel dates rather than straight PHP dates
1321
+ - Rework of the AND, OR Boolean functions to ignore string values
1322
+ - Rework of the BIN2DEC, BIN2HEX, BIN2OCT, DEC2BIN, DEC2HEX, DEC2OCT Engineering functions to handle two's complement
1323
+ - Excel, Gnumeric and OpenOffice Calc compatibility flag for functions
1324
+ - Note, not all functions have yet been written to work with the Gnumeric and OpenOffice Calc compatibility flags
1325
+ - 1900 or 1904 Calendar flag for date functions
1326
+ - Reworked ExcelToPHP date method to handle the Excel 1900 leap year
1327
+ - Note that this will not correctly return values prior to 13-Dec-1901 20:45:52 as this is the minimum value that PHP date serial values can handle. If you need to work with dates prior to this, then an ExcelToPHPObject method has been added which will work correctly with values between Excel's 1900 calendar base date of 1-Jan-1900, and 13-Dec-1901
1328
+ - Addition of ExcelToPHPObject date method to return a PHP DateTime object from an Excel date serial value
1329
+ - PHPToExcel method modified to accept either PHP date serial numbers or PHP DateTime objects
1330
+ - Addition of FormattedPHPToExcel which will accept a date and time broken to into year, month, day, hour, minute, second and return an Excel date serial value- Control characters in Excel 2007 - @MarkBaker [CodePlex #4485](https://phpexcel.codeplex.com/workitem/4485)
1331
+ - BaseDrawing::setWidthAndHeight method request - @MarkBaker [CodePlex #4796](https://phpexcel.codeplex.com/workitem/4796)
1332
+ - Page Setup -> Print Titles -> Sheet -> 'Rows to repeat at top' - @MarkBaker [CodePlex #4798](https://phpexcel.codeplex.com/workitem/4798)
1333
+
1334
+ ### Bugfixes
1335
+
1336
+ - Comment functionality - @MarkBaker [CodePlex #4433](https://phpexcel.codeplex.com/workitem/4433)
1337
+ - Undefined variable in PHPExcel_Writer_Serialized - @MarkBaker [CodePlex #4124](https://phpexcel.codeplex.com/workitem/4124)
1338
+ - Notice: Object of class PHPExcel_RichText could not be converted to int - @MarkBaker [CodePlex #4125](https://phpexcel.codeplex.com/workitem/4125)
1339
+ - Excel5Writer: utf8 string not converted to utf16 - @MarkBaker [CodePlex #4126](https://phpexcel.codeplex.com/workitem/4126)
1340
+ - PHPExcel_RichText and autosize - @MarkBaker [CodePlex #4180](https://phpexcel.codeplex.com/workitem/4180)
1341
+ - Excel5Writer produces broken xls files after change mentioned in work item 4126 - @MarkBaker [CodePlex #4574](https://phpexcel.codeplex.com/workitem/4574)
1342
+ - Small bug in PHPExcel_Reader_Excel2007 function _readStyle - @MarkBaker [CodePlex #4797](https://phpexcel.codeplex.com/workitem/4797)
1343
+
1344
+ ## [1.5.0] - 2007-10-23
1345
+
1346
+ ### Features
1347
+
1348
+ - Refactor PHPExcel Drawing - @MarkBaker [CodePlex #3265](https://phpexcel.codeplex.com/workitem/3265)
1349
+ - Update Shared/OLE.php to latest version from PEAR - @CS [CodePlex #3079](https://phpexcel.codeplex.com/workitem/3079)
1350
+ - Excel2007 vs Excel2003 compatibility pack - @MarkBaker [CodePlex #3217](https://phpexcel.codeplex.com/workitem/3217)
1351
+ - Cell protection (lock/unlock) - @MarkBaker [CodePlex #3234](https://phpexcel.codeplex.com/workitem/3234)
1352
+ - Create clickable links (hyperlinks) - @MarkBaker [CodePlex #3543](https://phpexcel.codeplex.com/workitem/3543)
1353
+ - Additional page setup parameters - @MarkBaker [CodePlex #3241](https://phpexcel.codeplex.com/workitem/3241)
1354
+ - Make temporary file path configurable (Excel5) - @MarkBaker [CodePlex #3300](https://phpexcel.codeplex.com/workitem/3300)
1355
+ - Small addition to applyFromArray for font - @MarkBaker [CodePlex #3306](https://phpexcel.codeplex.com/workitem/3306)
1356
+
1357
+ ### Bugfixes
1358
+
1359
+ - Better feedback when save of file is not possible - @MarkBaker [CodePlex #3373](https://phpexcel.codeplex.com/workitem/3373)
1360
+ - Text Rotation - @MarkBaker [CodePlex #3181](https://phpexcel.codeplex.com/workitem/3181)
1361
+ - Small bug in Page Orientation - @MarkBaker [CodePlex #3237](https://phpexcel.codeplex.com/workitem/3237)
1362
+ - insertNewColumnBeforeByColumn undefined - @MarkBaker [CodePlex #3812](https://phpexcel.codeplex.com/workitem/3812)
1363
+ - Sheet references not working in formula (Excel5 Writer) - @MarkBaker [CodePlex #3893](https://phpexcel.codeplex.com/workitem/3893)
1364
+
1365
+ ## [1.4.5] - 2007-08-23
1366
+
1367
+ ### General
1368
+
1369
+ - Class file endings - @MarkBaker [CodePlex #3003](https://phpexcel.codeplex.com/workitem/3003)
1370
+ - Different calculation engine improvements - @MarkBaker [CodePlex #3081](https://phpexcel.codeplex.com/workitem/3081)
1371
+ - Different improvements in PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #3082](https://phpexcel.codeplex.com/workitem/3082)
1372
+
1373
+ ### Features
1374
+
1375
+ - Set XML indentation in PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #3146](https://phpexcel.codeplex.com/workitem/3146)
1376
+ - Optionally store temporary Excel2007 writer data in file instead of memory - @MarkBaker [CodePlex #3159](https://phpexcel.codeplex.com/workitem/3159)
1377
+ - Implement show/hide gridlines - @MarkBaker [CodePlex #3063](https://phpexcel.codeplex.com/workitem/3063)
1378
+ - Implement option to read only data - @MarkBaker [CodePlex #3064](https://phpexcel.codeplex.com/workitem/3064)
1379
+ - Optionally disable formula precalculation - @MarkBaker [CodePlex #3080](https://phpexcel.codeplex.com/workitem/3080)
1380
+ - Explicitly set cell datatype - @MarkBaker [CodePlex #3154](https://phpexcel.codeplex.com/workitem/3154)
1381
+
1382
+ ### Bugfixes
1383
+
1384
+ - Implement more Excel calculation functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346)
1385
+ - Addition of MINA, MAXA, COUNTA, AVERAGEA, MEDIAN, MODE, DEVSQ, STDEV, STDEVA, STDEVP, STDEVPA, VAR, VARA, VARP and VARPA Excel Functions
1386
+ - Fix to SUM, PRODUCT, QUOTIENT, MIN, MAX, COUNT and AVERAGE functions when cell contains a numeric value in a string datatype, bringing it in line with MS Excel behaviour- File_exists on ZIP fails on some installations - @MarkBaker [CodePlex #2881](https://phpexcel.codeplex.com/workitem/2881)
1387
+ - Argument in textRotation should be -90..90 - @MarkBaker [CodePlex #2879](https://phpexcel.codeplex.com/workitem/2879)
1388
+ - Excel2007 reader/writer not implementing OpenXML/SpreadsheetML styles 100% correct - @MarkBaker [CodePlex #2883](https://phpexcel.codeplex.com/workitem/2883)
1389
+ - Active sheet index not read/saved - @MarkBaker [CodePlex #2513](https://phpexcel.codeplex.com/workitem/2513)
1390
+ - Print and print preview of generated XLSX causes Excel2007 to crash - @MarkBaker [CodePlex #2935](https://phpexcel.codeplex.com/workitem/2935)
1391
+ - Error in Calculations - COUNT() function - @MarkBaker [CodePlex #2952](https://phpexcel.codeplex.com/workitem/2952)
1392
+ - HTML and CSV writer not writing last row - @MarkBaker [CodePlex #3002](https://phpexcel.codeplex.com/workitem/3002)
1393
+ - Memory leak in Excel5 writer - @MarkBaker [CodePlex #3017](https://phpexcel.codeplex.com/workitem/3017)
1394
+ - Printing (PHPExcel_Writer_Excel5) - @MarkBaker [CodePlex #3044](https://phpexcel.codeplex.com/workitem/3044)
1395
+ - Problems reading zip:// - @MarkBaker [CodePlex #3046](https://phpexcel.codeplex.com/workitem/3046)
1396
+ - Error reading conditional formatting - @MarkBaker [CodePlex #3047](https://phpexcel.codeplex.com/workitem/3047)
1397
+ - Bug in Excel5 writer (storePanes) - @MarkBaker [CodePlex #3067](https://phpexcel.codeplex.com/workitem/3067)
1398
+ - Memory leak in PHPExcel_Style_Color - @MarkBaker [CodePlex #3077](https://phpexcel.codeplex.com/workitem/3077)
1399
+
1400
+ ## [1.4.0] - 2007-07-23
1401
+
1402
+ ### General
1403
+
1404
+ - Coding convention / code cleanup - @MarkBaker [CodePlex #2687](https://phpexcel.codeplex.com/workitem/2687)
1405
+ - Use set_include_path in tests - @MarkBaker [CodePlex #2717](https://phpexcel.codeplex.com/workitem/2717)
1406
+
1407
+ ### Features
1408
+
1409
+ - Move PHPExcel_Writer_Excel5 OLE to PHPExcel_Shared_OLE - @MarkBaker [CodePlex #2812](https://phpexcel.codeplex.com/workitem/2812)
1410
+ - Hide/Unhide Column or Row - @MarkBaker [CodePlex #2679](https://phpexcel.codeplex.com/workitem/2679)
1411
+ - Implement multi-cell styling - @MarkBaker [CodePlex #2271](https://phpexcel.codeplex.com/workitem/2271)
1412
+ - Implement CSV file format (reader/writer) - @MarkBaker [CodePlex #2720](https://phpexcel.codeplex.com/workitem/2720)
1413
+
1414
+ ### Bugfixes
1415
+
1416
+ - Implement HTML file format - @MarkBaker [CodePlex #2845](https://phpexcel.codeplex.com/workitem/2845)
1417
+ - Active sheet index not read/saved - @MarkBaker [CodePlex #2513](https://phpexcel.codeplex.com/workitem/2513)
1418
+ - Freeze Panes with PHPExcel_Writer_Excel5 - @MarkBaker [CodePlex #2678](https://phpexcel.codeplex.com/workitem/2678)
1419
+ - OLE.php - @MarkBaker [CodePlex #2680](https://phpexcel.codeplex.com/workitem/2680)
1420
+ - Copy and pasting multiple drop-down list cells breaks reader - @MarkBaker [CodePlex #2736](https://phpexcel.codeplex.com/workitem/2736)
1421
+ - Function setAutoFilterByColumnAndRow takes wrong arguments - @MarkBaker [CodePlex #2775](https://phpexcel.codeplex.com/workitem/2775)
1422
+ - Simplexml_load_file fails on ZipArchive - @MarkBaker [CodePlex #2858](https://phpexcel.codeplex.com/workitem/2858)
1423
+
1424
+ ## [1.3.5] - 2007-06-27
1425
+
1426
+ ### Features
1427
+
1428
+ - Documentation - @MarkBaker [CodePlex #15](https://phpexcel.codeplex.com/workitem/15)
1429
+ - PHPExcel_Writer_Excel5 - @JV
1430
+ - PHPExcel_Reader_Excel2007: Image shadows - @JV
1431
+ - Data validation - @MarkBaker [CodePlex #2385](https://phpexcel.codeplex.com/workitem/2385)
1432
+
1433
+ ### Bugfixes
1434
+
1435
+ - Implement richtext strings - @MarkBaker
1436
+ - Empty relations when adding image to any sheet but the first one - @MarkBaker [CodePlex #2443](https://phpexcel.codeplex.com/workitem/2443)
1437
+ - Excel2007 crashes on print preview - @MarkBaker [CodePlex #2536](https://phpexcel.codeplex.com/workitem/2536)
1438
+
1439
+ ## [1.3.0] - 2007-06-05
1440
+
1441
+ ### General
1442
+
1443
+ - Create PEAR package - @MarkBaker [CodePlex #1942](https://phpexcel.codeplex.com/workitem/1942)
1444
+
1445
+ ### Features
1446
+
1447
+ - Replace *->duplicate() by __clone() - @MarkBaker [CodePlex #2331](https://phpexcel.codeplex.com/workitem/2331)
1448
+ - PHPExcel_Reader_Excel2007: Column auto-size, Protection, Merged cells, Wrap text, Page breaks, Auto filter, Images - @JV
1449
+ - Implement "freezing" panes - @MarkBaker [CodePlex #245](https://phpexcel.codeplex.com/workitem/245)
1450
+ - Cell addressing alternative - @MarkBaker [CodePlex #2273](https://phpexcel.codeplex.com/workitem/2273)
1451
+ - Implement cell word-wrap attribute - @MarkBaker [CodePlex #2270](https://phpexcel.codeplex.com/workitem/2270)
1452
+ - Auto-size column - @MarkBaker [CodePlex #2282](https://phpexcel.codeplex.com/workitem/2282)
1453
+ - Implement formula calculation - @MarkBaker [CodePlex #241](https://phpexcel.codeplex.com/workitem/241)
1454
+
1455
+ ### Bugfixes
1456
+
1457
+ - Insert/remove row/column - @MarkBaker [CodePlex #2375](https://phpexcel.codeplex.com/workitem/2375)
1458
+ - PHPExcel_Worksheet::getCell() should not accept absolute coordinates - @MarkBaker [CodePlex #1931](https://phpexcel.codeplex.com/workitem/1931)
1459
+ - Cell reference without row number - @MarkBaker [CodePlex #2272](https://phpexcel.codeplex.com/workitem/2272)
1460
+ - Styles with same coordinate but different worksheet - @MarkBaker [CodePlex #2276](https://phpexcel.codeplex.com/workitem/2276)
1461
+ - PHPExcel_Worksheet->getCellCollection() usort error - @MarkBaker [CodePlex #2290](https://phpexcel.codeplex.com/workitem/2290)
1462
+ - Bug in PHPExcel_Cell::stringFromColumnIndex - @SS [CodePlex #2353](https://phpexcel.codeplex.com/workitem/2353)
1463
+ - Reader: numFmts can be missing, use cellStyleXfs instead of cellXfs in styles - @JV [CodePlex #2353](https://phpexcel.codeplex.com/workitem/2353)
1464
+
1465
+ ## [1.2.0] - 2007-04-26
1466
+
1467
+ ### General
1468
+
1469
+ - Stringtable attribute "count" not necessary, provides wrong info to Excel sometimes... - @MarkBaker
1470
+ - Updated tests to address more document properties - @MarkBaker
1471
+ - Some refactoring in PHPExcel_Writer_Excel2007_Workbook - @MarkBaker
1472
+ - New package: PHPExcel_Shared - @MarkBaker
1473
+ - Password hashing algorithm implemented in PHPExcel_Shared_PasswordHasher - @MarkBaker
1474
+ - Moved pixel conversion functions to PHPExcel_Shared_Drawing - @MarkBaker
1475
+ - Switch over to LGPL license - @MarkBaker [CodePlex #244](https://phpexcel.codeplex.com/workitem/244)
1476
+
1477
+ ### Features
1478
+
1479
+ - Include PHPExcel version in file headers - @MarkBaker [CodePlex #5](https://phpexcel.codeplex.com/workitem/5)
1480
+ - Autofilter - @MarkBaker [CodePlex #6](https://phpexcel.codeplex.com/workitem/6)
1481
+ - Extra document property: keywords - @MarkBaker [CodePlex #7](https://phpexcel.codeplex.com/workitem/7)
1482
+ - Extra document property: category - @MarkBaker [CodePlex #8](https://phpexcel.codeplex.com/workitem/8)
1483
+ - Document security - @MarkBaker [CodePlex #9](https://phpexcel.codeplex.com/workitem/9)
1484
+ - PHPExcel_Writer_Serialized and PHPExcel_Reader_Serialized - @MarkBaker [CodePlex #10](https://phpexcel.codeplex.com/workitem/10)
1485
+ - Alternative syntax: Addressing a cell - @MarkBaker [CodePlex #11](https://phpexcel.codeplex.com/workitem/11)
1486
+ - Merge cells - @MarkBaker [CodePlex #12](https://phpexcel.codeplex.com/workitem/12)
1487
+
1488
+ ### Bugfixes
1489
+
1490
+ - Protect ranges of cells with a password - @MarkBaker [CodePlex #13](https://phpexcel.codeplex.com/workitem/13)
1491
+ - (style/fill/patternFill/fgColor or bgColor can be empty) - @JV [CodePlex #14](https://phpexcel.codeplex.com/workitem/14)
1492
+
1493
+ ## [1.1.1] - 2007-03-26
1494
+
1495
+ ### General
1496
+
1497
+ - Syntax error in "Classes/PHPExcel/Writer/Excel2007.php" on line 243 - @MarkBaker [CodePlex #1250](https://phpexcel.codeplex.com/workitem/1250)
1498
+ - Reader should check if file exists and throws an exception when it doesn't - @MarkBaker [CodePlex #1282](https://phpexcel.codeplex.com/workitem/1282)
1499
+
1500
+ ## [1.1.0] - 2007-03-22
1501
+
1502
+ ### Bugfixes
1503
+
1504
+ - Style information lost after passing trough Excel2007_Reader - @MarkBaker [CodePlex #836](https://phpexcel.codeplex.com/workitem/836)
1505
+
1506
+ ### General
1507
+
1508
+ - Number of columns > AZ fails fixed in PHPExcel_Cell::columnIndexFromString - @MarkBaker [CodePlex #913](https://phpexcel.codeplex.com/workitem/913)
1509
+
1510
+ ### Features
1511
+
1512
+ - Added a brief file with installation instructions - @MarkBaker
1513
+ - Page breaks (horizontal and vertical) - @MarkBaker
1514
+ - Image shadows - @MarkBaker
1515
+
1516
+ ## [1.0.0] - 2007-02-22
1517
+
1518
+ ### Bugfixes
1519
+
1520
+ - PHPExcel->removeSheetByIndex now re-orders sheets after deletion, so no array indexes are lost - @JV
1521
+ - PHPExcel_Writer_Excel2007_Worksheet::_writeCols() used direct assignment to $pSheet->getColumnDimension('A')->Width instead of $pSheet->getColumnDimension('A')->setWidth() - @JV
1522
+ - DocumentProperties used $this->LastModifiedBy instead of $this->_lastModifiedBy. - @JV
1523
+
1524
+ ### General
1525
+
1526
+ - Only first = should be removed when writing formula in PHPExcel_Writer_Excel2007_Worksheet. - @JV
1527
+ - Consistency of method names to camelCase - @JV
1528
+ - Updated tests to match consistency changes - @JV
1529
+ - Detection of mime-types now with image_type_to_mime_type() - @JV
1530
+ - Constants now hold string value used in Excel 2007 - @JV
1531
+
1532
+ ### Features
1533
+
1534
+ - Fixed folder name case (WorkSheet -> Worksheet) - @MarkBaker
1535
+ - PHPExcel classes (not the Writer classes) can be duplicated, using a duplicate() method. - @MarkBaker
1536
+ - Cell styles can now be duplicated to a range of cells using PHPExcel_Worksheet->duplicateStyle() - @MarkBaker
1537
+ - Conditional formatting - @MarkBaker
1538
+ - Reader for Excel 2007 (not supporting full specification yet!) - @JV
1539
+
1540
+ ## [1.0.0 RC] - 2007-01-31
1541
+
1542
+ - Project name has been changed to PHPExcel
1543
+ - Project homepage is now http://www.codeplex.com/PHPExcel
1544
+ - Started versioning at number: PHPExcel 1.0.0 RC
1545
+
1546
+ ## 2007-01-22
1547
+
1548
+ - Fixed some performance issues on large-scale worksheets (mainly loops vs. indexed arrays)
1549
+ - Performance on creating StringTable has been increased
1550
+ - Performance on writing Excel2007 worksheet has been increased
1551
+
1552
+ ## 2007-01-18
1553
+
1554
+ - Images can now be rotated
1555
+ - Fixed bug: When drawings have full path specified, no mime type can be deducted
1556
+ - Fixed bug: Only one drawing can be added to a worksheet
1557
+
1558
+ ## 2007-01-12
1559
+
1560
+ - Refactoring of some classes to use ArrayObject instead of array()
1561
+ - Cell style now has support for number format (i.e. #,##0)
1562
+ - Implemented embedding images
1563
+
1564
+ ## 2007-01-02
1565
+
1566
+ - Cell style now has support for fills, including gradient fills
1567
+ - Cell style now has support for fonts
1568
+ - Cell style now has support for border colors
1569
+ - Cell style now has support for font colors
1570
+ - Cell style now has support for alignment
1571
+
1572
+ ## 2006-12-21
1573
+
1574
+ - Support for cell style borders
1575
+ - Support for cell styles
1576
+ - Refactoring of Excel2007 Writer into multiple classes in package SpreadSheet_Writer_Excel2007
1577
+ - Refactoring of all classes, changed public members to public properties using getter/setter
1578
+ - Worksheet names are now unique. On duplicate worksheet names, a number is appended.
1579
+ - Worksheet now has parent SpreadSheet object
1580
+ - Worksheet now has support for page header and footer
1581
+ - Worksheet now has support for page margins
1582
+ - Worksheet now has support for page setup (only Paper size and Orientation)
1583
+ - Worksheet properties now accessible by using getProperties()
1584
+ - Worksheet now has support for row and column dimensions (height / width)
1585
+ - Exceptions thrown have a more clear description
1586
+
1587
+ ## Initial version
1588
+
1589
+ - Create a Spreadsheet object
1590
+ - Add one or more Worksheet objects
1591
+ - Add cells to Worksheet objects
1592
+ - Export Spreadsheet object to Excel 2007 OpenXML format
1593
+ - Each cell supports the following data formats: string, number, formula, boolean.
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/CHANGELOG.md CHANGED
@@ -1,124 +1,124 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](http://keepachangelog.com/)
6
- and this project adheres to [Semantic Versioning](http://semver.org/).
7
-
8
- ## [1.1.0] - 2018-01-28
9
-
10
- ### Added
11
-
12
- - Support for PHP 7.2
13
- - Support cell comments in HTML writer and reader - [#308](https://github.com/PHPOffice/PhpSpreadsheet/issues/308)
14
- - Option to stop at a conditional styling, if it matches (only XLSX format) - [#292](https://github.com/PHPOffice/PhpSpreadsheet/pull/292)
15
- - Support for line width for data series when rendering Xlsx - [#329](https://github.com/PHPOffice/PhpSpreadsheet/pull/329)
16
-
17
- ### Fixed
18
-
19
- - Better auto-detection of CSV separators - [#305](https://github.com/PHPOffice/PhpSpreadsheet/issues/305)
20
- - Support for shape style ending with `;` - [#304](https://github.com/PHPOffice/PhpSpreadsheet/issues/304)
21
- - Freeze Panes takes wrong coordinates for XLSX - [#322](https://github.com/PHPOffice/PhpSpreadsheet/issues/322)
22
- - `COLUMNS` and `ROWS` functions crashed in some cases - [#336](https://github.com/PHPOffice/PhpSpreadsheet/issues/336)
23
- - Support XML file without styles - [#331](https://github.com/PHPOffice/PhpSpreadsheet/pull/331)
24
- - Cell coordinates which are already a range cause an exception [#319](https://github.com/PHPOffice/PhpSpreadsheet/issues/319)
25
-
26
- ## [1.0.0] - 2017-12-25
27
-
28
- ### Added
29
-
30
- - Support to write merged cells in ODS format - [#287](https://github.com/PHPOffice/PhpSpreadsheet/issues/287)
31
- - Able to set the `topLeftCell` in freeze panes - [#261](https://github.com/PHPOffice/PhpSpreadsheet/pull/261)
32
- - Support `DateTimeImmutable` as cell value
33
- - Support migration of prefixed classes
34
-
35
- ### Fixed
36
-
37
- - Can read very small HTML files - [#194](https://github.com/PHPOffice/PhpSpreadsheet/issues/194)
38
- - Written DataValidation was corrupted - [#290](https://github.com/PHPOffice/PhpSpreadsheet/issues/290)
39
- - Date format compatible with both LibreOffice and Excel - [#298](https://github.com/PHPOffice/PhpSpreadsheet/issues/298)
40
-
41
- ### BREAKING CHANGE
42
-
43
- - Constant `TYPE_DOUGHTNUTCHART` is now `TYPE_DOUGHNUTCHART`.
44
-
45
- ## [1.0.0-beta2] - 2017-11-26
46
-
47
- ### Added
48
-
49
- - Support for chart fill color - @CrazyBite [#158](https://github.com/PHPOffice/PhpSpreadsheet/pull/158)
50
- - Support for read Hyperlink for xml - @GreatHumorist [#223](https://github.com/PHPOffice/PhpSpreadsheet/pull/223)
51
- - Support for cell value validation according to data validation rules - @SailorMax [#257](https://github.com/PHPOffice/PhpSpreadsheet/pull/257)
52
- - Support for custom implementation, or configuration, of PDF libraries - @SailorMax [#266](https://github.com/PHPOffice/PhpSpreadsheet/pull/266)
53
-
54
- ### Changed
55
-
56
- - Merge data-validations to reduce written worksheet size - @billblume [#131](https://github.com/PHPOffice/PhpSpreadSheet/issues/131)
57
- - Throws exception if a XML file is invalid - @GreatHumorist [#222](https://github.com/PHPOffice/PhpSpreadsheet/pull/222)
58
- - Upgrade to mPDF 7.0+ - [#144](https://github.com/PHPOffice/PhpSpreadsheet/issues/144)
59
-
60
- ### Fixed
61
-
62
- - Control characters in cell values are automatically escaped - [#212](https://github.com/PHPOffice/PhpSpreadsheet/issues/212)
63
- - Prevent color changing when copy/pasting xls files written by PhpSpreadsheet to another file - @al-lala [#218](https://github.com/PHPOffice/PhpSpreadsheet/issues/218)
64
- - Add cell reference automatic when there is no cell reference('r' attribute) in Xlsx file. - @GreatHumorist [#225](https://github.com/PHPOffice/PhpSpreadsheet/pull/225) Refer to [issue#201](https://github.com/PHPOffice/PhpSpreadsheet/issues/201)
65
- - `Reader\Xlsx::getFromZipArchive()` function return false if the zip entry could not be located. - @anton-harvey [#268](https://github.com/PHPOffice/PhpSpreadsheet/pull/268)
66
-
67
- ### BREAKING CHANGE
68
-
69
- - Extracted coordinate method to dedicate class [migration guide](./docs/topics/migration-from-PHPExcel.md).
70
- - Column indexes are based on 1, see the [migration guide](./docs/topics/migration-from-PHPExcel.md).
71
- - Standardization of array keys used for style, see the [migration guide](./docs/topics/migration-from-PHPExcel.md).
72
- - Easier usage of PDF writers, and other custom readers and writers, see the [migration guide](./docs/topics/migration-from-PHPExcel.md).
73
- - Easier usage of chart renderers, see the [migration guide](./docs/topics/migration-from-PHPExcel.md).
74
- - Rename a few more classes to keep them in their related namespaces:
75
- - `CalcEngine` => `Calculation\Engine`
76
- - `PhpSpreadsheet\Calculation` => `PhpSpreadsheet\Calculation\Calculation`
77
- - `PhpSpreadsheet\Cell` => `PhpSpreadsheet\Cell\Cell`
78
- - `PhpSpreadsheet\Chart` => `PhpSpreadsheet\Chart\Chart`
79
- - `PhpSpreadsheet\RichText` => `PhpSpreadsheet\RichText\RichText`
80
- - `PhpSpreadsheet\Style` => `PhpSpreadsheet\Style\Style`
81
- - `PhpSpreadsheet\Worksheet` => `PhpSpreadsheet\Worksheet\Worksheet`
82
-
83
- ## [1.0.0-beta] - 2017-08-17
84
-
85
- ### Added
86
-
87
- - Initial implementation of SUMIFS() function
88
- - Additional codepages
89
- - MemoryDrawing not working in HTML writer [#808](https://github.com/PHPOffice/PHPExcel/issues/808)
90
- - CSV Reader can auto-detect the separator used in file [#141](https://github.com/PHPOffice/PhpSpreadsheet/pull/141)
91
- - HTML Reader supports some basic inline styles [#180](https://github.com/PHPOffice/PhpSpreadsheet/pull/180)
92
-
93
- ### Changed
94
-
95
- - Start following [SemVer](http://semver.org) properly.
96
-
97
- ### Fixed
98
-
99
- - Fix to getCell() method when cell reference includes a worksheet reference - @MarkBaker
100
- - Ignore inlineStr type if formula element exists - @ncrypthic [#570](https://github.com/PHPOffice/PHPExcel/issues/570)
101
- - Excel 2007 Reader freezes because of conditional formatting - @rentalhost [#575](https://github.com/PHPOffice/PHPExcel/issues/575)
102
- - Readers will now parse files containing worksheet titles over 31 characters [#176](https://github.com/PHPOffice/PhpSpreadsheet/pull/176)
103
-
104
- ### General
105
-
106
- - Whitespace after toRichTextObject() - @MarkBaker [#554](https://github.com/PHPOffice/PHPExcel/issues/554)
107
- - Optimize vlookup() sort - @umpirsky [#548](https://github.com/PHPOffice/PHPExcel/issues/548)
108
- - c:max and c:min elements shall NOT be inside c:orientation elements - @vitalyrepin [#869](https://github.com/PHPOffice/PHPExcel/pull/869)
109
- - Implement actual timezone adjustment into PHPExcel_Shared_Date::PHPToExcel - @sim642 [#489](https://github.com/PHPOffice/PHPExcel/pull/489)
110
-
111
- ### BREAKING CHANGE
112
-
113
- - Introduction of namespaces for all classes, eg: `PHPExcel_Calculation_Functions` becomes `PhpOffice\PhpSpreadsheet\Calculation\Functions`
114
- - Some classes were renamed for clarity and/or consistency:
115
-
116
- For a comprehensive list of all class changes, and a semi-automated migration path, read the [migration guide](./docs/topics/migration-from-PHPExcel.md).
117
-
118
- - Dropped `PHPExcel_Calculation_Functions::VERSION()`. Composer or git should be used to know the version.
119
- - Dropped `PHPExcel_Settings::setPdfRenderer()` and `PHPExcel_Settings::setPdfRenderer()`. Composer should be used to autoload PDF libs.
120
- - Dropped support for HHVM
121
-
122
- ## Previous versions of PHPExcel
123
-
124
- The changelog for the project when it was called PHPExcel is [still available](./CHANGELOG.PHPExcel.md).
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](http://keepachangelog.com/)
6
+ and this project adheres to [Semantic Versioning](http://semver.org/).
7
+
8
+ ## [1.1.0] - 2018-01-28
9
+
10
+ ### Added
11
+
12
+ - Support for PHP 7.2
13
+ - Support cell comments in HTML writer and reader - [#308](https://github.com/PHPOffice/PhpSpreadsheet/issues/308)
14
+ - Option to stop at a conditional styling, if it matches (only XLSX format) - [#292](https://github.com/PHPOffice/PhpSpreadsheet/pull/292)
15
+ - Support for line width for data series when rendering Xlsx - [#329](https://github.com/PHPOffice/PhpSpreadsheet/pull/329)
16
+
17
+ ### Fixed
18
+
19
+ - Better auto-detection of CSV separators - [#305](https://github.com/PHPOffice/PhpSpreadsheet/issues/305)
20
+ - Support for shape style ending with `;` - [#304](https://github.com/PHPOffice/PhpSpreadsheet/issues/304)
21
+ - Freeze Panes takes wrong coordinates for XLSX - [#322](https://github.com/PHPOffice/PhpSpreadsheet/issues/322)
22
+ - `COLUMNS` and `ROWS` functions crashed in some cases - [#336](https://github.com/PHPOffice/PhpSpreadsheet/issues/336)
23
+ - Support XML file without styles - [#331](https://github.com/PHPOffice/PhpSpreadsheet/pull/331)
24
+ - Cell coordinates which are already a range cause an exception [#319](https://github.com/PHPOffice/PhpSpreadsheet/issues/319)
25
+
26
+ ## [1.0.0] - 2017-12-25
27
+
28
+ ### Added
29
+
30
+ - Support to write merged cells in ODS format - [#287](https://github.com/PHPOffice/PhpSpreadsheet/issues/287)
31
+ - Able to set the `topLeftCell` in freeze panes - [#261](https://github.com/PHPOffice/PhpSpreadsheet/pull/261)
32
+ - Support `DateTimeImmutable` as cell value
33
+ - Support migration of prefixed classes
34
+
35
+ ### Fixed
36
+
37
+ - Can read very small HTML files - [#194](https://github.com/PHPOffice/PhpSpreadsheet/issues/194)
38
+ - Written DataValidation was corrupted - [#290](https://github.com/PHPOffice/PhpSpreadsheet/issues/290)
39
+ - Date format compatible with both LibreOffice and Excel - [#298](https://github.com/PHPOffice/PhpSpreadsheet/issues/298)
40
+
41
+ ### BREAKING CHANGE
42
+
43
+ - Constant `TYPE_DOUGHTNUTCHART` is now `TYPE_DOUGHNUTCHART`.
44
+
45
+ ## [1.0.0-beta2] - 2017-11-26
46
+
47
+ ### Added
48
+
49
+ - Support for chart fill color - @CrazyBite [#158](https://github.com/PHPOffice/PhpSpreadsheet/pull/158)
50
+ - Support for read Hyperlink for xml - @GreatHumorist [#223](https://github.com/PHPOffice/PhpSpreadsheet/pull/223)
51
+ - Support for cell value validation according to data validation rules - @SailorMax [#257](https://github.com/PHPOffice/PhpSpreadsheet/pull/257)
52
+ - Support for custom implementation, or configuration, of PDF libraries - @SailorMax [#266](https://github.com/PHPOffice/PhpSpreadsheet/pull/266)
53
+
54
+ ### Changed
55
+
56
+ - Merge data-validations to reduce written worksheet size - @billblume [#131](https://github.com/PHPOffice/PhpSpreadSheet/issues/131)
57
+ - Throws exception if a XML file is invalid - @GreatHumorist [#222](https://github.com/PHPOffice/PhpSpreadsheet/pull/222)
58
+ - Upgrade to mPDF 7.0+ - [#144](https://github.com/PHPOffice/PhpSpreadsheet/issues/144)
59
+
60
+ ### Fixed
61
+
62
+ - Control characters in cell values are automatically escaped - [#212](https://github.com/PHPOffice/PhpSpreadsheet/issues/212)
63
+ - Prevent color changing when copy/pasting xls files written by PhpSpreadsheet to another file - @al-lala [#218](https://github.com/PHPOffice/PhpSpreadsheet/issues/218)
64
+ - Add cell reference automatic when there is no cell reference('r' attribute) in Xlsx file. - @GreatHumorist [#225](https://github.com/PHPOffice/PhpSpreadsheet/pull/225) Refer to [issue#201](https://github.com/PHPOffice/PhpSpreadsheet/issues/201)
65
+ - `Reader\Xlsx::getFromZipArchive()` function return false if the zip entry could not be located. - @anton-harvey [#268](https://github.com/PHPOffice/PhpSpreadsheet/pull/268)
66
+
67
+ ### BREAKING CHANGE
68
+
69
+ - Extracted coordinate method to dedicate class [migration guide](./docs/topics/migration-from-PHPExcel.md).
70
+ - Column indexes are based on 1, see the [migration guide](./docs/topics/migration-from-PHPExcel.md).
71
+ - Standardization of array keys used for style, see the [migration guide](./docs/topics/migration-from-PHPExcel.md).
72
+ - Easier usage of PDF writers, and other custom readers and writers, see the [migration guide](./docs/topics/migration-from-PHPExcel.md).
73
+ - Easier usage of chart renderers, see the [migration guide](./docs/topics/migration-from-PHPExcel.md).
74
+ - Rename a few more classes to keep them in their related namespaces:
75
+ - `CalcEngine` => `Calculation\Engine`
76
+ - `PhpSpreadsheet\Calculation` => `PhpSpreadsheet\Calculation\Calculation`
77
+ - `PhpSpreadsheet\Cell` => `PhpSpreadsheet\Cell\Cell`
78
+ - `PhpSpreadsheet\Chart` => `PhpSpreadsheet\Chart\Chart`
79
+ - `PhpSpreadsheet\RichText` => `PhpSpreadsheet\RichText\RichText`
80
+ - `PhpSpreadsheet\Style` => `PhpSpreadsheet\Style\Style`
81
+ - `PhpSpreadsheet\Worksheet` => `PhpSpreadsheet\Worksheet\Worksheet`
82
+
83
+ ## [1.0.0-beta] - 2017-08-17
84
+
85
+ ### Added
86
+
87
+ - Initial implementation of SUMIFS() function
88
+ - Additional codepages
89
+ - MemoryDrawing not working in HTML writer [#808](https://github.com/PHPOffice/PHPExcel/issues/808)
90
+ - CSV Reader can auto-detect the separator used in file [#141](https://github.com/PHPOffice/PhpSpreadsheet/pull/141)
91
+ - HTML Reader supports some basic inline styles [#180](https://github.com/PHPOffice/PhpSpreadsheet/pull/180)
92
+
93
+ ### Changed
94
+
95
+ - Start following [SemVer](http://semver.org) properly.
96
+
97
+ ### Fixed
98
+
99
+ - Fix to getCell() method when cell reference includes a worksheet reference - @MarkBaker
100
+ - Ignore inlineStr type if formula element exists - @ncrypthic [#570](https://github.com/PHPOffice/PHPExcel/issues/570)
101
+ - Excel 2007 Reader freezes because of conditional formatting - @rentalhost [#575](https://github.com/PHPOffice/PHPExcel/issues/575)
102
+ - Readers will now parse files containing worksheet titles over 31 characters [#176](https://github.com/PHPOffice/PhpSpreadsheet/pull/176)
103
+
104
+ ### General
105
+
106
+ - Whitespace after toRichTextObject() - @MarkBaker [#554](https://github.com/PHPOffice/PHPExcel/issues/554)
107
+ - Optimize vlookup() sort - @umpirsky [#548](https://github.com/PHPOffice/PHPExcel/issues/548)
108
+ - c:max and c:min elements shall NOT be inside c:orientation elements - @vitalyrepin [#869](https://github.com/PHPOffice/PHPExcel/pull/869)
109
+ - Implement actual timezone adjustment into PHPExcel_Shared_Date::PHPToExcel - @sim642 [#489](https://github.com/PHPOffice/PHPExcel/pull/489)
110
+
111
+ ### BREAKING CHANGE
112
+
113
+ - Introduction of namespaces for all classes, eg: `PHPExcel_Calculation_Functions` becomes `PhpOffice\PhpSpreadsheet\Calculation\Functions`
114
+ - Some classes were renamed for clarity and/or consistency:
115
+
116
+ For a comprehensive list of all class changes, and a semi-automated migration path, read the [migration guide](./docs/topics/migration-from-PHPExcel.md).
117
+
118
+ - Dropped `PHPExcel_Calculation_Functions::VERSION()`. Composer or git should be used to know the version.
119
+ - Dropped `PHPExcel_Settings::setPdfRenderer()` and `PHPExcel_Settings::setPdfRenderer()`. Composer should be used to autoload PDF libs.
120
+ - Dropped support for HHVM
121
+
122
+ ## Previous versions of PHPExcel
123
+
124
+ The changelog for the project when it was called PHPExcel is [still available](./CHANGELOG.PHPExcel.md).
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/CONTRIBUTING.md CHANGED
@@ -1,11 +1,11 @@
1
- # Want to contribute?
2
-
3
- If you would like to contribute, here are some notes and guidelines:
4
-
5
- - All new development happens on feature/fix branches referenced with the GitHub issue number, and are then merged to the develop branch; so the develop branch is always the most up-to-date, working code
6
- - The master branch only contains tagged releases
7
- - If you are going to be submitting a pull request, please fork from develop, and submit your pull request back as a fix/feature branch referencing the GitHub issue number
8
- - Code style might be automatically fixed by `composer fix`
9
- - All code changes must be validated by `composer check`
10
- - [Helpful article about forking](https://help.github.com/articles/fork-a-repo/ "Forking a GitHub repository")
11
- - [Helpful article about pull requests](https://help.github.com/articles/using-pull-requests/ "Pull Requests")
1
+ # Want to contribute?
2
+
3
+ If you would like to contribute, here are some notes and guidelines:
4
+
5
+ - All new development happens on feature/fix branches referenced with the GitHub issue number, and are then merged to the develop branch; so the develop branch is always the most up-to-date, working code
6
+ - The master branch only contains tagged releases
7
+ - If you are going to be submitting a pull request, please fork from develop, and submit your pull request back as a fix/feature branch referencing the GitHub issue number
8
+ - Code style might be automatically fixed by `composer fix`
9
+ - All code changes must be validated by `composer check`
10
+ - [Helpful article about forking](https://help.github.com/articles/fork-a-repo/ "Forking a GitHub repository")
11
+ - [Helpful article about pull requests](https://help.github.com/articles/using-pull-requests/ "Pull Requests")
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/LICENSE CHANGED
@@ -1,345 +1,345 @@
1
- GNU LESSER GENERAL PUBLIC LICENSE
2
-
3
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
4
-
5
- 0. This License Agreement applies to any software library or other
6
- program which contains a notice placed by the copyright holder or
7
- other authorized party saying it may be distributed under the terms of
8
- this Lesser General Public License (also called "this License").
9
- Each licensee is addressed as "you".
10
-
11
- A "library" means a collection of software functions and/or data
12
- prepared so as to be conveniently linked with application programs
13
- (which use some of those functions and data) to form executables.
14
-
15
- The "Library", below, refers to any such software library or work
16
- which has been distributed under these terms. A "work based on the
17
- Library" means either the Library or any derivative work under
18
- copyright law: that is to say, a work containing the Library or a
19
- portion of it, either verbatim or with modifications and/or translated
20
- straightforwardly into another language. (Hereinafter, translation is
21
- included without limitation in the term "modification".)
22
-
23
- "Source code" for a work means the preferred form of the work for
24
- making modifications to it. For a library, complete source code means
25
- all the source code for all modules it contains, plus any associated
26
- interface definition files, plus the scripts used to control compilation
27
- and installation of the library.
28
-
29
- Activities other than copying, distribution and modification are not
30
- covered by this License; they are outside its scope. The act of
31
- running a program using the Library is not restricted, and output from
32
- such a program is covered only if its contents constitute a work based
33
- on the Library (independent of the use of the Library in a tool for
34
- writing it). Whether that is true depends on what the Library does
35
- and what the program that uses the Library does.
36
-
37
- 1. You may copy and distribute verbatim copies of the Library's
38
- complete source code as you receive it, in any medium, provided that
39
- you conspicuously and appropriately publish on each copy an
40
- appropriate copyright notice and disclaimer of warranty; keep intact
41
- all the notices that refer to this License and to the absence of any
42
- warranty; and distribute a copy of this License along with the
43
- Library.
44
-
45
- You may charge a fee for the physical act of transferring a copy,
46
- and you may at your option offer warranty protection in exchange for a
47
- fee.
48
-
49
- 2. You may modify your copy or copies of the Library or any portion
50
- of it, thus forming a work based on the Library, and copy and
51
- distribute such modifications or work under the terms of Section 1
52
- above, provided that you also meet all of these conditions:
53
-
54
- a) The modified work must itself be a software library.
55
-
56
- b) You must cause the files modified to carry prominent notices
57
- stating that you changed the files and the date of any change.
58
-
59
- c) You must cause the whole of the work to be licensed at no
60
- charge to all third parties under the terms of this License.
61
-
62
- d) If a facility in the modified Library refers to a function or a
63
- table of data to be supplied by an application program that uses
64
- the facility, other than as an argument passed when the facility
65
- is invoked, then you must make a good faith effort to ensure that,
66
- in the event an application does not supply such function or
67
- table, the facility still operates, and performs whatever part of
68
- its purpose remains meaningful.
69
-
70
- (For example, a function in a library to compute square roots has
71
- a purpose that is entirely well-defined independent of the
72
- application. Therefore, Subsection 2d requires that any
73
- application-supplied function or table used by this function must
74
- be optional: if the application does not supply it, the square
75
- root function must still compute square roots.)
76
-
77
- These requirements apply to the modified work as a whole. If
78
- identifiable sections of that work are not derived from the Library,
79
- and can be reasonably considered independent and separate works in
80
- themselves, then this License, and its terms, do not apply to those
81
- sections when you distribute them as separate works. But when you
82
- distribute the same sections as part of a whole which is a work based
83
- on the Library, the distribution of the whole must be on the terms of
84
- this License, whose permissions for other licensees extend to the
85
- entire whole, and thus to each and every part regardless of who wrote
86
- it.
87
-
88
- Thus, it is not the intent of this section to claim rights or contest
89
- your rights to work written entirely by you; rather, the intent is to
90
- exercise the right to control the distribution of derivative or
91
- collective works based on the Library.
92
-
93
- In addition, mere aggregation of another work not based on the Library
94
- with the Library (or with a work based on the Library) on a volume of
95
- a storage or distribution medium does not bring the other work under
96
- the scope of this License.
97
-
98
- 3. You may opt to apply the terms of the ordinary GNU General Public
99
- License instead of this License to a given copy of the Library. To do
100
- this, you must alter all the notices that refer to this License, so
101
- that they refer to the ordinary GNU General Public License, version 2,
102
- instead of to this License. (If a newer version than version 2 of the
103
- ordinary GNU General Public License has appeared, then you can specify
104
- that version instead if you wish.) Do not make any other change in
105
- these notices.
106
-
107
- Once this change is made in a given copy, it is irreversible for
108
- that copy, so the ordinary GNU General Public License applies to all
109
- subsequent copies and derivative works made from that copy.
110
-
111
- This option is useful when you wish to copy part of the code of
112
- the Library into a program that is not a library.
113
-
114
- 4. You may copy and distribute the Library (or a portion or
115
- derivative of it, under Section 2) in object code or executable form
116
- under the terms of Sections 1 and 2 above provided that you accompany
117
- it with the complete corresponding machine-readable source code, which
118
- must be distributed under the terms of Sections 1 and 2 above on a
119
- medium customarily used for software interchange.
120
-
121
- If distribution of object code is made by offering access to copy
122
- from a designated place, then offering equivalent access to copy the
123
- source code from the same place satisfies the requirement to
124
- distribute the source code, even though third parties are not
125
- compelled to copy the source along with the object code.
126
-
127
- 5. A program that contains no derivative of any portion of the
128
- Library, but is designed to work with the Library by being compiled or
129
- linked with it, is called a "work that uses the Library". Such a
130
- work, in isolation, is not a derivative work of the Library, and
131
- therefore falls outside the scope of this License.
132
-
133
- However, linking a "work that uses the Library" with the Library
134
- creates an executable that is a derivative of the Library (because it
135
- contains portions of the Library), rather than a "work that uses the
136
- library". The executable is therefore covered by this License.
137
- Section 6 states terms for distribution of such executables.
138
-
139
- When a "work that uses the Library" uses material from a header file
140
- that is part of the Library, the object code for the work may be a
141
- derivative work of the Library even though the source code is not.
142
- Whether this is true is especially significant if the work can be
143
- linked without the Library, or if the work is itself a library. The
144
- threshold for this to be true is not precisely defined by law.
145
-
146
- If such an object file uses only numerical parameters, data
147
- structure layouts and accessors, and small macros and small inline
148
- functions (ten lines or less in length), then the use of the object
149
- file is unrestricted, regardless of whether it is legally a derivative
150
- work. (Executables containing this object code plus portions of the
151
- Library will still fall under Section 6.)
152
-
153
- Otherwise, if the work is a derivative of the Library, you may
154
- distribute the object code for the work under the terms of Section 6.
155
- Any executables containing that work also fall under Section 6,
156
- whether or not they are linked directly with the Library itself.
157
-
158
- 6. As an exception to the Sections above, you may also combine or
159
- link a "work that uses the Library" with the Library to produce a
160
- work containing portions of the Library, and distribute that work
161
- under terms of your choice, provided that the terms permit
162
- modification of the work for the customer's own use and reverse
163
- engineering for debugging such modifications.
164
-
165
- You must give prominent notice with each copy of the work that the
166
- Library is used in it and that the Library and its use are covered by
167
- this License. You must supply a copy of this License. If the work
168
- during execution displays copyright notices, you must include the
169
- copyright notice for the Library among them, as well as a reference
170
- directing the user to the copy of this License. Also, you must do one
171
- of these things:
172
-
173
- a) Accompany the work with the complete corresponding
174
- machine-readable source code for the Library including whatever
175
- changes were used in the work (which must be distributed under
176
- Sections 1 and 2 above); and, if the work is an executable linked
177
- with the Library, with the complete machine-readable "work that
178
- uses the Library", as object code and/or source code, so that the
179
- user can modify the Library and then relink to produce a modified
180
- executable containing the modified Library. (It is understood
181
- that the user who changes the contents of definitions files in the
182
- Library will not necessarily be able to recompile the application
183
- to use the modified definitions.)
184
-
185
- b) Use a suitable shared library mechanism for linking with the
186
- Library. A suitable mechanism is one that (1) uses at run time a
187
- copy of the library already present on the user's computer system,
188
- rather than copying library functions into the executable, and (2)
189
- will operate properly with a modified version of the library, if
190
- the user installs one, as long as the modified version is
191
- interface-compatible with the version that the work was made with.
192
-
193
- c) Accompany the work with a written offer, valid for at
194
- least three years, to give the same user the materials
195
- specified in Subsection 6a, above, for a charge no more
196
- than the cost of performing this distribution.
197
-
198
- d) If distribution of the work is made by offering access to copy
199
- from a designated place, offer equivalent access to copy the above
200
- specified materials from the same place.
201
-
202
- e) Verify that the user has already received a copy of these
203
- materials or that you have already sent this user a copy.
204
-
205
- For an executable, the required form of the "work that uses the
206
- Library" must include any data and utility programs needed for
207
- reproducing the executable from it. However, as a special exception,
208
- the materials to be distributed need not include anything that is
209
- normally distributed (in either source or binary form) with the major
210
- components (compiler, kernel, and so on) of the operating system on
211
- which the executable runs, unless that component itself accompanies
212
- the executable.
213
-
214
- It may happen that this requirement contradicts the license
215
- restrictions of other proprietary libraries that do not normally
216
- accompany the operating system. Such a contradiction means you cannot
217
- use both them and the Library together in an executable that you
218
- distribute.
219
-
220
- 7. You may place library facilities that are a work based on the
221
- Library side-by-side in a single library together with other library
222
- facilities not covered by this License, and distribute such a combined
223
- library, provided that the separate distribution of the work based on
224
- the Library and of the other library facilities is otherwise
225
- permitted, and provided that you do these two things:
226
-
227
- a) Accompany the combined library with a copy of the same work
228
- based on the Library, uncombined with any other library
229
- facilities. This must be distributed under the terms of the
230
- Sections above.
231
-
232
- b) Give prominent notice with the combined library of the fact
233
- that part of it is a work based on the Library, and explaining
234
- where to find the accompanying uncombined form of the same work.
235
-
236
- 8. You may not copy, modify, sublicense, link with, or distribute
237
- the Library except as expressly provided under this License. Any
238
- attempt otherwise to copy, modify, sublicense, link with, or
239
- distribute the Library is void, and will automatically terminate your
240
- rights under this License. However, parties who have received copies,
241
- or rights, from you under this License will not have their licenses
242
- terminated so long as such parties remain in full compliance.
243
-
244
- 9. You are not required to accept this License, since you have not
245
- signed it. However, nothing else grants you permission to modify or
246
- distribute the Library or its derivative works. These actions are
247
- prohibited by law if you do not accept this License. Therefore, by
248
- modifying or distributing the Library (or any work based on the
249
- Library), you indicate your acceptance of this License to do so, and
250
- all its terms and conditions for copying, distributing or modifying
251
- the Library or works based on it.
252
-
253
- 10. Each time you redistribute the Library (or any work based on the
254
- Library), the recipient automatically receives a license from the
255
- original licensor to copy, distribute, link with or modify the Library
256
- subject to these terms and conditions. You may not impose any further
257
- restrictions on the recipients' exercise of the rights granted herein.
258
- You are not responsible for enforcing compliance by third parties with
259
- this License.
260
-
261
- 11. If, as a consequence of a court judgment or allegation of patent
262
- infringement or for any other reason (not limited to patent issues),
263
- conditions are imposed on you (whether by court order, agreement or
264
- otherwise) that contradict the conditions of this License, they do not
265
- excuse you from the conditions of this License. If you cannot
266
- distribute so as to satisfy simultaneously your obligations under this
267
- License and any other pertinent obligations, then as a consequence you
268
- may not distribute the Library at all. For example, if a patent
269
- license would not permit royalty-free redistribution of the Library by
270
- all those who receive copies directly or indirectly through you, then
271
- the only way you could satisfy both it and this License would be to
272
- refrain entirely from distribution of the Library.
273
-
274
- If any portion of this section is held invalid or unenforceable under any
275
- particular circumstance, the balance of the section is intended to apply,
276
- and the section as a whole is intended to apply in other circumstances.
277
-
278
- It is not the purpose of this section to induce you to infringe any
279
- patents or other property right claims or to contest validity of any
280
- such claims; this section has the sole purpose of protecting the
281
- integrity of the free software distribution system which is
282
- implemented by public license practices. Many people have made
283
- generous contributions to the wide range of software distributed
284
- through that system in reliance on consistent application of that
285
- system; it is up to the author/donor to decide if he or she is willing
286
- to distribute software through any other system and a licensee cannot
287
- impose that choice.
288
-
289
- This section is intended to make thoroughly clear what is believed to
290
- be a consequence of the rest of this License.
291
-
292
- 12. If the distribution and/or use of the Library is restricted in
293
- certain countries either by patents or by copyrighted interfaces, the
294
- original copyright holder who places the Library under this License may add
295
- an explicit geographical distribution limitation excluding those countries,
296
- so that distribution is permitted only in or among countries not thus
297
- excluded. In such case, this License incorporates the limitation as if
298
- written in the body of this License.
299
-
300
- 13. The Free Software Foundation may publish revised and/or new
301
- versions of the Lesser General Public License from time to time.
302
- Such new versions will be similar in spirit to the present version,
303
- but may differ in detail to address new problems or concerns.
304
-
305
- Each version is given a distinguishing version number. If the Library
306
- specifies a version number of this License which applies to it and
307
- "any later version", you have the option of following the terms and
308
- conditions either of that version or of any later version published by
309
- the Free Software Foundation. If the Library does not specify a
310
- license version number, you may choose any version ever published by
311
- the Free Software Foundation.
312
-
313
- 14. If you wish to incorporate parts of the Library into other free
314
- programs whose distribution conditions are incompatible with these,
315
- write to the author to ask for permission. For software which is
316
- copyrighted by the Free Software Foundation, write to the Free
317
- Software Foundation; we sometimes make exceptions for this. Our
318
- decision will be guided by the two goals of preserving the free status
319
- of all derivatives of our free software and of promoting the sharing
320
- and reuse of software generally.
321
-
322
- NO WARRANTY
323
-
324
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
325
- WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
326
- EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
327
- OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
328
- KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
329
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
330
- PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
331
- LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
332
- THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
333
-
334
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
335
- WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
336
- AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
337
- FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
338
- CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
339
- LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
340
- RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
341
- FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
342
- SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
343
- DAMAGES.
344
-
345
  END OF TERMS AND CONDITIONS
1
+ GNU LESSER GENERAL PUBLIC LICENSE
2
+
3
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
4
+
5
+ 0. This License Agreement applies to any software library or other
6
+ program which contains a notice placed by the copyright holder or
7
+ other authorized party saying it may be distributed under the terms of
8
+ this Lesser General Public License (also called "this License").
9
+ Each licensee is addressed as "you".
10
+
11
+ A "library" means a collection of software functions and/or data
12
+ prepared so as to be conveniently linked with application programs
13
+ (which use some of those functions and data) to form executables.
14
+
15
+ The "Library", below, refers to any such software library or work
16
+ which has been distributed under these terms. A "work based on the
17
+ Library" means either the Library or any derivative work under
18
+ copyright law: that is to say, a work containing the Library or a
19
+ portion of it, either verbatim or with modifications and/or translated
20
+ straightforwardly into another language. (Hereinafter, translation is
21
+ included without limitation in the term "modification".)
22
+
23
+ "Source code" for a work means the preferred form of the work for
24
+ making modifications to it. For a library, complete source code means
25
+ all the source code for all modules it contains, plus any associated
26
+ interface definition files, plus the scripts used to control compilation
27
+ and installation of the library.
28
+
29
+ Activities other than copying, distribution and modification are not
30
+ covered by this License; they are outside its scope. The act of
31
+ running a program using the Library is not restricted, and output from
32
+ such a program is covered only if its contents constitute a work based
33
+ on the Library (independent of the use of the Library in a tool for
34
+ writing it). Whether that is true depends on what the Library does
35
+ and what the program that uses the Library does.
36
+
37
+ 1. You may copy and distribute verbatim copies of the Library's
38
+ complete source code as you receive it, in any medium, provided that
39
+ you conspicuously and appropriately publish on each copy an
40
+ appropriate copyright notice and disclaimer of warranty; keep intact
41
+ all the notices that refer to this License and to the absence of any
42
+ warranty; and distribute a copy of this License along with the
43
+ Library.
44
+
45
+ You may charge a fee for the physical act of transferring a copy,
46
+ and you may at your option offer warranty protection in exchange for a
47
+ fee.
48
+
49
+ 2. You may modify your copy or copies of the Library or any portion
50
+ of it, thus forming a work based on the Library, and copy and
51
+ distribute such modifications or work under the terms of Section 1
52
+ above, provided that you also meet all of these conditions:
53
+
54
+ a) The modified work must itself be a software library.
55
+
56
+ b) You must cause the files modified to carry prominent notices
57
+ stating that you changed the files and the date of any change.
58
+
59
+ c) You must cause the whole of the work to be licensed at no
60
+ charge to all third parties under the terms of this License.
61
+
62
+ d) If a facility in the modified Library refers to a function or a
63
+ table of data to be supplied by an application program that uses
64
+ the facility, other than as an argument passed when the facility
65
+ is invoked, then you must make a good faith effort to ensure that,
66
+ in the event an application does not supply such function or
67
+ table, the facility still operates, and performs whatever part of
68
+ its purpose remains meaningful.
69
+
70
+ (For example, a function in a library to compute square roots has
71
+ a purpose that is entirely well-defined independent of the
72
+ application. Therefore, Subsection 2d requires that any
73
+ application-supplied function or table used by this function must
74
+ be optional: if the application does not supply it, the square
75
+ root function must still compute square roots.)
76
+
77
+ These requirements apply to the modified work as a whole. If
78
+ identifiable sections of that work are not derived from the Library,
79
+ and can be reasonably considered independent and separate works in
80
+ themselves, then this License, and its terms, do not apply to those
81
+ sections when you distribute them as separate works. But when you
82
+ distribute the same sections as part of a whole which is a work based
83
+ on the Library, the distribution of the whole must be on the terms of
84
+ this License, whose permissions for other licensees extend to the
85
+ entire whole, and thus to each and every part regardless of who wrote
86
+ it.
87
+
88
+ Thus, it is not the intent of this section to claim rights or contest
89
+ your rights to work written entirely by you; rather, the intent is to
90
+ exercise the right to control the distribution of derivative or
91
+ collective works based on the Library.
92
+
93
+ In addition, mere aggregation of another work not based on the Library
94
+ with the Library (or with a work based on the Library) on a volume of
95
+ a storage or distribution medium does not bring the other work under
96
+ the scope of this License.
97
+
98
+ 3. You may opt to apply the terms of the ordinary GNU General Public
99
+ License instead of this License to a given copy of the Library. To do
100
+ this, you must alter all the notices that refer to this License, so
101
+ that they refer to the ordinary GNU General Public License, version 2,
102
+ instead of to this License. (If a newer version than version 2 of the
103
+ ordinary GNU General Public License has appeared, then you can specify
104
+ that version instead if you wish.) Do not make any other change in
105
+ these notices.
106
+
107
+ Once this change is made in a given copy, it is irreversible for
108
+ that copy, so the ordinary GNU General Public License applies to all
109
+ subsequent copies and derivative works made from that copy.
110
+
111
+ This option is useful when you wish to copy part of the code of
112
+ the Library into a program that is not a library.
113
+
114
+ 4. You may copy and distribute the Library (or a portion or
115
+ derivative of it, under Section 2) in object code or executable form
116
+ under the terms of Sections 1 and 2 above provided that you accompany
117
+ it with the complete corresponding machine-readable source code, which
118
+ must be distributed under the terms of Sections 1 and 2 above on a
119
+ medium customarily used for software interchange.
120
+
121
+ If distribution of object code is made by offering access to copy
122
+ from a designated place, then offering equivalent access to copy the
123
+ source code from the same place satisfies the requirement to
124
+ distribute the source code, even though third parties are not
125
+ compelled to copy the source along with the object code.
126
+
127
+ 5. A program that contains no derivative of any portion of the
128
+ Library, but is designed to work with the Library by being compiled or
129
+ linked with it, is called a "work that uses the Library". Such a
130
+ work, in isolation, is not a derivative work of the Library, and
131
+ therefore falls outside the scope of this License.
132
+
133
+ However, linking a "work that uses the Library" with the Library
134
+ creates an executable that is a derivative of the Library (because it
135
+ contains portions of the Library), rather than a "work that uses the
136
+ library". The executable is therefore covered by this License.
137
+ Section 6 states terms for distribution of such executables.
138
+
139
+ When a "work that uses the Library" uses material from a header file
140
+ that is part of the Library, the object code for the work may be a
141
+ derivative work of the Library even though the source code is not.
142
+ Whether this is true is especially significant if the work can be
143
+ linked without the Library, or if the work is itself a library. The
144
+ threshold for this to be true is not precisely defined by law.
145
+
146
+ If such an object file uses only numerical parameters, data
147
+ structure layouts and accessors, and small macros and small inline
148
+ functions (ten lines or less in length), then the use of the object
149
+ file is unrestricted, regardless of whether it is legally a derivative
150
+ work. (Executables containing this object code plus portions of the
151
+ Library will still fall under Section 6.)
152
+
153
+ Otherwise, if the work is a derivative of the Library, you may
154
+ distribute the object code for the work under the terms of Section 6.
155
+ Any executables containing that work also fall under Section 6,
156
+ whether or not they are linked directly with the Library itself.
157
+
158
+ 6. As an exception to the Sections above, you may also combine or
159
+ link a "work that uses the Library" with the Library to produce a
160
+ work containing portions of the Library, and distribute that work
161
+ under terms of your choice, provided that the terms permit
162
+ modification of the work for the customer's own use and reverse
163
+ engineering for debugging such modifications.
164
+
165
+ You must give prominent notice with each copy of the work that the
166
+ Library is used in it and that the Library and its use are covered by
167
+ this License. You must supply a copy of this License. If the work
168
+ during execution displays copyright notices, you must include the
169
+ copyright notice for the Library among them, as well as a reference
170
+ directing the user to the copy of this License. Also, you must do one
171
+ of these things:
172
+
173
+ a) Accompany the work with the complete corresponding
174
+ machine-readable source code for the Library including whatever
175
+ changes were used in the work (which must be distributed under
176
+ Sections 1 and 2 above); and, if the work is an executable linked
177
+ with the Library, with the complete machine-readable "work that
178
+ uses the Library", as object code and/or source code, so that the
179
+ user can modify the Library and then relink to produce a modified
180
+ executable containing the modified Library. (It is understood
181
+ that the user who changes the contents of definitions files in the
182
+ Library will not necessarily be able to recompile the application
183
+ to use the modified definitions.)
184
+
185
+ b) Use a suitable shared library mechanism for linking with the
186
+ Library. A suitable mechanism is one that (1) uses at run time a
187
+ copy of the library already present on the user's computer system,
188
+ rather than copying library functions into the executable, and (2)
189
+ will operate properly with a modified version of the library, if
190
+ the user installs one, as long as the modified version is
191
+ interface-compatible with the version that the work was made with.
192
+
193
+ c) Accompany the work with a written offer, valid for at
194
+ least three years, to give the same user the materials
195
+ specified in Subsection 6a, above, for a charge no more
196
+ than the cost of performing this distribution.
197
+
198
+ d) If distribution of the work is made by offering access to copy
199
+ from a designated place, offer equivalent access to copy the above
200
+ specified materials from the same place.
201
+
202
+ e) Verify that the user has already received a copy of these
203
+ materials or that you have already sent this user a copy.
204
+
205
+ For an executable, the required form of the "work that uses the
206
+ Library" must include any data and utility programs needed for
207
+ reproducing the executable from it. However, as a special exception,
208
+ the materials to be distributed need not include anything that is
209
+ normally distributed (in either source or binary form) with the major
210
+ components (compiler, kernel, and so on) of the operating system on
211
+ which the executable runs, unless that component itself accompanies
212
+ the executable.
213
+
214
+ It may happen that this requirement contradicts the license
215
+ restrictions of other proprietary libraries that do not normally
216
+ accompany the operating system. Such a contradiction means you cannot
217
+ use both them and the Library together in an executable that you
218
+ distribute.
219
+
220
+ 7. You may place library facilities that are a work based on the
221
+ Library side-by-side in a single library together with other library
222
+ facilities not covered by this License, and distribute such a combined
223
+ library, provided that the separate distribution of the work based on
224
+ the Library and of the other library facilities is otherwise
225
+ permitted, and provided that you do these two things:
226
+
227
+ a) Accompany the combined library with a copy of the same work
228
+ based on the Library, uncombined with any other library
229
+ facilities. This must be distributed under the terms of the
230
+ Sections above.
231
+
232
+ b) Give prominent notice with the combined library of the fact
233
+ that part of it is a work based on the Library, and explaining
234
+ where to find the accompanying uncombined form of the same work.
235
+
236
+ 8. You may not copy, modify, sublicense, link with, or distribute
237
+ the Library except as expressly provided under this License. Any
238
+ attempt otherwise to copy, modify, sublicense, link with, or
239
+ distribute the Library is void, and will automatically terminate your
240
+ rights under this License. However, parties who have received copies,
241
+ or rights, from you under this License will not have their licenses
242
+ terminated so long as such parties remain in full compliance.
243
+
244
+ 9. You are not required to accept this License, since you have not
245
+ signed it. However, nothing else grants you permission to modify or
246
+ distribute the Library or its derivative works. These actions are
247
+ prohibited by law if you do not accept this License. Therefore, by
248
+ modifying or distributing the Library (or any work based on the
249
+ Library), you indicate your acceptance of this License to do so, and
250
+ all its terms and conditions for copying, distributing or modifying
251
+ the Library or works based on it.
252
+
253
+ 10. Each time you redistribute the Library (or any work based on the
254
+ Library), the recipient automatically receives a license from the
255
+ original licensor to copy, distribute, link with or modify the Library
256
+ subject to these terms and conditions. You may not impose any further
257
+ restrictions on the recipients' exercise of the rights granted herein.
258
+ You are not responsible for enforcing compliance by third parties with
259
+ this License.
260
+
261
+ 11. If, as a consequence of a court judgment or allegation of patent
262
+ infringement or for any other reason (not limited to patent issues),
263
+ conditions are imposed on you (whether by court order, agreement or
264
+ otherwise) that contradict the conditions of this License, they do not
265
+ excuse you from the conditions of this License. If you cannot
266
+ distribute so as to satisfy simultaneously your obligations under this
267
+ License and any other pertinent obligations, then as a consequence you
268
+ may not distribute the Library at all. For example, if a patent
269
+ license would not permit royalty-free redistribution of the Library by
270
+ all those who receive copies directly or indirectly through you, then
271
+ the only way you could satisfy both it and this License would be to
272
+ refrain entirely from distribution of the Library.
273
+
274
+ If any portion of this section is held invalid or unenforceable under any
275
+ particular circumstance, the balance of the section is intended to apply,
276
+ and the section as a whole is intended to apply in other circumstances.
277
+
278
+ It is not the purpose of this section to induce you to infringe any
279
+ patents or other property right claims or to contest validity of any
280
+ such claims; this section has the sole purpose of protecting the
281
+ integrity of the free software distribution system which is
282
+ implemented by public license practices. Many people have made
283
+ generous contributions to the wide range of software distributed
284
+ through that system in reliance on consistent application of that
285
+ system; it is up to the author/donor to decide if he or she is willing
286
+ to distribute software through any other system and a licensee cannot
287
+ impose that choice.
288
+
289
+ This section is intended to make thoroughly clear what is believed to
290
+ be a consequence of the rest of this License.
291
+
292
+ 12. If the distribution and/or use of the Library is restricted in
293
+ certain countries either by patents or by copyrighted interfaces, the
294
+ original copyright holder who places the Library under this License may add
295
+ an explicit geographical distribution limitation excluding those countries,
296
+ so that distribution is permitted only in or among countries not thus
297
+ excluded. In such case, this License incorporates the limitation as if
298
+ written in the body of this License.
299
+
300
+ 13. The Free Software Foundation may publish revised and/or new
301
+ versions of the Lesser General Public License from time to time.
302
+ Such new versions will be similar in spirit to the present version,
303
+ but may differ in detail to address new problems or concerns.
304
+
305
+ Each version is given a distinguishing version number. If the Library
306
+ specifies a version number of this License which applies to it and
307
+ "any later version", you have the option of following the terms and
308
+ conditions either of that version or of any later version published by
309
+ the Free Software Foundation. If the Library does not specify a
310
+ license version number, you may choose any version ever published by
311
+ the Free Software Foundation.
312
+
313
+ 14. If you wish to incorporate parts of the Library into other free
314
+ programs whose distribution conditions are incompatible with these,
315
+ write to the author to ask for permission. For software which is
316
+ copyrighted by the Free Software Foundation, write to the Free
317
+ Software Foundation; we sometimes make exceptions for this. Our
318
+ decision will be guided by the two goals of preserving the free status
319
+ of all derivatives of our free software and of promoting the sharing
320
+ and reuse of software generally.
321
+
322
+ NO WARRANTY
323
+
324
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
325
+ WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
326
+ EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
327
+ OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
328
+ KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
329
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
330
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
331
+ LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
332
+ THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
333
+
334
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
335
+ WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
336
+ AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
337
+ FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
338
+ CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
339
+ LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
340
+ RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
341
+ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
342
+ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
343
+ DAMAGES.
344
+
345
  END OF TERMS AND CONDITIONS
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/bin/migrate-from-phpexcel CHANGED
@@ -1,8 +1,8 @@
1
- #!/usr/bin/env php
2
- <?php
3
- use PhpOffice\PhpSpreadsheet\Helper\Migrator;
4
-
5
- require_once __DIR__ . '/../src/Bootstrap.php';
6
-
7
- $migrator = new Migrator();
8
- $migrator->migrate();
1
+ #!/usr/bin/env php
2
+ <?php
3
+ use PhpOffice\PhpSpreadsheet\Helper\Migrator;
4
+
5
+ require_once __DIR__ . '/../src/Bootstrap.php';
6
+
7
+ $migrator = new Migrator();
8
+ $migrator->migrate();
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/bin/pre-commit CHANGED
@@ -1,33 +1,33 @@
1
- #!/bin/bash
2
-
3
- pass=true
4
-
5
- files=$(git diff --cached --name-only --diff-filter=ACMR | grep -E '\.(php|phtml)$')
6
- if [ "$files" != "" ]; then
7
-
8
- # Run php syntax check before commit
9
- while read -r file; do
10
- php -l "$file"
11
- if [ $? -ne 0 ]; then
12
- pass=false
13
- fi
14
- done <<< "$files"
15
-
16
- # Run php-cs-fixer validation before commit
17
- echo "$files" | xargs ./vendor/bin/php-cs-fixer fix --diff --config .php_cs.dist
18
- if [ $? -ne 0 ]; then
19
- pass=false
20
- fi
21
-
22
- # Automatically add files that may have been fixed by php-cs-fixer
23
- echo "$files" | xargs git add
24
- fi
25
-
26
- if $pass; then
27
- exit 0
28
- else
29
- echo ""
30
- echo "PRE-COMMIT HOOK FAILED:"
31
- echo "Code style validation failed. Please fix errors and try committing again."
32
- exit 1
33
- fi
1
+ #!/bin/bash
2
+
3
+ pass=true
4
+
5
+ files=$(git diff --cached --name-only --diff-filter=ACMR | grep -E '\.(php|phtml)$')
6
+ if [ "$files" != "" ]; then
7
+
8
+ # Run php syntax check before commit
9
+ while read -r file; do
10
+ php -l "$file"
11
+ if [ $? -ne 0 ]; then
12
+ pass=false
13
+ fi
14
+ done <<< "$files"
15
+
16
+ # Run php-cs-fixer validation before commit
17
+ echo "$files" | xargs ./vendor/bin/php-cs-fixer fix --diff --config .php_cs.dist
18
+ if [ $? -ne 0 ]; then
19
+ pass=false
20
+ fi
21
+
22
+ # Automatically add files that may have been fixed by php-cs-fixer
23
+ echo "$files" | xargs git add
24
+ fi
25
+
26
+ if $pass; then
27
+ exit 0
28
+ else
29
+ echo ""
30
+ echo "PRE-COMMIT HOOK FAILED:"
31
+ echo "Code style validation failed. Please fix errors and try committing again."
32
+ exit 1
33
+ fi
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/composer.json CHANGED
@@ -1,78 +1,78 @@
1
- {
2
- "name": "phpoffice/phpspreadsheet",
3
- "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
4
- "keywords": ["PHP", "OpenXML", "Excel", "xlsx", "xls", "ods", "gnumeric", "spreadsheet"],
5
- "homepage": "https://github.com/PHPOffice/PhpSpreadsheet",
6
- "type": "library",
7
- "license": "LGPL-2.1",
8
- "authors": [
9
- {
10
- "name": "Maarten Balliauw",
11
- "homepage": "http://blog.maartenballiauw.be"
12
- },
13
- {
14
- "name": "Mark Baker",
15
- "homepage": "http://markbakeruk.net"
16
- },
17
- {
18
- "name": "Franck Lefevre",
19
- "homepage": "http://rootslabs.net"
20
- },
21
- {
22
- "name": "Erik Tilt"
23
- }
24
- ],
25
- "scripts": {
26
- "check": [
27
- "php-cs-fixer fix --ansi --dry-run --diff",
28
- "phpcs --report-width=200 --report-summary --report-full samples/ src/ tests/ --ignore=samples/Header.php --standard=PSR2 -n",
29
- "phpunit --color=always"
30
- ],
31
- "fix": [
32
- "php-cs-fixer fix --ansi"
33
- ]
34
- },
35
- "require": {
36
- "php": "^5.6|^7.0",
37
- "ext-ctype": "*",
38
- "ext-dom": "*",
39
- "ext-gd": "*",
40
- "ext-iconv": "*",
41
- "ext-libxml": "*",
42
- "ext-mbstring": "*",
43
- "ext-SimpleXML": "*",
44
- "ext-xml": "*",
45
- "ext-xmlreader": "*",
46
- "ext-xmlwriter": "*",
47
- "ext-zip": "*",
48
- "ext-zlib": "*",
49
- "psr/simple-cache": "^1.0"
50
- },
51
- "require-dev": {
52
- "tecnickcom/tcpdf": "^6.2",
53
- "squizlabs/php_codesniffer": "^2.7",
54
- "phpunit/phpunit": "^5.7",
55
- "dompdf/dompdf": "^0.8.0",
56
- "mpdf/mpdf": "^7.0.0",
57
- "jpgraph/jpgraph": "^4.0",
58
- "friendsofphp/php-cs-fixer": "@stable"
59
- },
60
- "suggest": {
61
- "ext-gd": "Required for exact column width autocalculation",
62
- "ext-dom": "Option to read and write HTML files",
63
- "mpdf/mpdf": "Option for rendering PDF with PDF Writer",
64
- "dompdf/dompdf": "Option for rendering PDF with PDF Writer",
65
- "tecnick.com/tcpdf": "Option for rendering PDF with PDF Writer",
66
- "jpgraph/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers"
67
- },
68
- "autoload": {
69
- "psr-4": {
70
- "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet"
71
- }
72
- },
73
- "autoload-dev": {
74
- "psr-4": {
75
- "PhpOffice\\PhpSpreadsheetTests\\": "tests/PhpSpreadsheetTests"
76
- }
77
- }
78
- }
1
+ {
2
+ "name": "phpoffice/phpspreadsheet",
3
+ "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
4
+ "keywords": ["PHP", "OpenXML", "Excel", "xlsx", "xls", "ods", "gnumeric", "spreadsheet"],
5
+ "homepage": "https://github.com/PHPOffice/PhpSpreadsheet",
6
+ "type": "library",
7
+ "license": "LGPL-2.1",
8
+ "authors": [
9
+ {
10
+ "name": "Maarten Balliauw",
11
+ "homepage": "http://blog.maartenballiauw.be"
12
+ },
13
+ {
14
+ "name": "Mark Baker",
15
+ "homepage": "http://markbakeruk.net"
16
+ },
17
+ {
18
+ "name": "Franck Lefevre",
19
+ "homepage": "http://rootslabs.net"
20
+ },
21
+ {
22
+ "name": "Erik Tilt"
23
+ }
24
+ ],
25
+ "scripts": {
26
+ "check": [
27
+ "php-cs-fixer fix --ansi --dry-run --diff",
28
+ "phpcs --report-width=200 --report-summary --report-full samples/ src/ tests/ --ignore=samples/Header.php --standard=PSR2 -n",
29
+ "phpunit --color=always"
30
+ ],
31
+ "fix": [
32
+ "php-cs-fixer fix --ansi"
33
+ ]
34
+ },
35
+ "require": {
36
+ "php": "^5.6|^7.0",
37
+ "ext-ctype": "*",
38
+ "ext-dom": "*",
39
+ "ext-gd": "*",
40
+ "ext-iconv": "*",
41
+ "ext-libxml": "*",
42
+ "ext-mbstring": "*",
43
+ "ext-SimpleXML": "*",
44
+ "ext-xml": "*",
45
+ "ext-xmlreader": "*",
46
+ "ext-xmlwriter": "*",
47
+ "ext-zip": "*",
48
+ "ext-zlib": "*",
49
+ "psr/simple-cache": "^1.0"
50
+ },
51
+ "require-dev": {
52
+ "tecnickcom/tcpdf": "^6.2",
53
+ "squizlabs/php_codesniffer": "^2.7",
54
+ "phpunit/phpunit": "^5.7",
55
+ "dompdf/dompdf": "^0.8.0",
56
+ "mpdf/mpdf": "^7.0.0",
57
+ "jpgraph/jpgraph": "^4.0",
58
+ "friendsofphp/php-cs-fixer": "@stable"
59
+ },
60
+ "suggest": {
61
+ "ext-gd": "Required for exact column width autocalculation",
62
+ "ext-dom": "Option to read and write HTML files",
63
+ "mpdf/mpdf": "Option for rendering PDF with PDF Writer",
64
+ "dompdf/dompdf": "Option for rendering PDF with PDF Writer",
65
+ "tecnick.com/tcpdf": "Option for rendering PDF with PDF Writer",
66
+ "jpgraph/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers"
67
+ },
68
+ "autoload": {
69
+ "psr-4": {
70
+ "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet"
71
+ }
72
+ },
73
+ "autoload-dev": {
74
+ "psr-4": {
75
+ "PhpOffice\\PhpSpreadsheetTests\\": "tests/PhpSpreadsheetTests"
76
+ }
77
+ }
78
+ }
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/composer.lock CHANGED
@@ -1,3103 +1,3103 @@
1
- {
2
- "_readme": [
3
- "This file locks the dependencies of your project to a known state",
4
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
- "This file is @generated automatically"
6
- ],
7
- "content-hash": "e61a906bd83393400add286703f10557",
8
- "packages": [
9
- {
10
- "name": "psr/simple-cache",
11
- "version": "1.0.0",
12
- "source": {
13
- "type": "git",
14
- "url": "https://github.com/php-fig/simple-cache.git",
15
- "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24"
16
- },
17
- "dist": {
18
- "type": "zip",
19
- "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/753fa598e8f3b9966c886fe13f370baa45ef0e24",
20
- "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24",
21
- "shasum": ""
22
- },
23
- "require": {
24
- "php": ">=5.3.0"
25
- },
26
- "type": "library",
27
- "extra": {
28
- "branch-alias": {
29
- "dev-master": "1.0.x-dev"
30
- }
31
- },
32
- "autoload": {
33
- "psr-4": {
34
- "Psr\\SimpleCache\\": "src/"
35
- }
36
- },
37
- "notification-url": "https://packagist.org/downloads/",
38
- "license": [
39
- "MIT"
40
- ],
41
- "authors": [
42
- {
43
- "name": "PHP-FIG",
44
- "homepage": "http://www.php-fig.org/"
45
- }
46
- ],
47
- "description": "Common interfaces for simple caching",
48
- "keywords": [
49
- "cache",
50
- "caching",
51
- "psr",
52
- "psr-16",
53
- "simple-cache"
54
- ],
55
- "time": "2017-01-02T13:31:39+00:00"
56
- }
57
- ],
58
- "packages-dev": [
59
- {
60
- "name": "composer/semver",
61
- "version": "1.4.2",
62
- "source": {
63
- "type": "git",
64
- "url": "https://github.com/composer/semver.git",
65
- "reference": "c7cb9a2095a074d131b65a8a0cd294479d785573"
66
- },
67
- "dist": {
68
- "type": "zip",
69
- "url": "https://api.github.com/repos/composer/semver/zipball/c7cb9a2095a074d131b65a8a0cd294479d785573",
70
- "reference": "c7cb9a2095a074d131b65a8a0cd294479d785573",
71
- "shasum": ""
72
- },
73
- "require": {
74
- "php": "^5.3.2 || ^7.0"
75
- },
76
- "require-dev": {
77
- "phpunit/phpunit": "^4.5 || ^5.0.5",
78
- "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0"
79
- },
80
- "type": "library",
81
- "extra": {
82
- "branch-alias": {
83
- "dev-master": "1.x-dev"
84
- }
85
- },
86
- "autoload": {
87
- "psr-4": {
88
- "Composer\\Semver\\": "src"
89
- }
90
- },
91
- "notification-url": "https://packagist.org/downloads/",
92
- "license": [
93
- "MIT"
94
- ],
95
- "authors": [
96
- {
97
- "name": "Nils Adermann",
98
- "email": "naderman@naderman.de",
99
- "homepage": "http://www.naderman.de"
100
- },
101
- {
102
- "name": "Jordi Boggiano",
103
- "email": "j.boggiano@seld.be",
104
- "homepage": "http://seld.be"
105
- },
106
- {
107
- "name": "Rob Bast",
108
- "email": "rob.bast@gmail.com",
109
- "homepage": "http://robbast.nl"
110
- }
111
- ],
112
- "description": "Semver library that offers utilities, version constraint parsing and validation.",
113
- "keywords": [
114
- "semantic",
115
- "semver",
116
- "validation",
117
- "versioning"
118
- ],
119
- "time": "2016-08-30T16:08:34+00:00"
120
- },
121
- {
122
- "name": "doctrine/annotations",
123
- "version": "v1.6.0",
124
- "source": {
125
- "type": "git",
126
- "url": "https://github.com/doctrine/annotations.git",
127
- "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5"
128
- },
129
- "dist": {
130
- "type": "zip",
131
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5",
132
- "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5",
133
- "shasum": ""
134
- },
135
- "require": {
136
- "doctrine/lexer": "1.*",
137
- "php": "^7.1"
138
- },
139
- "require-dev": {
140
- "doctrine/cache": "1.*",
141
- "phpunit/phpunit": "^6.4"
142
- },
143
- "type": "library",
144
- "extra": {
145
- "branch-alias": {
146
- "dev-master": "1.6.x-dev"
147
- }
148
- },
149
- "autoload": {
150
- "psr-4": {
151
- "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
152
- }
153
- },
154
- "notification-url": "https://packagist.org/downloads/",
155
- "license": [
156
- "MIT"
157
- ],
158
- "authors": [
159
- {
160
- "name": "Roman Borschel",
161
- "email": "roman@code-factory.org"
162
- },
163
- {
164
- "name": "Benjamin Eberlei",
165
- "email": "kontakt@beberlei.de"
166
- },
167
- {
168
- "name": "Guilherme Blanco",
169
- "email": "guilhermeblanco@gmail.com"
170
- },
171
- {
172
- "name": "Jonathan Wage",
173
- "email": "jonwage@gmail.com"
174
- },
175
- {
176
- "name": "Johannes Schmitt",
177
- "email": "schmittjoh@gmail.com"
178
- }
179
- ],
180
- "description": "Docblock Annotations Parser",
181
- "homepage": "http://www.doctrine-project.org",
182
- "keywords": [
183
- "annotations",
184
- "docblock",
185
- "parser"
186
- ],
187
- "time": "2017-12-06T07:11:42+00:00"
188
- },
189
- {
190
- "name": "doctrine/instantiator",
191
- "version": "1.0.5",
192
- "source": {
193
- "type": "git",
194
- "url": "https://github.com/doctrine/instantiator.git",
195
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
196
- },
197
- "dist": {
198
- "type": "zip",
199
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
200
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
201
- "shasum": ""
202
- },
203
- "require": {
204
- "php": ">=5.3,<8.0-DEV"
205
- },
206
- "require-dev": {
207
- "athletic/athletic": "~0.1.8",
208
- "ext-pdo": "*",
209
- "ext-phar": "*",
210
- "phpunit/phpunit": "~4.0",
211
- "squizlabs/php_codesniffer": "~2.0"
212
- },
213
- "type": "library",
214
- "extra": {
215
- "branch-alias": {
216
- "dev-master": "1.0.x-dev"
217
- }
218
- },
219
- "autoload": {
220
- "psr-4": {
221
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
222
- }
223
- },
224
- "notification-url": "https://packagist.org/downloads/",
225
- "license": [
226
- "MIT"
227
- ],
228
- "authors": [
229
- {
230
- "name": "Marco Pivetta",
231
- "email": "ocramius@gmail.com",
232
- "homepage": "http://ocramius.github.com/"
233
- }
234
- ],
235
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
236
- "homepage": "https://github.com/doctrine/instantiator",
237
- "keywords": [
238
- "constructor",
239
- "instantiate"
240
- ],
241
- "time": "2015-06-14T21:17:01+00:00"
242
- },
243
- {
244
- "name": "doctrine/lexer",
245
- "version": "v1.0.1",
246
- "source": {
247
- "type": "git",
248
- "url": "https://github.com/doctrine/lexer.git",
249
- "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
250
- },
251
- "dist": {
252
- "type": "zip",
253
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
254
- "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
255
- "shasum": ""
256
- },
257
- "require": {
258
- "php": ">=5.3.2"
259
- },
260
- "type": "library",
261
- "extra": {
262
- "branch-alias": {
263
- "dev-master": "1.0.x-dev"
264
- }
265
- },
266
- "autoload": {
267
- "psr-0": {
268
- "Doctrine\\Common\\Lexer\\": "lib/"
269
- }
270
- },
271
- "notification-url": "https://packagist.org/downloads/",
272
- "license": [
273
- "MIT"
274
- ],
275
- "authors": [
276
- {
277
- "name": "Roman Borschel",
278
- "email": "roman@code-factory.org"
279
- },
280
- {
281
- "name": "Guilherme Blanco",
282
- "email": "guilhermeblanco@gmail.com"
283
- },
284
- {
285
- "name": "Johannes Schmitt",
286
- "email": "schmittjoh@gmail.com"
287
- }
288
- ],
289
- "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
290
- "homepage": "http://www.doctrine-project.org",
291
- "keywords": [
292
- "lexer",
293
- "parser"
294
- ],
295
- "time": "2014-09-09T13:34:57+00:00"
296
- },
297
- {
298
- "name": "dompdf/dompdf",
299
- "version": "v0.8.0",
300
- "source": {
301
- "type": "git",
302
- "url": "https://github.com/dompdf/dompdf.git",
303
- "reference": "0f418c6b58fdeafc2a0e80eb1fa5e644e185089c"
304
- },
305
- "dist": {
306
- "type": "zip",
307
- "url": "https://api.github.com/repos/dompdf/dompdf/zipball/0f418c6b58fdeafc2a0e80eb1fa5e644e185089c",
308
- "reference": "0f418c6b58fdeafc2a0e80eb1fa5e644e185089c",
309
- "shasum": ""
310
- },
311
- "require": {
312
- "ext-dom": "*",
313
- "ext-gd": "*",
314
- "ext-mbstring": "*",
315
- "phenx/php-font-lib": "0.5.*",
316
- "phenx/php-svg-lib": "0.2.*",
317
- "php": ">=5.3.0"
318
- },
319
- "require-dev": {
320
- "phpunit/phpunit": "4.8.*",
321
- "squizlabs/php_codesniffer": "2.*"
322
- },
323
- "type": "library",
324
- "extra": {
325
- "branch-alias": {
326
- "dev-develop": "0.7-dev"
327
- }
328
- },
329
- "autoload": {
330
- "psr-4": {
331
- "Dompdf\\": "src/"
332
- },
333
- "classmap": [
334
- "lib/"
335
- ]
336
- },
337
- "notification-url": "https://packagist.org/downloads/",
338
- "license": [
339
- "LGPL-2.1"
340
- ],
341
- "authors": [
342
- {
343
- "name": "Fabien Ménager",
344
- "email": "fabien.menager@gmail.com"
345
- },
346
- {
347
- "name": "Brian Sweeney",
348
- "email": "eclecticgeek@gmail.com"
349
- },
350
- {
351
- "name": "Gabriel Bull",
352
- "email": "me@gabrielbull.com"
353
- }
354
- ],
355
- "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter",
356
- "homepage": "https://github.com/dompdf/dompdf",
357
- "time": "2017-02-16T02:40:40+00:00"
358
- },
359
- {
360
- "name": "friendsofphp/php-cs-fixer",
361
- "version": "v2.10.0",
362
- "source": {
363
- "type": "git",
364
- "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
365
- "reference": "513a3765b56dd029175f9f32995566657ee89dda"
366
- },
367
- "dist": {
368
- "type": "zip",
369
- "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/513a3765b56dd029175f9f32995566657ee89dda",
370
- "reference": "513a3765b56dd029175f9f32995566657ee89dda",
371
- "shasum": ""
372
- },
373
- "require": {
374
- "composer/semver": "^1.4",
375
- "doctrine/annotations": "^1.2",
376
- "ext-json": "*",
377
- "ext-tokenizer": "*",
378
- "gecko-packages/gecko-php-unit": "^2.0 || ^3.0",
379
- "php": "^5.6 || >=7.0 <7.3",
380
- "php-cs-fixer/diff": "^1.2",
381
- "symfony/console": "^3.2 || ^4.0",
382
- "symfony/event-dispatcher": "^3.0 || ^4.0",
383
- "symfony/filesystem": "^3.0 || ^4.0",
384
- "symfony/finder": "^3.0 || ^4.0",
385
- "symfony/options-resolver": "^3.0 || ^4.0",
386
- "symfony/polyfill-php70": "^1.0",
387
- "symfony/polyfill-php72": "^1.4",
388
- "symfony/process": "^3.0 || ^4.0",
389
- "symfony/stopwatch": "^3.0 || ^4.0"
390
- },
391
- "conflict": {
392
- "hhvm": "*"
393
- },
394
- "require-dev": {
395
- "johnkary/phpunit-speedtrap": "^1.1 || ^2.0@dev",
396
- "justinrainbow/json-schema": "^5.0",
397
- "keradus/cli-executor": "^1.0",
398
- "mikey179/vfsstream": "^1.6",
399
- "php-coveralls/php-coveralls": "^2.0",
400
- "php-cs-fixer/accessible-object": "^1.0",
401
- "phpunit/phpunit": "^5.7.23 || ^6.4.3",
402
- "phpunitgoodpractices/traits": "^1.0",
403
- "symfony/phpunit-bridge": "^3.2.2 || ^4.0"
404
- },
405
- "suggest": {
406
- "ext-mbstring": "For handling non-UTF8 characters in cache signature.",
407
- "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible."
408
- },
409
- "bin": [
410
- "php-cs-fixer"
411
- ],
412
- "type": "application",
413
- "extra": {
414
- "branch-alias": {
415
- "dev-master": "2.10-dev"
416
- }
417
- },
418
- "autoload": {
419
- "psr-4": {
420
- "PhpCsFixer\\": "src/"
421
- },
422
- "classmap": [
423
- "tests/Test/AbstractFixerTestCase.php",
424
- "tests/Test/AbstractIntegrationTestCase.php",
425
- "tests/Test/Assert/AssertTokensTrait.php",
426
- "tests/Test/IntegrationCase.php",
427
- "tests/Test/IntegrationCaseFactory.php",
428
- "tests/TestCase.php"
429
- ]
430
- },
431
- "notification-url": "https://packagist.org/downloads/",
432
- "license": [
433
- "MIT"
434
- ],
435
- "authors": [
436
- {
437
- "name": "Dariusz Rumiński",
438
- "email": "dariusz.ruminski@gmail.com"
439
- },
440
- {
441
- "name": "Fabien Potencier",
442
- "email": "fabien@symfony.com"
443
- }
444
- ],
445
- "description": "A tool to automatically fix PHP code style",
446
- "time": "2018-01-10T17:16:15+00:00"
447
- },
448
- {
449
- "name": "gecko-packages/gecko-php-unit",
450
- "version": "v3.0",
451
- "source": {
452
- "type": "git",
453
- "url": "https://github.com/GeckoPackages/GeckoPHPUnit.git",
454
- "reference": "6a866551dffc2154c1b091bae3a7877d39c25ca3"
455
- },
456
- "dist": {
457
- "type": "zip",
458
- "url": "https://api.github.com/repos/GeckoPackages/GeckoPHPUnit/zipball/6a866551dffc2154c1b091bae3a7877d39c25ca3",
459
- "reference": "6a866551dffc2154c1b091bae3a7877d39c25ca3",
460
- "shasum": ""
461
- },
462
- "require": {
463
- "php": "^7.0"
464
- },
465
- "require-dev": {
466
- "phpunit/phpunit": "^6.0"
467
- },
468
- "suggest": {
469
- "ext-dom": "When testing with xml.",
470
- "ext-libxml": "When testing with xml.",
471
- "phpunit/phpunit": "This is an extension for it so make sure you have it some way."
472
- },
473
- "type": "library",
474
- "extra": {
475
- "branch-alias": {
476
- "dev-master": "3.0-dev"
477
- }
478
- },
479
- "autoload": {
480
- "psr-4": {
481
- "GeckoPackages\\PHPUnit\\": "src/PHPUnit"
482
- }
483
- },
484
- "notification-url": "https://packagist.org/downloads/",
485
- "license": [
486
- "MIT"
487
- ],
488
- "description": "Additional PHPUnit asserts and constraints.",
489
- "homepage": "https://github.com/GeckoPackages",
490
- "keywords": [
491
- "extension",
492
- "filesystem",
493
- "phpunit"
494
- ],
495
- "time": "2017-08-23T07:46:41+00:00"
496
- },
497
- {
498
- "name": "ircmaxell/password-compat",
499
- "version": "v1.0.4",
500
- "source": {
501
- "type": "git",
502
- "url": "https://github.com/ircmaxell/password_compat.git",
503
- "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c"
504
- },
505
- "dist": {
506
- "type": "zip",
507
- "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c",
508
- "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c",
509
- "shasum": ""
510
- },
511
- "require-dev": {
512
- "phpunit/phpunit": "4.*"
513
- },
514
- "type": "library",
515
- "autoload": {
516
- "files": [
517
- "lib/password.php"
518
- ]
519
- },
520
- "notification-url": "https://packagist.org/downloads/",
521
- "license": [
522
- "MIT"
523
- ],
524
- "authors": [
525
- {
526
- "name": "Anthony Ferrara",
527
- "email": "ircmaxell@php.net",
528
- "homepage": "http://blog.ircmaxell.com"
529
- }
530
- ],
531
- "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash",
532
- "homepage": "https://github.com/ircmaxell/password_compat",
533
- "keywords": [
534
- "hashing",
535
- "password"
536
- ],
537
- "time": "2014-11-20T16:49:30+00:00"
538
- },
539
- {
540
- "name": "jpgraph/jpgraph",
541
- "version": "4.0.2",
542
- "source": {
543
- "type": "git",
544
- "url": "https://github.com/ztec/JpGraph.git",
545
- "reference": "e82db7da6a546d3926c24c9a346226da7aa49094"
546
- },
547
- "dist": {
548
- "type": "zip",
549
- "url": "https://api.github.com/repos/ztec/JpGraph/zipball/e82db7da6a546d3926c24c9a346226da7aa49094",
550
- "reference": "e82db7da6a546d3926c24c9a346226da7aa49094",
551
- "shasum": ""
552
- },
553
- "type": "library",
554
- "autoload": {
555
- "classmap": [
556
- "lib/JpGraph.php"
557
- ]
558
- },
559
- "notification-url": "https://packagist.org/downloads/",
560
- "license": [
561
- "QPL 1.0"
562
- ],
563
- "authors": [
564
- {
565
- "name": "JpGraph team"
566
- }
567
- ],
568
- "description": "jpGraph, library to make graphs and charts",
569
- "homepage": "http://jpgraph.net/",
570
- "keywords": [
571
- "chart",
572
- "data",
573
- "graph",
574
- "jpgraph",
575
- "pie"
576
- ],
577
- "time": "2017-02-23T09:44:15+00:00"
578
- },
579
- {
580
- "name": "mpdf/mpdf",
581
- "version": "v7.0.0",
582
- "source": {
583
- "type": "git",
584
- "url": "https://github.com/mpdf/mpdf.git",
585
- "reference": "375a79a575fde762a7c390766837e78e8dfe97bf"
586
- },
587
- "dist": {
588
- "type": "zip",
589
- "url": "https://api.github.com/repos/mpdf/mpdf/zipball/375a79a575fde762a7c390766837e78e8dfe97bf",
590
- "reference": "375a79a575fde762a7c390766837e78e8dfe97bf",
591
- "shasum": ""
592
- },
593
- "require": {
594
- "ext-gd": "*",
595
- "ext-mbstring": "*",
596
- "paragonie/random_compat": "^2.0",
597
- "php": "^5.6 || ~7.0.0 || ~7.1.0 || ~7.2.0",
598
- "psr/log": "^1.0",
599
- "setasign/fpdi": "1.6.*"
600
- },
601
- "require-dev": {
602
- "mockery/mockery": "^0.9.5",
603
- "phpunit/phpunit": "^5.0",
604
- "squizlabs/php_codesniffer": "^2.7.0",
605
- "tracy/tracy": "^2.4"
606
- },
607
- "suggest": {
608
- "ext-bcmath": "Needed for generation of some types of barcodes",
609
- "ext-xml": "Needed mainly for SVG manipulation",
610
- "ext-zlib": "Needed for compression of embedded resources, such as fonts"
611
- },
612
- "type": "library",
613
- "extra": {
614
- "branch-alias": {
615
- "dev-development": "7.0-dev"
616
- }
617
- },
618
- "autoload": {
619
- "psr-4": {
620
- "Mpdf\\": "src/"
621
- }
622
- },
623
- "notification-url": "https://packagist.org/downloads/",
624
- "license": [
625
- "GPL-2.0"
626
- ],
627
- "authors": [
628
- {
629
- "name": "Matěj Humpál",
630
- "role": "Developer, maintainer"
631
- },
632
- {
633
- "name": "Ian Back",
634
- "role": "Developer (retired)"
635
- }
636
- ],
637
- "description": "A PHP class to generate PDF files from HTML with Unicode/UTF-8 and CJK support",
638
- "homepage": "https://mpdf.github.io",
639
- "keywords": [
640
- "pdf",
641
- "php",
642
- "utf-8"
643
- ],
644
- "time": "2017-10-19T16:38:45+00:00"
645
- },
646
- {
647
- "name": "myclabs/deep-copy",
648
- "version": "1.6.0",
649
- "source": {
650
- "type": "git",
651
- "url": "https://github.com/myclabs/DeepCopy.git",
652
- "reference": "5a5a9fc8025a08d8919be87d6884d5a92520cefe"
653
- },
654
- "dist": {
655
- "type": "zip",
656
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/5a5a9fc8025a08d8919be87d6884d5a92520cefe",
657
- "reference": "5a5a9fc8025a08d8919be87d6884d5a92520cefe",
658
- "shasum": ""
659
- },
660
- "require": {
661
- "php": ">=5.4.0"
662
- },
663
- "require-dev": {
664
- "doctrine/collections": "1.*",
665
- "phpunit/phpunit": "~4.1"
666
- },
667
- "type": "library",
668
- "autoload": {
669
- "psr-4": {
670
- "DeepCopy\\": "src/DeepCopy/"
671
- }
672
- },
673
- "notification-url": "https://packagist.org/downloads/",
674
- "license": [
675
- "MIT"
676
- ],
677
- "description": "Create deep copies (clones) of your objects",
678
- "homepage": "https://github.com/myclabs/DeepCopy",
679
- "keywords": [
680
- "clone",
681
- "copy",
682
- "duplicate",
683
- "object",
684
- "object graph"
685
- ],
686
- "time": "2017-01-26T22:05:40+00:00"
687
- },
688
- {
689
- "name": "paragonie/random_compat",
690
- "version": "v2.0.11",
691
- "source": {
692
- "type": "git",
693
- "url": "https://github.com/paragonie/random_compat.git",
694
- "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8"
695
- },
696
- "dist": {
697
- "type": "zip",
698
- "url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8",
699
- "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8",
700
- "shasum": ""
701
- },
702
- "require": {
703
- "php": ">=5.2.0"
704
- },
705
- "require-dev": {
706
- "phpunit/phpunit": "4.*|5.*"
707
- },
708
- "suggest": {
709
- "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
710
- },
711
- "type": "library",
712
- "autoload": {
713
- "files": [
714
- "lib/random.php"
715
- ]
716
- },
717
- "notification-url": "https://packagist.org/downloads/",
718
- "license": [
719
- "MIT"
720
- ],
721
- "authors": [
722
- {
723
- "name": "Paragon Initiative Enterprises",
724
- "email": "security@paragonie.com",
725
- "homepage": "https://paragonie.com"
726
- }
727
- ],
728
- "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
729
- "keywords": [
730
- "csprng",
731
- "pseudorandom",
732
- "random"
733
- ],
734
- "time": "2017-09-27T21:40:39+00:00"
735
- },
736
- {
737
- "name": "phenx/php-font-lib",
738
- "version": "0.5",
739
- "source": {
740
- "type": "git",
741
- "url": "https://github.com/PhenX/php-font-lib.git",
742
- "reference": "19ad2bebc35be028fcc0221025fcbf3d436a3962"
743
- },
744
- "dist": {
745
- "type": "zip",
746
- "url": "https://api.github.com/repos/PhenX/php-font-lib/zipball/19ad2bebc35be028fcc0221025fcbf3d436a3962",
747
- "reference": "19ad2bebc35be028fcc0221025fcbf3d436a3962",
748
- "shasum": ""
749
- },
750
- "require-dev": {
751
- "phpunit/phpunit": "^4.8"
752
- },
753
- "type": "library",
754
- "autoload": {
755
- "psr-4": {
756
- "FontLib\\": "src/FontLib"
757
- }
758
- },
759
- "notification-url": "https://packagist.org/downloads/",
760
- "license": [
761
- "LGPL-3.0"
762
- ],
763
- "authors": [
764
- {
765
- "name": "Fabien Ménager",
766
- "email": "fabien.menager@gmail.com"
767
- }
768
- ],
769
- "description": "A library to read, parse, export and make subsets of different types of font files.",
770
- "homepage": "https://github.com/PhenX/php-font-lib",
771
- "time": "2017-02-11T10:58:43+00:00"
772
- },
773
- {
774
- "name": "phenx/php-svg-lib",
775
- "version": "v0.2",
776
- "source": {
777
- "type": "git",
778
- "url": "https://github.com/PhenX/php-svg-lib.git",
779
- "reference": "de291bec8449b89acfe85691b5c71434797959dc"
780
- },
781
- "dist": {
782
- "type": "zip",
783
- "url": "https://api.github.com/repos/PhenX/php-svg-lib/zipball/de291bec8449b89acfe85691b5c71434797959dc",
784
- "reference": "de291bec8449b89acfe85691b5c71434797959dc",
785
- "shasum": ""
786
- },
787
- "require": {
788
- "sabberworm/php-css-parser": "6.0.*"
789
- },
790
- "type": "library",
791
- "autoload": {
792
- "psr-0": {
793
- "Svg\\": "src/"
794
- }
795
- },
796
- "notification-url": "https://packagist.org/downloads/",
797
- "license": [
798
- "LGPL-3.0"
799
- ],
800
- "authors": [
801
- {
802
- "name": "Fabien Ménager",
803
- "email": "fabien.menager@gmail.com"
804
- }
805
- ],
806
- "description": "A library to read, parse and export to PDF SVG files.",
807
- "homepage": "https://github.com/PhenX/php-svg-lib",
808
- "time": "2016-12-13T20:25:45+00:00"
809
- },
810
- {
811
- "name": "php-cs-fixer/diff",
812
- "version": "v1.2.0",
813
- "source": {
814
- "type": "git",
815
- "url": "https://github.com/PHP-CS-Fixer/diff.git",
816
- "reference": "f0ef6133d674137e902fdf8a6f2e8e97e14a087b"
817
- },
818
- "dist": {
819
- "type": "zip",
820
- "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/f0ef6133d674137e902fdf8a6f2e8e97e14a087b",
821
- "reference": "f0ef6133d674137e902fdf8a6f2e8e97e14a087b",
822
- "shasum": ""
823
- },
824
- "require": {
825
- "php": "^5.6 || ^7.0"
826
- },
827
- "require-dev": {
828
- "phpunit/phpunit": "^4.8.35 || ^5.4.3",
829
- "symfony/process": "^3.3"
830
- },
831
- "type": "library",
832
- "autoload": {
833
- "classmap": [
834
- "src/"
835
- ]
836
- },
837
- "notification-url": "https://packagist.org/downloads/",
838
- "authors": [
839
- {
840
- "name": "Kore Nordmann",
841
- "email": "mail@kore-nordmann.de"
842
- },
843
- {
844
- "name": "Sebastian Bergmann",
845
- "email": "sebastian@phpunit.de"
846
- },
847
- {
848
- "name": "SpacePossum"
849
- }
850
- ],
851
- "description": "sebastian/diff v2 backport support for PHP5.6",
852
- "homepage": "https://github.com/PHP-CS-Fixer",
853
- "keywords": [
854
- "diff"
855
- ],
856
- "time": "2017-10-19T09:58:18+00:00"
857
- },
858
- {
859
- "name": "phpdocumentor/reflection-common",
860
- "version": "1.0",
861
- "source": {
862
- "type": "git",
863
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
864
- "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c"
865
- },
866
- "dist": {
867
- "type": "zip",
868
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
869
- "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
870
- "shasum": ""
871
- },
872
- "require": {
873
- "php": ">=5.5"
874
- },
875
- "require-dev": {
876
- "phpunit/phpunit": "^4.6"
877
- },
878
- "type": "library",
879
- "extra": {
880
- "branch-alias": {
881
- "dev-master": "1.0.x-dev"
882
- }
883
- },
884
- "autoload": {
885
- "psr-4": {
886
- "phpDocumentor\\Reflection\\": [
887
- "src"
888
- ]
889
- }
890
- },
891
- "notification-url": "https://packagist.org/downloads/",
892
- "license": [
893
- "MIT"
894
- ],
895
- "authors": [
896
- {
897
- "name": "Jaap van Otterdijk",
898
- "email": "opensource@ijaap.nl"
899
- }
900
- ],
901
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
902
- "homepage": "http://www.phpdoc.org",
903
- "keywords": [
904
- "FQSEN",
905
- "phpDocumentor",
906
- "phpdoc",
907
- "reflection",
908
- "static analysis"
909
- ],
910
- "time": "2015-12-27T11:43:31+00:00"
911
- },
912
- {
913
- "name": "phpdocumentor/reflection-docblock",
914
- "version": "3.1.1",
915
- "source": {
916
- "type": "git",
917
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
918
- "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e"
919
- },
920
- "dist": {
921
- "type": "zip",
922
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e",
923
- "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e",
924
- "shasum": ""
925
- },
926
- "require": {
927
- "php": ">=5.5",
928
- "phpdocumentor/reflection-common": "^1.0@dev",
929
- "phpdocumentor/type-resolver": "^0.2.0",
930
- "webmozart/assert": "^1.0"
931
- },
932
- "require-dev": {
933
- "mockery/mockery": "^0.9.4",
934
- "phpunit/phpunit": "^4.4"
935
- },
936
- "type": "library",
937
- "autoload": {
938
- "psr-4": {
939
- "phpDocumentor\\Reflection\\": [
940
- "src/"
941
- ]
942
- }
943
- },
944
- "notification-url": "https://packagist.org/downloads/",
945
- "license": [
946
- "MIT"
947
- ],
948
- "authors": [
949
- {
950
- "name": "Mike van Riel",
951
- "email": "me@mikevanriel.com"
952
- }
953
- ],
954
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
955
- "time": "2016-09-30T07:12:33+00:00"
956
- },
957
- {
958
- "name": "phpdocumentor/type-resolver",
959
- "version": "0.2.1",
960
- "source": {
961
- "type": "git",
962
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
963
- "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb"
964
- },
965
- "dist": {
966
- "type": "zip",
967
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
968
- "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
969
- "shasum": ""
970
- },
971
- "require": {
972
- "php": ">=5.5",
973
- "phpdocumentor/reflection-common": "^1.0"
974
- },
975
- "require-dev": {
976
- "mockery/mockery": "^0.9.4",
977
- "phpunit/phpunit": "^5.2||^4.8.24"
978
- },
979
- "type": "library",
980
- "extra": {
981
- "branch-alias": {
982
- "dev-master": "1.0.x-dev"
983
- }
984
- },
985
- "autoload": {
986
- "psr-4": {
987
- "phpDocumentor\\Reflection\\": [
988
- "src/"
989
- ]
990
- }
991
- },
992
- "notification-url": "https://packagist.org/downloads/",
993
- "license": [
994
- "MIT"
995
- ],
996
- "authors": [
997
- {
998
- "name": "Mike van Riel",
999
- "email": "me@mikevanriel.com"
1000
- }
1001
- ],
1002
- "time": "2016-11-25T06:54:22+00:00"
1003
- },
1004
- {
1005
- "name": "phpspec/prophecy",
1006
- "version": "v1.7.0",
1007
- "source": {
1008
- "type": "git",
1009
- "url": "https://github.com/phpspec/prophecy.git",
1010
- "reference": "93d39f1f7f9326d746203c7c056f300f7f126073"
1011
- },
1012
- "dist": {
1013
- "type": "zip",
1014
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/93d39f1f7f9326d746203c7c056f300f7f126073",
1015
- "reference": "93d39f1f7f9326d746203c7c056f300f7f126073",
1016
- "shasum": ""
1017
- },
1018
- "require": {
1019
- "doctrine/instantiator": "^1.0.2",
1020
- "php": "^5.3|^7.0",
1021
- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
1022
- "sebastian/comparator": "^1.1|^2.0",
1023
- "sebastian/recursion-context": "^1.0|^2.0|^3.0"
1024
- },
1025
- "require-dev": {
1026
- "phpspec/phpspec": "^2.5|^3.2",
1027
- "phpunit/phpunit": "^4.8 || ^5.6.5"
1028
- },
1029
- "type": "library",
1030
- "extra": {
1031
- "branch-alias": {
1032
- "dev-master": "1.6.x-dev"
1033
- }
1034
- },
1035
- "autoload": {
1036
- "psr-0": {
1037
- "Prophecy\\": "src/"
1038
- }
1039
- },
1040
- "notification-url": "https://packagist.org/downloads/",
1041
- "license": [
1042
- "MIT"
1043
- ],
1044
- "authors": [
1045
- {
1046
- "name": "Konstantin Kudryashov",
1047
- "email": "ever.zet@gmail.com",
1048
- "homepage": "http://everzet.com"
1049
- },
1050
- {
1051
- "name": "Marcello Duarte",
1052
- "email": "marcello.duarte@gmail.com"
1053
- }
1054
- ],
1055
- "description": "Highly opinionated mocking framework for PHP 5.3+",
1056
- "homepage": "https://github.com/phpspec/prophecy",
1057
- "keywords": [
1058
- "Double",
1059
- "Dummy",
1060
- "fake",
1061
- "mock",
1062
- "spy",
1063
- "stub"
1064
- ],
1065
- "time": "2017-03-02T20:05:34+00:00"
1066
- },
1067
- {
1068
- "name": "phpunit/php-code-coverage",
1069
- "version": "4.0.7",
1070
- "source": {
1071
- "type": "git",
1072
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
1073
- "reference": "09e2277d14ea467e5a984010f501343ef29ffc69"
1074
- },
1075
- "dist": {
1076
- "type": "zip",
1077
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/09e2277d14ea467e5a984010f501343ef29ffc69",
1078
- "reference": "09e2277d14ea467e5a984010f501343ef29ffc69",
1079
- "shasum": ""
1080
- },
1081
- "require": {
1082
- "ext-dom": "*",
1083
- "ext-xmlwriter": "*",
1084
- "php": "^5.6 || ^7.0",
1085
- "phpunit/php-file-iterator": "^1.3",
1086
- "phpunit/php-text-template": "^1.2",
1087
- "phpunit/php-token-stream": "^1.4.2 || ^2.0",
1088
- "sebastian/code-unit-reverse-lookup": "^1.0",
1089
- "sebastian/environment": "^1.3.2 || ^2.0",
1090
- "sebastian/version": "^1.0 || ^2.0"
1091
- },
1092
- "require-dev": {
1093
- "ext-xdebug": "^2.1.4",
1094
- "phpunit/phpunit": "^5.7"
1095
- },
1096
- "suggest": {
1097
- "ext-xdebug": "^2.5.1"
1098
- },
1099
- "type": "library",
1100
- "extra": {
1101
- "branch-alias": {
1102
- "dev-master": "4.0.x-dev"
1103
- }
1104
- },
1105
- "autoload": {
1106
- "classmap": [
1107
- "src/"
1108
- ]
1109
- },
1110
- "notification-url": "https://packagist.org/downloads/",
1111
- "license": [
1112
- "BSD-3-Clause"
1113
- ],
1114
- "authors": [
1115
- {
1116
- "name": "Sebastian Bergmann",
1117
- "email": "sb@sebastian-bergmann.de",
1118
- "role": "lead"
1119
- }
1120
- ],
1121
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
1122
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
1123
- "keywords": [
1124
- "coverage",
1125
- "testing",
1126
- "xunit"
1127
- ],
1128
- "time": "2017-03-01T09:12:17+00:00"
1129
- },
1130
- {
1131
- "name": "phpunit/php-file-iterator",
1132
- "version": "1.4.2",
1133
- "source": {
1134
- "type": "git",
1135
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
1136
- "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5"
1137
- },
1138
- "dist": {
1139
- "type": "zip",
1140
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
1141
- "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
1142
- "shasum": ""
1143
- },
1144
- "require": {
1145
- "php": ">=5.3.3"
1146
- },
1147
- "type": "library",
1148
- "extra": {
1149
- "branch-alias": {
1150
- "dev-master": "1.4.x-dev"
1151
- }
1152
- },
1153
- "autoload": {
1154
- "classmap": [
1155
- "src/"
1156
- ]
1157
- },
1158
- "notification-url": "https://packagist.org/downloads/",
1159
- "license": [
1160
- "BSD-3-Clause"
1161
- ],
1162
- "authors": [
1163
- {
1164
- "name": "Sebastian Bergmann",
1165
- "email": "sb@sebastian-bergmann.de",
1166
- "role": "lead"
1167
- }
1168
- ],
1169
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
1170
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
1171
- "keywords": [
1172
- "filesystem",
1173
- "iterator"
1174
- ],
1175
- "time": "2016-10-03T07:40:28+00:00"
1176
- },
1177
- {
1178
- "name": "phpunit/php-text-template",
1179
- "version": "1.2.1",
1180
- "source": {
1181
- "type": "git",
1182
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
1183
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
1184
- },
1185
- "dist": {
1186
- "type": "zip",
1187
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1188
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1189
- "shasum": ""
1190
- },
1191
- "require": {
1192
- "php": ">=5.3.3"
1193
- },
1194
- "type": "library",
1195
- "autoload": {
1196
- "classmap": [
1197
- "src/"
1198
- ]
1199
- },
1200
- "notification-url": "https://packagist.org/downloads/",
1201
- "license": [
1202
- "BSD-3-Clause"
1203
- ],
1204
- "authors": [
1205
- {
1206
- "name": "Sebastian Bergmann",
1207
- "email": "sebastian@phpunit.de",
1208
- "role": "lead"
1209
- }
1210
- ],
1211
- "description": "Simple template engine.",
1212
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
1213
- "keywords": [
1214
- "template"
1215
- ],
1216
- "time": "2015-06-21T13:50:34+00:00"
1217
- },
1218
- {
1219
- "name": "phpunit/php-timer",
1220
- "version": "1.0.9",
1221
- "source": {
1222
- "type": "git",
1223
- "url": "https://github.com/sebastianbergmann/php-timer.git",
1224
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
1225
- },
1226
- "dist": {
1227
- "type": "zip",
1228
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
1229
- "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
1230
- "shasum": ""
1231
- },
1232
- "require": {
1233
- "php": "^5.3.3 || ^7.0"
1234
- },
1235
- "require-dev": {
1236
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
1237
- },
1238
- "type": "library",
1239
- "extra": {
1240
- "branch-alias": {
1241
- "dev-master": "1.0-dev"
1242
- }
1243
- },
1244
- "autoload": {
1245
- "classmap": [
1246
- "src/"
1247
- ]
1248
- },
1249
- "notification-url": "https://packagist.org/downloads/",
1250
- "license": [
1251
- "BSD-3-Clause"
1252
- ],
1253
- "authors": [
1254
- {
1255
- "name": "Sebastian Bergmann",
1256
- "email": "sb@sebastian-bergmann.de",
1257
- "role": "lead"
1258
- }
1259
- ],
1260
- "description": "Utility class for timing",
1261
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
1262
- "keywords": [
1263
- "timer"
1264
- ],
1265
- "time": "2017-02-26T11:10:40+00:00"
1266
- },
1267
- {
1268
- "name": "phpunit/php-token-stream",
1269
- "version": "1.4.11",
1270
- "source": {
1271
- "type": "git",
1272
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
1273
- "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7"
1274
- },
1275
- "dist": {
1276
- "type": "zip",
1277
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7",
1278
- "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7",
1279
- "shasum": ""
1280
- },
1281
- "require": {
1282
- "ext-tokenizer": "*",
1283
- "php": ">=5.3.3"
1284
- },
1285
- "require-dev": {
1286
- "phpunit/phpunit": "~4.2"
1287
- },
1288
- "type": "library",
1289
- "extra": {
1290
- "branch-alias": {
1291
- "dev-master": "1.4-dev"
1292
- }
1293
- },
1294
- "autoload": {
1295
- "classmap": [
1296
- "src/"
1297
- ]
1298
- },
1299
- "notification-url": "https://packagist.org/downloads/",
1300
- "license": [
1301
- "BSD-3-Clause"
1302
- ],
1303
- "authors": [
1304
- {
1305
- "name": "Sebastian Bergmann",
1306
- "email": "sebastian@phpunit.de"
1307
- }
1308
- ],
1309
- "description": "Wrapper around PHP's tokenizer extension.",
1310
- "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
1311
- "keywords": [
1312
- "tokenizer"
1313
- ],
1314
- "time": "2017-02-27T10:12:30+00:00"
1315
- },
1316
- {
1317
- "name": "phpunit/phpunit",
1318
- "version": "5.7.17",
1319
- "source": {
1320
- "type": "git",
1321
- "url": "https://github.com/sebastianbergmann/phpunit.git",
1322
- "reference": "68752b665d3875f9a38a357e3ecb35c79f8673bf"
1323
- },
1324
- "dist": {
1325
- "type": "zip",
1326
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/68752b665d3875f9a38a357e3ecb35c79f8673bf",
1327
- "reference": "68752b665d3875f9a38a357e3ecb35c79f8673bf",
1328
- "shasum": ""
1329
- },
1330
- "require": {
1331
- "ext-dom": "*",
1332
- "ext-json": "*",
1333
- "ext-libxml": "*",
1334
- "ext-mbstring": "*",
1335
- "ext-xml": "*",
1336
- "myclabs/deep-copy": "~1.3",
1337
- "php": "^5.6 || ^7.0",
1338
- "phpspec/prophecy": "^1.6.2",
1339
- "phpunit/php-code-coverage": "^4.0.4",
1340
- "phpunit/php-file-iterator": "~1.4",
1341
- "phpunit/php-text-template": "~1.2",
1342
- "phpunit/php-timer": "^1.0.6",
1343
- "phpunit/phpunit-mock-objects": "^3.2",
1344
- "sebastian/comparator": "^1.2.4",
1345
- "sebastian/diff": "~1.2",
1346
- "sebastian/environment": "^1.3.4 || ^2.0",
1347
- "sebastian/exporter": "~2.0",
1348
- "sebastian/global-state": "^1.1",
1349
- "sebastian/object-enumerator": "~2.0",
1350
- "sebastian/resource-operations": "~1.0",
1351
- "sebastian/version": "~1.0.3|~2.0",
1352
- "symfony/yaml": "~2.1|~3.0"
1353
- },
1354
- "conflict": {
1355
- "phpdocumentor/reflection-docblock": "3.0.2"
1356
- },
1357
- "require-dev": {
1358
- "ext-pdo": "*"
1359
- },
1360
- "suggest": {
1361
- "ext-xdebug": "*",
1362
- "phpunit/php-invoker": "~1.1"
1363
- },
1364
- "bin": [
1365
- "phpunit"
1366
- ],
1367
- "type": "library",
1368
- "extra": {
1369
- "branch-alias": {
1370
- "dev-master": "5.7.x-dev"
1371
- }
1372
- },
1373
- "autoload": {
1374
- "classmap": [
1375
- "src/"
1376
- ]
1377
- },
1378
- "notification-url": "https://packagist.org/downloads/",
1379
- "license": [
1380
- "BSD-3-Clause"
1381
- ],
1382
- "authors": [
1383
- {
1384
- "name": "Sebastian Bergmann",
1385
- "email": "sebastian@phpunit.de",
1386
- "role": "lead"
1387
- }
1388
- ],
1389
- "description": "The PHP Unit Testing framework.",
1390
- "homepage": "https://phpunit.de/",
1391
- "keywords": [
1392
- "phpunit",
1393
- "testing",
1394
- "xunit"
1395
- ],
1396
- "time": "2017-03-19T16:52:12+00:00"
1397
- },
1398
- {
1399
- "name": "phpunit/phpunit-mock-objects",
1400
- "version": "3.4.3",
1401
- "source": {
1402
- "type": "git",
1403
- "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
1404
- "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24"
1405
- },
1406
- "dist": {
1407
- "type": "zip",
1408
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3ab72b65b39b491e0c011e2e09bb2206c2aa8e24",
1409
- "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24",
1410
- "shasum": ""
1411
- },
1412
- "require": {
1413
- "doctrine/instantiator": "^1.0.2",
1414
- "php": "^5.6 || ^7.0",
1415
- "phpunit/php-text-template": "^1.2",
1416
- "sebastian/exporter": "^1.2 || ^2.0"
1417
- },
1418
- "conflict": {
1419
- "phpunit/phpunit": "<5.4.0"
1420
- },
1421
- "require-dev": {
1422
- "phpunit/phpunit": "^5.4"
1423
- },
1424
- "suggest": {
1425
- "ext-soap": "*"
1426
- },
1427
- "type": "library",
1428
- "extra": {
1429
- "branch-alias": {
1430
- "dev-master": "3.2.x-dev"
1431
- }
1432
- },
1433
- "autoload": {
1434
- "classmap": [
1435
- "src/"
1436
- ]
1437
- },
1438
- "notification-url": "https://packagist.org/downloads/",
1439
- "license": [
1440
- "BSD-3-Clause"
1441
- ],
1442
- "authors": [
1443
- {
1444
- "name": "Sebastian Bergmann",
1445
- "email": "sb@sebastian-bergmann.de",
1446
- "role": "lead"
1447
- }
1448
- ],
1449
- "description": "Mock Object library for PHPUnit",
1450
- "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
1451
- "keywords": [
1452
- "mock",
1453
- "xunit"
1454
- ],
1455
- "time": "2016-12-08T20:27:08+00:00"
1456
- },
1457
- {
1458
- "name": "psr/log",
1459
- "version": "1.0.2",
1460
- "source": {
1461
- "type": "git",
1462
- "url": "https://github.com/php-fig/log.git",
1463
- "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
1464
- },
1465
- "dist": {
1466
- "type": "zip",
1467
- "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
1468
- "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
1469
- "shasum": ""
1470
- },
1471
- "require": {
1472
- "php": ">=5.3.0"
1473
- },
1474
- "type": "library",
1475
- "extra": {
1476
- "branch-alias": {
1477
- "dev-master": "1.0.x-dev"
1478
- }
1479
- },
1480
- "autoload": {
1481
- "psr-4": {
1482
- "Psr\\Log\\": "Psr/Log/"
1483
- }
1484
- },
1485
- "notification-url": "https://packagist.org/downloads/",
1486
- "license": [
1487
- "MIT"
1488
- ],
1489
- "authors": [
1490
- {
1491
- "name": "PHP-FIG",
1492
- "homepage": "http://www.php-fig.org/"
1493
- }
1494
- ],
1495
- "description": "Common interface for logging libraries",
1496
- "homepage": "https://github.com/php-fig/log",
1497
- "keywords": [
1498
- "log",
1499
- "psr",
1500
- "psr-3"
1501
- ],
1502
- "time": "2016-10-10T12:19:37+00:00"
1503
- },
1504
- {
1505
- "name": "sabberworm/php-css-parser",
1506
- "version": "6.0.1",
1507
- "source": {
1508
- "type": "git",
1509
- "url": "https://github.com/sabberworm/PHP-CSS-Parser.git",
1510
- "reference": "9ea4b00c569b19f731d0c2e0e802055877ff40c2"
1511
- },
1512
- "dist": {
1513
- "type": "zip",
1514
- "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/9ea4b00c569b19f731d0c2e0e802055877ff40c2",
1515
- "reference": "9ea4b00c569b19f731d0c2e0e802055877ff40c2",
1516
- "shasum": ""
1517
- },
1518
- "require": {
1519
- "php": ">=5.3.2"
1520
- },
1521
- "type": "library",
1522
- "autoload": {
1523
- "psr-0": {
1524
- "Sabberworm\\CSS": "lib/"
1525
- }
1526
- },
1527
- "notification-url": "https://packagist.org/downloads/",
1528
- "license": [
1529
- "MIT"
1530
- ],
1531
- "authors": [
1532
- {
1533
- "name": "Raphael Schweikert"
1534
- }
1535
- ],
1536
- "description": "Parser for CSS Files written in PHP",
1537
- "homepage": "http://www.sabberworm.com/blog/2010/6/10/php-css-parser",
1538
- "keywords": [
1539
- "css",
1540
- "parser",
1541
- "stylesheet"
1542
- ],
1543
- "time": "2015-08-24T08:48:52+00:00"
1544
- },
1545
- {
1546
- "name": "sebastian/code-unit-reverse-lookup",
1547
- "version": "1.0.1",
1548
- "source": {
1549
- "type": "git",
1550
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
1551
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
1552
- },
1553
- "dist": {
1554
- "type": "zip",
1555
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1556
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1557
- "shasum": ""
1558
- },
1559
- "require": {
1560
- "php": "^5.6 || ^7.0"
1561
- },
1562
- "require-dev": {
1563
- "phpunit/phpunit": "^5.7 || ^6.0"
1564
- },
1565
- "type": "library",
1566
- "extra": {
1567
- "branch-alias": {
1568
- "dev-master": "1.0.x-dev"
1569
- }
1570
- },
1571
- "autoload": {
1572
- "classmap": [
1573
- "src/"
1574
- ]
1575
- },
1576
- "notification-url": "https://packagist.org/downloads/",
1577
- "license": [
1578
- "BSD-3-Clause"
1579
- ],
1580
- "authors": [
1581
- {
1582
- "name": "Sebastian Bergmann",
1583
- "email": "sebastian@phpunit.de"
1584
- }
1585
- ],
1586
- "description": "Looks up which function or method a line of code belongs to",
1587
- "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
1588
- "time": "2017-03-04T06:30:41+00:00"
1589
- },
1590
- {
1591
- "name": "sebastian/comparator",
1592
- "version": "1.2.4",
1593
- "source": {
1594
- "type": "git",
1595
- "url": "https://github.com/sebastianbergmann/comparator.git",
1596
- "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
1597
- },
1598
- "dist": {
1599
- "type": "zip",
1600
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
1601
- "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
1602
- "shasum": ""
1603
- },
1604
- "require": {
1605
- "php": ">=5.3.3",
1606
- "sebastian/diff": "~1.2",
1607
- "sebastian/exporter": "~1.2 || ~2.0"
1608
- },
1609
- "require-dev": {
1610
- "phpunit/phpunit": "~4.4"
1611
- },
1612
- "type": "library",
1613
- "extra": {
1614
- "branch-alias": {
1615
- "dev-master": "1.2.x-dev"
1616
- }
1617
- },
1618
- "autoload": {
1619
- "classmap": [
1620
- "src/"
1621
- ]
1622
- },
1623
- "notification-url": "https://packagist.org/downloads/",
1624
- "license": [
1625
- "BSD-3-Clause"
1626
- ],
1627
- "authors": [
1628
- {
1629
- "name": "Jeff Welch",
1630
- "email": "whatthejeff@gmail.com"
1631
- },
1632
- {
1633
- "name": "Volker Dusch",
1634
- "email": "github@wallbash.com"
1635
- },
1636
- {
1637
- "name": "Bernhard Schussek",
1638
- "email": "bschussek@2bepublished.at"
1639
- },
1640
- {
1641
- "name": "Sebastian Bergmann",
1642
- "email": "sebastian@phpunit.de"
1643
- }
1644
- ],
1645
- "description": "Provides the functionality to compare PHP values for equality",
1646
- "homepage": "http://www.github.com/sebastianbergmann/comparator",
1647
- "keywords": [
1648
- "comparator",
1649
- "compare",
1650
- "equality"
1651
- ],
1652
- "time": "2017-01-29T09:50:25+00:00"
1653
- },
1654
- {
1655
- "name": "sebastian/diff",
1656
- "version": "1.4.1",
1657
- "source": {
1658
- "type": "git",
1659
- "url": "https://github.com/sebastianbergmann/diff.git",
1660
- "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
1661
- },
1662
- "dist": {
1663
- "type": "zip",
1664
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
1665
- "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
1666
- "shasum": ""
1667
- },
1668
- "require": {
1669
- "php": ">=5.3.3"
1670
- },
1671
- "require-dev": {
1672
- "phpunit/phpunit": "~4.8"
1673
- },
1674
- "type": "library",
1675
- "extra": {
1676
- "branch-alias": {
1677
- "dev-master": "1.4-dev"
1678
- }
1679
- },
1680
- "autoload": {
1681
- "classmap": [
1682
- "src/"
1683
- ]
1684
- },
1685
- "notification-url": "https://packagist.org/downloads/",
1686
- "license": [
1687
- "BSD-3-Clause"
1688
- ],
1689
- "authors": [
1690
- {
1691
- "name": "Kore Nordmann",
1692
- "email": "mail@kore-nordmann.de"
1693
- },
1694
- {
1695
- "name": "Sebastian Bergmann",
1696
- "email": "sebastian@phpunit.de"
1697
- }
1698
- ],
1699
- "description": "Diff implementation",
1700
- "homepage": "https://github.com/sebastianbergmann/diff",
1701
- "keywords": [
1702
- "diff"
1703
- ],
1704
- "time": "2015-12-08T07:14:41+00:00"
1705
- },
1706
- {
1707
- "name": "sebastian/environment",
1708
- "version": "2.0.0",
1709
- "source": {
1710
- "type": "git",
1711
- "url": "https://github.com/sebastianbergmann/environment.git",
1712
- "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac"
1713
- },
1714
- "dist": {
1715
- "type": "zip",
1716
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
1717
- "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
1718
- "shasum": ""
1719
- },
1720
- "require": {
1721
- "php": "^5.6 || ^7.0"
1722
- },
1723
- "require-dev": {
1724
- "phpunit/phpunit": "^5.0"
1725
- },
1726
- "type": "library",
1727
- "extra": {
1728
- "branch-alias": {
1729
- "dev-master": "2.0.x-dev"
1730
- }
1731
- },
1732
- "autoload": {
1733
- "classmap": [
1734
- "src/"
1735
- ]
1736
- },
1737
- "notification-url": "https://packagist.org/downloads/",
1738
- "license": [
1739
- "BSD-3-Clause"
1740
- ],
1741
- "authors": [
1742
- {
1743
- "name": "Sebastian Bergmann",
1744
- "email": "sebastian@phpunit.de"
1745
- }
1746
- ],
1747
- "description": "Provides functionality to handle HHVM/PHP environments",
1748
- "homepage": "http://www.github.com/sebastianbergmann/environment",
1749
- "keywords": [
1750
- "Xdebug",
1751
- "environment",
1752
- "hhvm"
1753
- ],
1754
- "time": "2016-11-26T07:53:53+00:00"
1755
- },
1756
- {
1757
- "name": "sebastian/exporter",
1758
- "version": "2.0.0",
1759
- "source": {
1760
- "type": "git",
1761
- "url": "https://github.com/sebastianbergmann/exporter.git",
1762
- "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4"
1763
- },
1764
- "dist": {
1765
- "type": "zip",
1766
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
1767
- "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
1768
- "shasum": ""
1769
- },
1770
- "require": {
1771
- "php": ">=5.3.3",
1772
- "sebastian/recursion-context": "~2.0"
1773
- },
1774
- "require-dev": {
1775
- "ext-mbstring": "*",
1776
- "phpunit/phpunit": "~4.4"
1777
- },
1778
- "type": "library",
1779
- "extra": {
1780
- "branch-alias": {
1781
- "dev-master": "2.0.x-dev"
1782
- }
1783
- },
1784
- "autoload": {
1785
- "classmap": [
1786
- "src/"
1787
- ]
1788
- },
1789
- "notification-url": "https://packagist.org/downloads/",
1790
- "license": [
1791
- "BSD-3-Clause"
1792
- ],
1793
- "authors": [
1794
- {
1795
- "name": "Jeff Welch",
1796
- "email": "whatthejeff@gmail.com"
1797
- },
1798
- {
1799
- "name": "Volker Dusch",
1800
- "email": "github@wallbash.com"
1801
- },
1802
- {
1803
- "name": "Bernhard Schussek",
1804
- "email": "bschussek@2bepublished.at"
1805
- },
1806
- {
1807
- "name": "Sebastian Bergmann",
1808
- "email": "sebastian@phpunit.de"
1809
- },
1810
- {
1811
- "name": "Adam Harvey",
1812
- "email": "aharvey@php.net"
1813
- }
1814
- ],
1815
- "description": "Provides the functionality to export PHP variables for visualization",
1816
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
1817
- "keywords": [
1818
- "export",
1819
- "exporter"
1820
- ],
1821
- "time": "2016-11-19T08:54:04+00:00"
1822
- },
1823
- {
1824
- "name": "sebastian/global-state",
1825
- "version": "1.1.1",
1826
- "source": {
1827
- "type": "git",
1828
- "url": "https://github.com/sebastianbergmann/global-state.git",
1829
- "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
1830
- },
1831
- "dist": {
1832
- "type": "zip",
1833
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
1834
- "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
1835
- "shasum": ""
1836
- },
1837
- "require": {
1838
- "php": ">=5.3.3"
1839
- },
1840
- "require-dev": {
1841
- "phpunit/phpunit": "~4.2"
1842
- },
1843
- "suggest": {
1844
- "ext-uopz": "*"
1845
- },
1846
- "type": "library",
1847
- "extra": {
1848
- "branch-alias": {
1849
- "dev-master": "1.0-dev"
1850
- }
1851
- },
1852
- "autoload": {
1853
- "classmap": [
1854
- "src/"
1855
- ]
1856
- },
1857
- "notification-url": "https://packagist.org/downloads/",
1858
- "license": [
1859
- "BSD-3-Clause"
1860
- ],
1861
- "authors": [
1862
- {
1863
- "name": "Sebastian Bergmann",
1864
- "email": "sebastian@phpunit.de"
1865
- }
1866
- ],
1867
- "description": "Snapshotting of global state",
1868
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
1869
- "keywords": [
1870
- "global state"
1871
- ],
1872
- "time": "2015-10-12T03:26:01+00:00"
1873
- },
1874
- {
1875
- "name": "sebastian/object-enumerator",
1876
- "version": "2.0.1",
1877
- "source": {
1878
- "type": "git",
1879
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
1880
- "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7"
1881
- },
1882
- "dist": {
1883
- "type": "zip",
1884
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7",
1885
- "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7",
1886
- "shasum": ""
1887
- },
1888
- "require": {
1889
- "php": ">=5.6",
1890
- "sebastian/recursion-context": "~2.0"
1891
- },
1892
- "require-dev": {
1893
- "phpunit/phpunit": "~5"
1894
- },
1895
- "type": "library",
1896
- "extra": {
1897
- "branch-alias": {
1898
- "dev-master": "2.0.x-dev"
1899
- }
1900
- },
1901
- "autoload": {
1902
- "classmap": [
1903
- "src/"
1904
- ]
1905
- },
1906
- "notification-url": "https://packagist.org/downloads/",
1907
- "license": [
1908
- "BSD-3-Clause"
1909
- ],
1910
- "authors": [
1911
- {
1912
- "name": "Sebastian Bergmann",
1913
- "email": "sebastian@phpunit.de"
1914
- }
1915
- ],
1916
- "description": "Traverses array structures and object graphs to enumerate all referenced objects",
1917
- "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
1918
- "time": "2017-02-18T15:18:39+00:00"
1919
- },
1920
- {
1921
- "name": "sebastian/recursion-context",
1922
- "version": "2.0.0",
1923
- "source": {
1924
- "type": "git",
1925
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
1926
- "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a"
1927
- },
1928
- "dist": {
1929
- "type": "zip",
1930
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a",
1931
- "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a",
1932
- "shasum": ""
1933
- },
1934
- "require": {
1935
- "php": ">=5.3.3"
1936
- },
1937
- "require-dev": {
1938
- "phpunit/phpunit": "~4.4"
1939
- },
1940
- "type": "library",
1941
- "extra": {
1942
- "branch-alias": {
1943
- "dev-master": "2.0.x-dev"
1944
- }
1945
- },
1946
- "autoload": {
1947
- "classmap": [
1948
- "src/"
1949
- ]
1950
- },
1951
- "notification-url": "https://packagist.org/downloads/",
1952
- "license": [
1953
- "BSD-3-Clause"
1954
- ],
1955
- "authors": [
1956
- {
1957
- "name": "Jeff Welch",
1958
- "email": "whatthejeff@gmail.com"
1959
- },
1960
- {
1961
- "name": "Sebastian Bergmann",
1962
- "email": "sebastian@phpunit.de"
1963
- },
1964
- {
1965
- "name": "Adam Harvey",
1966
- "email": "aharvey@php.net"
1967
- }
1968
- ],
1969
- "description": "Provides functionality to recursively process PHP variables",
1970
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
1971
- "time": "2016-11-19T07:33:16+00:00"
1972
- },
1973
- {
1974
- "name": "sebastian/resource-operations",
1975
- "version": "1.0.0",
1976
- "source": {
1977
- "type": "git",
1978
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
1979
- "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
1980
- },
1981
- "dist": {
1982
- "type": "zip",
1983
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
1984
- "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
1985
- "shasum": ""
1986
- },
1987
- "require": {
1988
- "php": ">=5.6.0"
1989
- },
1990
- "type": "library",
1991
- "extra": {
1992
- "branch-alias": {
1993
- "dev-master": "1.0.x-dev"
1994
- }
1995
- },
1996
- "autoload": {
1997
- "classmap": [
1998
- "src/"
1999
- ]
2000
- },
2001
- "notification-url": "https://packagist.org/downloads/",
2002
- "license": [
2003
- "BSD-3-Clause"
2004
- ],
2005
- "authors": [
2006
- {
2007
- "name": "Sebastian Bergmann",
2008
- "email": "sebastian@phpunit.de"
2009
- }
2010
- ],
2011
- "description": "Provides a list of PHP built-in functions that operate on resources",
2012
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
2013
- "time": "2015-07-28T20:34:47+00:00"
2014
- },
2015
- {
2016
- "name": "sebastian/version",
2017
- "version": "2.0.1",
2018
- "source": {
2019
- "type": "git",
2020
- "url": "https://github.com/sebastianbergmann/version.git",
2021
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
2022
- },
2023
- "dist": {
2024
- "type": "zip",
2025
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
2026
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
2027
- "shasum": ""
2028
- },
2029
- "require": {
2030
- "php": ">=5.6"
2031
- },
2032
- "type": "library",
2033
- "extra": {
2034
- "branch-alias": {
2035
- "dev-master": "2.0.x-dev"
2036
- }
2037
- },
2038
- "autoload": {
2039
- "classmap": [
2040
- "src/"
2041
- ]
2042
- },
2043
- "notification-url": "https://packagist.org/downloads/",
2044
- "license": [
2045
- "BSD-3-Clause"
2046
- ],
2047
- "authors": [
2048
- {
2049
- "name": "Sebastian Bergmann",
2050
- "email": "sebastian@phpunit.de",
2051
- "role": "lead"
2052
- }
2053
- ],
2054
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
2055
- "homepage": "https://github.com/sebastianbergmann/version",
2056
- "time": "2016-10-03T07:35:21+00:00"
2057
- },
2058
- {
2059
- "name": "setasign/fpdi",
2060
- "version": "1.6.2",
2061
- "source": {
2062
- "type": "git",
2063
- "url": "https://github.com/Setasign/FPDI.git",
2064
- "reference": "a6ad58897a6d97cc2d2cd2adaeda343b25a368ea"
2065
- },
2066
- "dist": {
2067
- "type": "zip",
2068
- "url": "https://api.github.com/repos/Setasign/FPDI/zipball/a6ad58897a6d97cc2d2cd2adaeda343b25a368ea",
2069
- "reference": "a6ad58897a6d97cc2d2cd2adaeda343b25a368ea",
2070
- "shasum": ""
2071
- },
2072
- "suggest": {
2073
- "setasign/fpdf": "FPDI will extend this class but as it is also possible to use \"tecnickcom/tcpdf\" as an alternative there's no fixed dependency configured.",
2074
- "setasign/fpdi-fpdf": "Use this package to automatically evaluate dependencies to FPDF.",
2075
- "setasign/fpdi-tcpdf": "Use this package to automatically evaluate dependencies to TCPDF."
2076
- },
2077
- "type": "library",
2078
- "autoload": {
2079
- "classmap": [
2080
- "filters/",
2081
- "fpdi.php",
2082
- "fpdf_tpl.php",
2083
- "fpdi_pdf_parser.php",
2084
- "pdf_context.php"
2085
- ]
2086
- },
2087
- "notification-url": "https://packagist.org/downloads/",
2088
- "license": [
2089
- "MIT"
2090
- ],
2091
- "authors": [
2092
- {
2093
- "name": "Jan Slabon",
2094
- "email": "jan.slabon@setasign.com",
2095
- "homepage": "https://www.setasign.com"
2096
- }
2097
- ],
2098
- "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.",
2099
- "homepage": "https://www.setasign.com/fpdi",
2100
- "keywords": [
2101
- "fpdf",
2102
- "fpdi",
2103
- "pdf"
2104
- ],
2105
- "time": "2017-05-11T14:25:49+00:00"
2106
- },
2107
- {
2108
- "name": "squizlabs/php_codesniffer",
2109
- "version": "2.8.1",
2110
- "source": {
2111
- "type": "git",
2112
- "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
2113
- "reference": "d7cf0d894e8aa4c73712ee4a331cc1eaa37cdc7d"
2114
- },
2115
- "dist": {
2116
- "type": "zip",
2117
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/d7cf0d894e8aa4c73712ee4a331cc1eaa37cdc7d",
2118
- "reference": "d7cf0d894e8aa4c73712ee4a331cc1eaa37cdc7d",
2119
- "shasum": ""
2120
- },
2121
- "require": {
2122
- "ext-simplexml": "*",
2123
- "ext-tokenizer": "*",
2124
- "ext-xmlwriter": "*",
2125
- "php": ">=5.1.2"
2126
- },
2127
- "require-dev": {
2128
- "phpunit/phpunit": "~4.0"
2129
- },
2130
- "bin": [
2131
- "scripts/phpcs",
2132
- "scripts/phpcbf"
2133
- ],
2134
- "type": "library",
2135
- "extra": {
2136
- "branch-alias": {
2137
- "dev-master": "2.x-dev"
2138
- }
2139
- },
2140
- "autoload": {
2141
- "classmap": [
2142
- "CodeSniffer.php",
2143
- "CodeSniffer/CLI.php",
2144
- "CodeSniffer/Exception.php",
2145
- "CodeSniffer/File.php",
2146
- "CodeSniffer/Fixer.php",
2147
- "CodeSniffer/Report.php",
2148
- "CodeSniffer/Reporting.php",
2149
- "CodeSniffer/Sniff.php",
2150
- "CodeSniffer/Tokens.php",
2151
- "CodeSniffer/Reports/",
2152
- "CodeSniffer/Tokenizers/",
2153
- "CodeSniffer/DocGenerators/",
2154
- "CodeSniffer/Standards/AbstractPatternSniff.php",
2155
- "CodeSniffer/Standards/AbstractScopeSniff.php",
2156
- "CodeSniffer/Standards/AbstractVariableSniff.php",
2157
- "CodeSniffer/Standards/IncorrectPatternException.php",
2158
- "CodeSniffer/Standards/Generic/Sniffs/",
2159
- "CodeSniffer/Standards/MySource/Sniffs/",
2160
- "CodeSniffer/Standards/PEAR/Sniffs/",
2161
- "CodeSniffer/Standards/PSR1/Sniffs/",
2162
- "CodeSniffer/Standards/PSR2/Sniffs/",
2163
- "CodeSniffer/Standards/Squiz/Sniffs/",
2164
- "CodeSniffer/Standards/Zend/Sniffs/"
2165
- ]
2166
- },
2167
- "notification-url": "https://packagist.org/downloads/",
2168
- "license": [
2169
- "BSD-3-Clause"
2170
- ],
2171
- "authors": [
2172
- {
2173
- "name": "Greg Sherwood",
2174
- "role": "lead"
2175
- }
2176
- ],
2177
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
2178
- "homepage": "http://www.squizlabs.com/php-codesniffer",
2179
- "keywords": [
2180
- "phpcs",
2181
- "standards"
2182
- ],
2183
- "time": "2017-03-01T22:17:45+00:00"
2184
- },
2185
- {
2186
- "name": "symfony/console",
2187
- "version": "v4.0.3",
2188
- "source": {
2189
- "type": "git",
2190
- "url": "https://github.com/symfony/console.git",
2191
- "reference": "fe0e69d7162cba0885791cf7eea5f0d7bc0f897e"
2192
- },
2193
- "dist": {
2194
- "type": "zip",
2195
- "url": "https://api.github.com/repos/symfony/console/zipball/fe0e69d7162cba0885791cf7eea5f0d7bc0f897e",
2196
- "reference": "fe0e69d7162cba0885791cf7eea5f0d7bc0f897e",
2197
- "shasum": ""
2198
- },
2199
- "require": {
2200
- "php": "^7.1.3",
2201
- "symfony/polyfill-mbstring": "~1.0"
2202
- },
2203
- "conflict": {
2204
- "symfony/dependency-injection": "<3.4",
2205
- "symfony/process": "<3.3"
2206
- },
2207
- "require-dev": {
2208
- "psr/log": "~1.0",
2209
- "symfony/config": "~3.4|~4.0",
2210
- "symfony/dependency-injection": "~3.4|~4.0",
2211
- "symfony/event-dispatcher": "~3.4|~4.0",
2212
- "symfony/lock": "~3.4|~4.0",
2213
- "symfony/process": "~3.4|~4.0"
2214
- },
2215
- "suggest": {
2216
- "psr/log": "For using the console logger",
2217
- "symfony/event-dispatcher": "",
2218
- "symfony/lock": "",
2219
- "symfony/process": ""
2220
- },
2221
- "type": "library",
2222
- "extra": {
2223
- "branch-alias": {
2224
- "dev-master": "4.0-dev"
2225
- }
2226
- },
2227
- "autoload": {
2228
- "psr-4": {
2229
- "Symfony\\Component\\Console\\": ""
2230
- },
2231
- "exclude-from-classmap": [
2232
- "/Tests/"
2233
- ]
2234
- },
2235
- "notification-url": "https://packagist.org/downloads/",
2236
- "license": [
2237
- "MIT"
2238
- ],
2239
- "authors": [
2240
- {
2241
- "name": "Fabien Potencier",
2242
- "email": "fabien@symfony.com"
2243
- },
2244
- {
2245
- "name": "Symfony Community",
2246
- "homepage": "https://symfony.com/contributors"
2247
- }
2248
- ],
2249
- "description": "Symfony Console Component",
2250
- "homepage": "https://symfony.com",
2251
- "time": "2018-01-03T07:38:00+00:00"
2252
- },
2253
- {
2254
- "name": "symfony/event-dispatcher",
2255
- "version": "v4.0.3",
2256
- "source": {
2257
- "type": "git",
2258
- "url": "https://github.com/symfony/event-dispatcher.git",
2259
- "reference": "74d33aac36208c4d6757807d9f598f0133a3a4eb"
2260
- },
2261
- "dist": {
2262
- "type": "zip",
2263
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/74d33aac36208c4d6757807d9f598f0133a3a4eb",
2264
- "reference": "74d33aac36208c4d6757807d9f598f0133a3a4eb",
2265
- "shasum": ""
2266
- },
2267
- "require": {
2268
- "php": "^7.1.3"
2269
- },
2270
- "conflict": {
2271
- "symfony/dependency-injection": "<3.4"
2272
- },
2273
- "require-dev": {
2274
- "psr/log": "~1.0",
2275
- "symfony/config": "~3.4|~4.0",
2276
- "symfony/dependency-injection": "~3.4|~4.0",
2277
- "symfony/expression-language": "~3.4|~4.0",
2278
- "symfony/stopwatch": "~3.4|~4.0"
2279
- },
2280
- "suggest": {
2281
- "symfony/dependency-injection": "",
2282
- "symfony/http-kernel": ""
2283
- },
2284
- "type": "library",
2285
- "extra": {
2286
- "branch-alias": {
2287
- "dev-master": "4.0-dev"
2288
- }
2289
- },
2290
- "autoload": {
2291
- "psr-4": {
2292
- "Symfony\\Component\\EventDispatcher\\": ""
2293
- },
2294
- "exclude-from-classmap": [
2295
- "/Tests/"
2296
- ]
2297
- },
2298
- "notification-url": "https://packagist.org/downloads/",
2299
- "license": [
2300
- "MIT"
2301
- ],
2302
- "authors": [
2303
- {
2304
- "name": "Fabien Potencier",
2305
- "email": "fabien@symfony.com"
2306
- },
2307
- {
2308
- "name": "Symfony Community",
2309
- "homepage": "https://symfony.com/contributors"
2310
- }
2311
- ],
2312
- "description": "Symfony EventDispatcher Component",
2313
- "homepage": "https://symfony.com",
2314
- "time": "2018-01-03T07:38:00+00:00"
2315
- },
2316
- {
2317
- "name": "symfony/filesystem",
2318
- "version": "v4.0.3",
2319
- "source": {
2320
- "type": "git",
2321
- "url": "https://github.com/symfony/filesystem.git",
2322
- "reference": "760e47a4ee64b4c48f4b30017011e09d4c0f05ed"
2323
- },
2324
- "dist": {
2325
- "type": "zip",
2326
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/760e47a4ee64b4c48f4b30017011e09d4c0f05ed",
2327
- "reference": "760e47a4ee64b4c48f4b30017011e09d4c0f05ed",
2328
- "shasum": ""
2329
- },
2330
- "require": {
2331
- "php": "^7.1.3"
2332
- },
2333
- "type": "library",
2334
- "extra": {
2335
- "branch-alias": {
2336
- "dev-master": "4.0-dev"
2337
- }
2338
- },
2339
- "autoload": {
2340
- "psr-4": {
2341
- "Symfony\\Component\\Filesystem\\": ""
2342
- },
2343
- "exclude-from-classmap": [
2344
- "/Tests/"
2345
- ]
2346
- },
2347
- "notification-url": "https://packagist.org/downloads/",
2348
- "license": [
2349
- "MIT"
2350
- ],
2351
- "authors": [
2352
- {
2353
- "name": "Fabien Potencier",
2354
- "email": "fabien@symfony.com"
2355
- },
2356
- {
2357
- "name": "Symfony Community",
2358
- "homepage": "https://symfony.com/contributors"
2359
- }
2360
- ],
2361
- "description": "Symfony Filesystem Component",
2362
- "homepage": "https://symfony.com",
2363
- "time": "2018-01-03T07:38:00+00:00"
2364
- },
2365
- {
2366
- "name": "symfony/finder",
2367
- "version": "v4.0.3",
2368
- "source": {
2369
- "type": "git",
2370
- "url": "https://github.com/symfony/finder.git",
2371
- "reference": "8b08180f2b7ccb41062366b9ad91fbc4f1af8601"
2372
- },
2373
- "dist": {
2374
- "type": "zip",
2375
- "url": "https://api.github.com/repos/symfony/finder/zipball/8b08180f2b7ccb41062366b9ad91fbc4f1af8601",
2376
- "reference": "8b08180f2b7ccb41062366b9ad91fbc4f1af8601",
2377
- "shasum": ""
2378
- },
2379
- "require": {
2380
- "php": "^7.1.3"
2381
- },
2382
- "type": "library",
2383
- "extra": {
2384
- "branch-alias": {
2385
- "dev-master": "4.0-dev"
2386
- }
2387
- },
2388
- "autoload": {
2389
- "psr-4": {
2390
- "Symfony\\Component\\Finder\\": ""
2391
- },
2392
- "exclude-from-classmap": [
2393
- "/Tests/"
2394
- ]
2395
- },
2396
- "notification-url": "https://packagist.org/downloads/",
2397
- "license": [
2398
- "MIT"
2399
- ],
2400
- "authors": [
2401
- {
2402
- "name": "Fabien Potencier",
2403
- "email": "fabien@symfony.com"
2404
- },
2405
- {
2406
- "name": "Symfony Community",
2407
- "homepage": "https://symfony.com/contributors"
2408
- }
2409
- ],
2410
- "description": "Symfony Finder Component",
2411
- "homepage": "https://symfony.com",
2412
- "time": "2018-01-03T07:38:00+00:00"
2413
- },
2414
- {
2415
- "name": "symfony/options-resolver",
2416
- "version": "v4.0.3",
2417
- "source": {
2418
- "type": "git",
2419
- "url": "https://github.com/symfony/options-resolver.git",
2420
- "reference": "30d9240b30696a69e893534c9fc4a5c72ab6689b"
2421
- },
2422
- "dist": {
2423
- "type": "zip",
2424
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/30d9240b30696a69e893534c9fc4a5c72ab6689b",
2425
- "reference": "30d9240b30696a69e893534c9fc4a5c72ab6689b",
2426
- "shasum": ""
2427
- },
2428
- "require": {
2429
- "php": "^7.1.3"
2430
- },
2431
- "type": "library",
2432
- "extra": {
2433
- "branch-alias": {
2434
- "dev-master": "4.0-dev"
2435
- }
2436
- },
2437
- "autoload": {
2438
- "psr-4": {
2439
- "Symfony\\Component\\OptionsResolver\\": ""
2440
- },
2441
- "exclude-from-classmap": [
2442
- "/Tests/"
2443
- ]
2444
- },
2445
- "notification-url": "https://packagist.org/downloads/",
2446
- "license": [
2447
- "MIT"
2448
- ],
2449
- "authors": [
2450
- {
2451
- "name": "Fabien Potencier",
2452
- "email": "fabien@symfony.com"
2453
- },
2454
- {
2455
- "name": "Symfony Community",
2456
- "homepage": "https://symfony.com/contributors"
2457
- }
2458
- ],
2459
- "description": "Symfony OptionsResolver Component",
2460
- "homepage": "https://symfony.com",
2461
- "keywords": [
2462
- "config",
2463
- "configuration",
2464
- "options"
2465
- ],
2466
- "time": "2018-01-03T07:38:00+00:00"
2467
- },
2468
- {
2469
- "name": "symfony/polyfill-mbstring",
2470
- "version": "v1.6.0",
2471
- "source": {
2472
- "type": "git",
2473
- "url": "https://github.com/symfony/polyfill-mbstring.git",
2474
- "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
2475
- },
2476
- "dist": {
2477
- "type": "zip",
2478
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
2479
- "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
2480
- "shasum": ""
2481
- },
2482
- "require": {
2483
- "php": ">=5.3.3"
2484
- },
2485
- "suggest": {
2486
- "ext-mbstring": "For best performance"
2487
- },
2488
- "type": "library",
2489
- "extra": {
2490
- "branch-alias": {
2491
- "dev-master": "1.6-dev"
2492
- }
2493
- },
2494
- "autoload": {
2495
- "psr-4": {
2496
- "Symfony\\Polyfill\\Mbstring\\": ""
2497
- },
2498
- "files": [
2499
- "bootstrap.php"
2500
- ]
2501
- },
2502
- "notification-url": "https://packagist.org/downloads/",
2503
- "license": [
2504
- "MIT"
2505
- ],
2506
- "authors": [
2507
- {
2508
- "name": "Nicolas Grekas",
2509
- "email": "p@tchwork.com"
2510
- },
2511
- {
2512
- "name": "Symfony Community",
2513
- "homepage": "https://symfony.com/contributors"
2514
- }
2515
- ],
2516
- "description": "Symfony polyfill for the Mbstring extension",
2517
- "homepage": "https://symfony.com",
2518
- "keywords": [
2519
- "compatibility",
2520
- "mbstring",
2521
- "polyfill",
2522
- "portable",
2523
- "shim"
2524
- ],
2525
- "time": "2017-10-11T12:05:26+00:00"
2526
- },
2527
- {
2528
- "name": "symfony/polyfill-php54",
2529
- "version": "v1.3.0",
2530
- "source": {
2531
- "type": "git",
2532
- "url": "https://github.com/symfony/polyfill-php54.git",
2533
- "reference": "90e085822963fdcc9d1c5b73deb3d2e5783b16a0"
2534
- },
2535
- "dist": {
2536
- "type": "zip",
2537
- "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/90e085822963fdcc9d1c5b73deb3d2e5783b16a0",
2538
- "reference": "90e085822963fdcc9d1c5b73deb3d2e5783b16a0",
2539
- "shasum": ""
2540
- },
2541
- "require": {
2542
- "php": ">=5.3.3"
2543
- },
2544
- "type": "library",
2545
- "extra": {
2546
- "branch-alias": {
2547
- "dev-master": "1.3-dev"
2548
- }
2549
- },
2550
- "autoload": {
2551
- "psr-4": {
2552
- "Symfony\\Polyfill\\Php54\\": ""
2553
- },
2554
- "files": [
2555
- "bootstrap.php"
2556
- ],
2557
- "classmap": [
2558
- "Resources/stubs"
2559
- ]
2560
- },
2561
- "notification-url": "https://packagist.org/downloads/",
2562
- "license": [
2563
- "MIT"
2564
- ],
2565
- "authors": [
2566
- {
2567
- "name": "Nicolas Grekas",
2568
- "email": "p@tchwork.com"
2569
- },
2570
- {
2571
- "name": "Symfony Community",
2572
- "homepage": "https://symfony.com/contributors"
2573
- }
2574
- ],
2575
- "description": "Symfony polyfill backporting some PHP 5.4+ features to lower PHP versions",
2576
- "homepage": "https://symfony.com",
2577
- "keywords": [
2578
- "compatibility",
2579
- "polyfill",
2580
- "portable",
2581
- "shim"
2582
- ],
2583
- "time": "2016-11-14T01:06:16+00:00"
2584
- },
2585
- {
2586
- "name": "symfony/polyfill-php55",
2587
- "version": "v1.3.0",
2588
- "source": {
2589
- "type": "git",
2590
- "url": "https://github.com/symfony/polyfill-php55.git",
2591
- "reference": "03e3f0350bca2220e3623a0e340eef194405fc67"
2592
- },
2593
- "dist": {
2594
- "type": "zip",
2595
- "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/03e3f0350bca2220e3623a0e340eef194405fc67",
2596
- "reference": "03e3f0350bca2220e3623a0e340eef194405fc67",
2597
- "shasum": ""
2598
- },
2599
- "require": {
2600
- "ircmaxell/password-compat": "~1.0",
2601
- "php": ">=5.3.3"
2602
- },
2603
- "type": "library",
2604
- "extra": {
2605
- "branch-alias": {
2606
- "dev-master": "1.3-dev"
2607
- }
2608
- },
2609
- "autoload": {
2610
- "psr-4": {
2611
- "Symfony\\Polyfill\\Php55\\": ""
2612
- },
2613
- "files": [
2614
- "bootstrap.php"
2615
- ]
2616
- },
2617
- "notification-url": "https://packagist.org/downloads/",
2618
- "license": [
2619
- "MIT"
2620
- ],
2621
- "authors": [
2622
- {
2623
- "name": "Nicolas Grekas",
2624
- "email": "p@tchwork.com"
2625
- },
2626
- {
2627
- "name": "Symfony Community",
2628
- "homepage": "https://symfony.com/contributors"
2629
- }
2630
- ],
2631
- "description": "Symfony polyfill backporting some PHP 5.5+ features to lower PHP versions",
2632
- "homepage": "https://symfony.com",
2633
- "keywords": [
2634
- "compatibility",
2635
- "polyfill",
2636
- "portable",
2637
- "shim"
2638
- ],
2639
- "time": "2016-11-14T01:06:16+00:00"
2640
- },
2641
- {
2642
- "name": "symfony/polyfill-php70",
2643
- "version": "v1.6.0",
2644
- "source": {
2645
- "type": "git",
2646
- "url": "https://github.com/symfony/polyfill-php70.git",
2647
- "reference": "0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff"
2648
- },
2649
- "dist": {
2650
- "type": "zip",
2651
- "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff",
2652
- "reference": "0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff",
2653
- "shasum": ""
2654
- },
2655
- "require": {
2656
- "paragonie/random_compat": "~1.0|~2.0",
2657
- "php": ">=5.3.3"
2658
- },
2659
- "type": "library",
2660
- "extra": {
2661
- "branch-alias": {
2662
- "dev-master": "1.6-dev"
2663
- }
2664
- },
2665
- "autoload": {
2666
- "psr-4": {
2667
- "Symfony\\Polyfill\\Php70\\": ""
2668
- },
2669
- "files": [
2670
- "bootstrap.php"
2671
- ],
2672
- "classmap": [
2673
- "Resources/stubs"
2674
- ]
2675
- },
2676
- "notification-url": "https://packagist.org/downloads/",
2677
- "license": [
2678
- "MIT"
2679
- ],
2680
- "authors": [
2681
- {
2682
- "name": "Nicolas Grekas",
2683
- "email": "p@tchwork.com"
2684
- },
2685
- {
2686
- "name": "Symfony Community",
2687
- "homepage": "https://symfony.com/contributors"
2688
- }
2689
- ],
2690
- "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
2691
- "homepage": "https://symfony.com",
2692
- "keywords": [
2693
- "compatibility",
2694
- "polyfill",
2695
- "portable",
2696
- "shim"
2697
- ],
2698
- "time": "2017-10-11T12:05:26+00:00"
2699
- },
2700
- {
2701
- "name": "symfony/polyfill-php72",
2702
- "version": "v1.6.0",
2703
- "source": {
2704
- "type": "git",
2705
- "url": "https://github.com/symfony/polyfill-php72.git",
2706
- "reference": "6de4f4884b97abbbed9f0a84a95ff2ff77254254"
2707
- },
2708
- "dist": {
2709
- "type": "zip",
2710
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/6de4f4884b97abbbed9f0a84a95ff2ff77254254",
2711
- "reference": "6de4f4884b97abbbed9f0a84a95ff2ff77254254",
2712
- "shasum": ""
2713
- },
2714
- "require": {
2715
- "php": ">=5.3.3"
2716
- },
2717
- "type": "library",
2718
- "extra": {
2719
- "branch-alias": {
2720
- "dev-master": "1.6-dev"
2721
- }
2722
- },
2723
- "autoload": {
2724
- "psr-4": {
2725
- "Symfony\\Polyfill\\Php72\\": ""
2726
- },
2727
- "files": [
2728
- "bootstrap.php"
2729
- ]
2730
- },
2731
- "notification-url": "https://packagist.org/downloads/",
2732
- "license": [
2733
- "MIT"
2734
- ],
2735
- "authors": [
2736
- {
2737
- "name": "Nicolas Grekas",
2738
- "email": "p@tchwork.com"
2739
- },
2740
- {
2741
- "name": "Symfony Community",
2742
- "homepage": "https://symfony.com/contributors"
2743
- }
2744
- ],
2745
- "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
2746
- "homepage": "https://symfony.com",
2747
- "keywords": [
2748
- "compatibility",
2749
- "polyfill",
2750
- "portable",
2751
- "shim"
2752
- ],
2753
- "time": "2017-10-11T12:05:26+00:00"
2754
- },
2755
- {
2756
- "name": "symfony/polyfill-xml",
2757
- "version": "v1.3.0",
2758
- "source": {
2759
- "type": "git",
2760
- "url": "https://github.com/symfony/polyfill-xml.git",
2761
- "reference": "64b6a864f18ab4fddad49f5025f805f6781dfabd"
2762
- },
2763
- "dist": {
2764
- "type": "zip",
2765
- "url": "https://api.github.com/repos/symfony/polyfill-xml/zipball/64b6a864f18ab4fddad49f5025f805f6781dfabd",
2766
- "reference": "64b6a864f18ab4fddad49f5025f805f6781dfabd",
2767
- "shasum": ""
2768
- },
2769
- "require": {
2770
- "php": ">=5.3.3"
2771
- },
2772
- "suggest": {
2773
- "ext-xml": "For best performance"
2774
- },
2775
- "type": "library",
2776
- "extra": {
2777
- "branch-alias": {
2778
- "dev-master": "1.3-dev"
2779
- }
2780
- },
2781
- "autoload": {
2782
- "psr-4": {
2783
- "Symfony\\Polyfill\\Xml\\": ""
2784
- },
2785
- "files": [
2786
- "bootstrap.php"
2787
- ]
2788
- },
2789
- "notification-url": "https://packagist.org/downloads/",
2790
- "license": [
2791
- "MIT"
2792
- ],
2793
- "authors": [
2794
- {
2795
- "name": "Nicolas Grekas",
2796
- "email": "p@tchwork.com"
2797
- },
2798
- {
2799
- "name": "Symfony Community",
2800
- "homepage": "https://symfony.com/contributors"
2801
- }
2802
- ],
2803
- "description": "Symfony polyfill for xml's utf8_encode and utf8_decode functions",
2804
- "homepage": "https://symfony.com",
2805
- "keywords": [
2806
- "compatibility",
2807
- "polyfill",
2808
- "portable",
2809
- "shim"
2810
- ],
2811
- "time": "2016-11-14T01:06:16+00:00"
2812
- },
2813
- {
2814
- "name": "symfony/process",
2815
- "version": "v4.0.3",
2816
- "source": {
2817
- "type": "git",
2818
- "url": "https://github.com/symfony/process.git",
2819
- "reference": "2145b3e8137e463b1051b79440a59b38220944f0"
2820
- },
2821
- "dist": {
2822
- "type": "zip",
2823
- "url": "https://api.github.com/repos/symfony/process/zipball/2145b3e8137e463b1051b79440a59b38220944f0",
2824
- "reference": "2145b3e8137e463b1051b79440a59b38220944f0",
2825
- "shasum": ""
2826
- },
2827
- "require": {
2828
- "php": "^7.1.3"
2829
- },
2830
- "type": "library",
2831
- "extra": {
2832
- "branch-alias": {
2833
- "dev-master": "4.0-dev"
2834
- }
2835
- },
2836
- "autoload": {
2837
- "psr-4": {
2838
- "Symfony\\Component\\Process\\": ""
2839
- },
2840
- "exclude-from-classmap": [
2841
- "/Tests/"
2842
- ]
2843
- },
2844
- "notification-url": "https://packagist.org/downloads/",
2845
- "license": [
2846
- "MIT"
2847
- ],
2848
- "authors": [
2849
- {
2850
- "name": "Fabien Potencier",
2851
- "email": "fabien@symfony.com"
2852
- },
2853
- {
2854
- "name": "Symfony Community",
2855
- "homepage": "https://symfony.com/contributors"
2856
- }
2857
- ],
2858
- "description": "Symfony Process Component",
2859
- "homepage": "https://symfony.com",
2860
- "time": "2018-01-03T07:38:00+00:00"
2861
- },
2862
- {
2863
- "name": "symfony/stopwatch",
2864
- "version": "v4.0.3",
2865
- "source": {
2866
- "type": "git",
2867
- "url": "https://github.com/symfony/stopwatch.git",
2868
- "reference": "d52321f0e2b596bd03b5d1dd6eebe71caa925704"
2869
- },
2870
- "dist": {
2871
- "type": "zip",
2872
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/d52321f0e2b596bd03b5d1dd6eebe71caa925704",
2873
- "reference": "d52321f0e2b596bd03b5d1dd6eebe71caa925704",
2874
- "shasum": ""
2875
- },
2876
- "require": {
2877
- "php": "^7.1.3"
2878
- },
2879
- "type": "library",
2880
- "extra": {
2881
- "branch-alias": {
2882
- "dev-master": "4.0-dev"
2883
- }
2884
- },
2885
- "autoload": {
2886
- "psr-4": {
2887
- "Symfony\\Component\\Stopwatch\\": ""
2888
- },
2889
- "exclude-from-classmap": [
2890
- "/Tests/"
2891
- ]
2892
- },
2893
- "notification-url": "https://packagist.org/downloads/",
2894
- "license": [
2895
- "MIT"
2896
- ],
2897
- "authors": [
2898
- {
2899
- "name": "Fabien Potencier",
2900
- "email": "fabien@symfony.com"
2901
- },
2902
- {
2903
- "name": "Symfony Community",
2904
- "homepage": "https://symfony.com/contributors"
2905
- }
2906
- ],
2907
- "description": "Symfony Stopwatch Component",
2908
- "homepage": "https://symfony.com",
2909
- "time": "2018-01-03T07:38:00+00:00"
2910
- },
2911
- {
2912
- "name": "symfony/yaml",
2913
- "version": "v3.2.6",
2914
- "source": {
2915
- "type": "git",
2916
- "url": "https://github.com/symfony/yaml.git",
2917
- "reference": "093e416ad096355149e265ea2e4cc1f9ee40ab1a"
2918
- },
2919
- "dist": {
2920
- "type": "zip",
2921
- "url": "https://api.github.com/repos/symfony/yaml/zipball/093e416ad096355149e265ea2e4cc1f9ee40ab1a",
2922
- "reference": "093e416ad096355149e265ea2e4cc1f9ee40ab1a",
2923
- "shasum": ""
2924
- },
2925
- "require": {
2926
- "php": ">=5.5.9"
2927
- },
2928
- "require-dev": {
2929
- "symfony/console": "~2.8|~3.0"
2930
- },
2931
- "suggest": {
2932
- "symfony/console": "For validating YAML files using the lint command"
2933
- },
2934
- "type": "library",
2935
- "extra": {
2936
- "branch-alias": {
2937
- "dev-master": "3.2-dev"
2938
- }
2939
- },
2940
- "autoload": {
2941
- "psr-4": {
2942
- "Symfony\\Component\\Yaml\\": ""
2943
- },
2944
- "exclude-from-classmap": [
2945
- "/Tests/"
2946
- ]
2947
- },
2948
- "notification-url": "https://packagist.org/downloads/",
2949
- "license": [
2950
- "MIT"
2951
- ],
2952
- "authors": [
2953
- {
2954
- "name": "Fabien Potencier",
2955
- "email": "fabien@symfony.com"
2956
- },
2957
- {
2958
- "name": "Symfony Community",
2959
- "homepage": "https://symfony.com/contributors"
2960
- }
2961
- ],
2962
- "description": "Symfony Yaml Component",
2963
- "homepage": "https://symfony.com",
2964
- "time": "2017-03-07T16:47:02+00:00"
2965
- },
2966
- {
2967
- "name": "tecnickcom/tcpdf",
2968
- "version": "6.2.12",
2969
- "source": {
2970
- "type": "git",
2971
- "url": "https://github.com/tecnickcom/TCPDF.git",
2972
- "reference": "2f732eaa91b5665274689b1d40b285a7bacdc37f"
2973
- },
2974
- "dist": {
2975
- "type": "zip",
2976
- "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/2f732eaa91b5665274689b1d40b285a7bacdc37f",
2977
- "reference": "2f732eaa91b5665274689b1d40b285a7bacdc37f",
2978
- "shasum": ""
2979
- },
2980
- "require": {
2981
- "php": ">=5.3.0"
2982
- },
2983
- "type": "library",
2984
- "autoload": {
2985
- "classmap": [
2986
- "fonts",
2987
- "config",
2988
- "include",
2989
- "tcpdf.php",
2990
- "tcpdf_parser.php",
2991
- "tcpdf_import.php",
2992
- "tcpdf_barcodes_1d.php",
2993
- "tcpdf_barcodes_2d.php",
2994
- "include/tcpdf_colors.php",
2995
- "include/tcpdf_filters.php",
2996
- "include/tcpdf_font_data.php",
2997
- "include/tcpdf_fonts.php",
2998
- "include/tcpdf_images.php",
2999
- "include/tcpdf_static.php",
3000
- "include/barcodes/datamatrix.php",
3001
- "include/barcodes/pdf417.php",
3002
- "include/barcodes/qrcode.php"
3003
- ]
3004
- },
3005
- "notification-url": "https://packagist.org/downloads/",
3006
- "license": [
3007
- "LGPLv3"
3008
- ],
3009
- "authors": [
3010
- {
3011
- "name": "Nicola Asuni",
3012
- "email": "info@tecnick.com",
3013
- "homepage": "http://nicolaasuni.tecnick.com"
3014
- }
3015
- ],
3016
- "description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
3017
- "homepage": "http://www.tcpdf.org/",
3018
- "keywords": [
3019
- "PDFD32000-2008",
3020
- "TCPDF",
3021
- "barcodes",
3022
- "datamatrix",
3023
- "pdf",
3024
- "pdf417",
3025
- "qrcode"
3026
- ],
3027
- "time": "2015-09-12T10:08:34+00:00"
3028
- },
3029
- {
3030
- "name": "webmozart/assert",
3031
- "version": "1.2.0",
3032
- "source": {
3033
- "type": "git",
3034
- "url": "https://github.com/webmozart/assert.git",
3035
- "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f"
3036
- },
3037
- "dist": {
3038
- "type": "zip",
3039
- "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f",
3040
- "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f",
3041
- "shasum": ""
3042
- },
3043
- "require": {
3044
- "php": "^5.3.3 || ^7.0"
3045
- },
3046
- "require-dev": {
3047
- "phpunit/phpunit": "^4.6",
3048
- "sebastian/version": "^1.0.1"
3049
- },
3050
- "type": "library",
3051
- "extra": {
3052
- "branch-alias": {
3053
- "dev-master": "1.3-dev"
3054
- }
3055
- },
3056
- "autoload": {
3057
- "psr-4": {
3058
- "Webmozart\\Assert\\": "src/"
3059
- }
3060
- },
3061
- "notification-url": "https://packagist.org/downloads/",
3062
- "license": [
3063
- "MIT"
3064
- ],
3065
- "authors": [
3066
- {
3067
- "name": "Bernhard Schussek",
3068
- "email": "bschussek@gmail.com"
3069
- }
3070
- ],
3071
- "description": "Assertions to validate method input/output with nice error messages.",
3072
- "keywords": [
3073
- "assert",
3074
- "check",
3075
- "validate"
3076
- ],
3077
- "time": "2016-11-23T20:04:58+00:00"
3078
- }
3079
- ],
3080
- "aliases": [],
3081
- "minimum-stability": "stable",
3082
- "stability-flags": {
3083
- "friendsofphp/php-cs-fixer": 0
3084
- },
3085
- "prefer-stable": false,
3086
- "prefer-lowest": false,
3087
- "platform": {
3088
- "php": "^5.6|^7.0",
3089
- "ext-ctype": "*",
3090
- "ext-dom": "*",
3091
- "ext-gd": "*",
3092
- "ext-iconv": "*",
3093
- "ext-libxml": "*",
3094
- "ext-mbstring": "*",
3095
- "ext-simplexml": "*",
3096
- "ext-xml": "*",
3097
- "ext-xmlreader": "*",
3098
- "ext-xmlwriter": "*",
3099
- "ext-zip": "*",
3100
- "ext-zlib": "*"
3101
- },
3102
- "platform-dev": []
3103
- }
1
+ {
2
+ "_readme": [
3
+ "This file locks the dependencies of your project to a known state",
4
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
+ "This file is @generated automatically"
6
+ ],
7
+ "content-hash": "e61a906bd83393400add286703f10557",
8
+ "packages": [
9
+ {
10
+ "name": "psr/simple-cache",
11
+ "version": "1.0.0",
12
+ "source": {
13
+ "type": "git",
14
+ "url": "https://github.com/php-fig/simple-cache.git",
15
+ "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24"
16
+ },
17
+ "dist": {
18
+ "type": "zip",
19
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/753fa598e8f3b9966c886fe13f370baa45ef0e24",
20
+ "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24",
21
+ "shasum": ""
22
+ },
23
+ "require": {
24
+ "php": ">=5.3.0"
25
+ },
26
+ "type": "library",
27
+ "extra": {
28
+ "branch-alias": {
29
+ "dev-master": "1.0.x-dev"
30
+ }
31
+ },
32
+ "autoload": {
33
+ "psr-4": {
34
+ "Psr\\SimpleCache\\": "src/"
35
+ }
36
+ },
37
+ "notification-url": "https://packagist.org/downloads/",
38
+ "license": [
39
+ "MIT"
40
+ ],
41
+ "authors": [
42
+ {
43
+ "name": "PHP-FIG",
44
+ "homepage": "http://www.php-fig.org/"
45
+ }
46
+ ],
47
+ "description": "Common interfaces for simple caching",
48
+ "keywords": [
49
+ "cache",
50
+ "caching",
51
+ "psr",
52
+ "psr-16",
53
+ "simple-cache"
54
+ ],
55
+ "time": "2017-01-02T13:31:39+00:00"
56
+ }
57
+ ],
58
+ "packages-dev": [
59
+ {
60
+ "name": "composer/semver",
61
+ "version": "1.4.2",
62
+ "source": {
63
+ "type": "git",
64
+ "url": "https://github.com/composer/semver.git",
65
+ "reference": "c7cb9a2095a074d131b65a8a0cd294479d785573"
66
+ },
67
+ "dist": {
68
+ "type": "zip",
69
+ "url": "https://api.github.com/repos/composer/semver/zipball/c7cb9a2095a074d131b65a8a0cd294479d785573",
70
+ "reference": "c7cb9a2095a074d131b65a8a0cd294479d785573",
71
+ "shasum": ""
72
+ },
73
+ "require": {
74
+ "php": "^5.3.2 || ^7.0"
75
+ },
76
+ "require-dev": {
77
+ "phpunit/phpunit": "^4.5 || ^5.0.5",
78
+ "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0"
79
+ },
80
+ "type": "library",
81
+ "extra": {
82
+ "branch-alias": {
83
+ "dev-master": "1.x-dev"
84
+ }
85
+ },
86
+ "autoload": {
87
+ "psr-4": {
88
+ "Composer\\Semver\\": "src"
89
+ }
90
+ },
91
+ "notification-url": "https://packagist.org/downloads/",
92
+ "license": [
93
+ "MIT"
94
+ ],
95
+ "authors": [
96
+ {
97
+ "name": "Nils Adermann",
98
+ "email": "naderman@naderman.de",
99
+ "homepage": "http://www.naderman.de"
100
+ },
101
+ {
102
+ "name": "Jordi Boggiano",
103
+ "email": "j.boggiano@seld.be",
104
+ "homepage": "http://seld.be"
105
+ },
106
+ {
107
+ "name": "Rob Bast",
108
+ "email": "rob.bast@gmail.com",
109
+ "homepage": "http://robbast.nl"
110
+ }
111
+ ],
112
+ "description": "Semver library that offers utilities, version constraint parsing and validation.",
113
+ "keywords": [
114
+ "semantic",
115
+ "semver",
116
+ "validation",
117
+ "versioning"
118
+ ],
119
+ "time": "2016-08-30T16:08:34+00:00"
120
+ },
121
+ {
122
+ "name": "doctrine/annotations",
123
+ "version": "v1.6.0",
124
+ "source": {
125
+ "type": "git",
126
+ "url": "https://github.com/doctrine/annotations.git",
127
+ "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5"
128
+ },
129
+ "dist": {
130
+ "type": "zip",
131
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5",
132
+ "reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5",
133
+ "shasum": ""
134
+ },
135
+ "require": {
136
+ "doctrine/lexer": "1.*",
137
+ "php": "^7.1"
138
+ },
139
+ "require-dev": {
140
+ "doctrine/cache": "1.*",
141
+ "phpunit/phpunit": "^6.4"
142
+ },
143
+ "type": "library",
144
+ "extra": {
145
+ "branch-alias": {
146
+ "dev-master": "1.6.x-dev"
147
+ }
148
+ },
149
+ "autoload": {
150
+ "psr-4": {
151
+ "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
152
+ }
153
+ },
154
+ "notification-url": "https://packagist.org/downloads/",
155
+ "license": [
156
+ "MIT"
157
+ ],
158
+ "authors": [
159
+ {
160
+ "name": "Roman Borschel",
161
+ "email": "roman@code-factory.org"
162
+ },
163
+ {
164
+ "name": "Benjamin Eberlei",
165
+ "email": "kontakt@beberlei.de"
166
+ },
167
+ {
168
+ "name": "Guilherme Blanco",
169
+ "email": "guilhermeblanco@gmail.com"
170
+ },
171
+ {
172
+ "name": "Jonathan Wage",
173
+ "email": "jonwage@gmail.com"
174
+ },
175
+ {
176
+ "name": "Johannes Schmitt",
177
+ "email": "schmittjoh@gmail.com"
178
+ }
179
+ ],
180
+ "description": "Docblock Annotations Parser",
181
+ "homepage": "http://www.doctrine-project.org",
182
+ "keywords": [
183
+ "annotations",
184
+ "docblock",
185
+ "parser"
186
+ ],
187
+ "time": "2017-12-06T07:11:42+00:00"
188
+ },
189
+ {
190
+ "name": "doctrine/instantiator",
191
+ "version": "1.0.5",
192
+ "source": {
193
+ "type": "git",
194
+ "url": "https://github.com/doctrine/instantiator.git",
195
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
196
+ },
197
+ "dist": {
198
+ "type": "zip",
199
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
200
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
201
+ "shasum": ""
202
+ },
203
+ "require": {
204
+ "php": ">=5.3,<8.0-DEV"
205
+ },
206
+ "require-dev": {
207
+ "athletic/athletic": "~0.1.8",
208
+ "ext-pdo": "*",
209
+ "ext-phar": "*",
210
+ "phpunit/phpunit": "~4.0",
211
+ "squizlabs/php_codesniffer": "~2.0"
212
+ },
213
+ "type": "library",
214
+ "extra": {
215
+ "branch-alias": {
216
+ "dev-master": "1.0.x-dev"
217
+ }
218
+ },
219
+ "autoload": {
220
+ "psr-4": {
221
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
222
+ }
223
+ },
224
+ "notification-url": "https://packagist.org/downloads/",
225
+ "license": [
226
+ "MIT"
227
+ ],
228
+ "authors": [
229
+ {
230
+ "name": "Marco Pivetta",
231
+ "email": "ocramius@gmail.com",
232
+ "homepage": "http://ocramius.github.com/"
233
+ }
234
+ ],
235
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
236
+ "homepage": "https://github.com/doctrine/instantiator",
237
+ "keywords": [
238
+ "constructor",
239
+ "instantiate"
240
+ ],
241
+ "time": "2015-06-14T21:17:01+00:00"
242
+ },
243
+ {
244
+ "name": "doctrine/lexer",
245
+ "version": "v1.0.1",
246
+ "source": {
247
+ "type": "git",
248
+ "url": "https://github.com/doctrine/lexer.git",
249
+ "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
250
+ },
251
+ "dist": {
252
+ "type": "zip",
253
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
254
+ "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
255
+ "shasum": ""
256
+ },
257
+ "require": {
258
+ "php": ">=5.3.2"
259
+ },
260
+ "type": "library",
261
+ "extra": {
262
+ "branch-alias": {
263
+ "dev-master": "1.0.x-dev"
264
+ }
265
+ },
266
+ "autoload": {
267
+ "psr-0": {
268
+ "Doctrine\\Common\\Lexer\\": "lib/"
269
+ }
270
+ },
271
+ "notification-url": "https://packagist.org/downloads/",
272
+ "license": [
273
+ "MIT"
274
+ ],
275
+ "authors": [
276
+ {
277
+ "name": "Roman Borschel",
278
+ "email": "roman@code-factory.org"
279
+ },
280
+ {
281
+ "name": "Guilherme Blanco",
282
+ "email": "guilhermeblanco@gmail.com"
283
+ },
284
+ {
285
+ "name": "Johannes Schmitt",
286
+ "email": "schmittjoh@gmail.com"
287
+ }
288
+ ],
289
+ "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
290
+ "homepage": "http://www.doctrine-project.org",
291
+ "keywords": [
292
+ "lexer",
293
+ "parser"
294
+ ],
295
+ "time": "2014-09-09T13:34:57+00:00"
296
+ },
297
+ {
298
+ "name": "dompdf/dompdf",
299
+ "version": "v0.8.0",
300
+ "source": {
301
+ "type": "git",
302
+ "url": "https://github.com/dompdf/dompdf.git",
303
+ "reference": "0f418c6b58fdeafc2a0e80eb1fa5e644e185089c"
304
+ },
305
+ "dist": {
306
+ "type": "zip",
307
+ "url": "https://api.github.com/repos/dompdf/dompdf/zipball/0f418c6b58fdeafc2a0e80eb1fa5e644e185089c",
308
+ "reference": "0f418c6b58fdeafc2a0e80eb1fa5e644e185089c",
309
+ "shasum": ""
310
+ },
311
+ "require": {
312
+ "ext-dom": "*",
313
+ "ext-gd": "*",
314
+ "ext-mbstring": "*",
315
+ "phenx/php-font-lib": "0.5.*",
316
+ "phenx/php-svg-lib": "0.2.*",
317
+ "php": ">=5.3.0"
318
+ },
319
+ "require-dev": {
320
+ "phpunit/phpunit": "4.8.*",
321
+ "squizlabs/php_codesniffer": "2.*"
322
+ },
323
+ "type": "library",
324
+ "extra": {
325
+ "branch-alias": {
326
+ "dev-develop": "0.7-dev"
327
+ }
328
+ },
329
+ "autoload": {
330
+ "psr-4": {
331
+ "Dompdf\\": "src/"
332
+ },
333
+ "classmap": [
334
+ "lib/"
335
+ ]
336
+ },
337
+ "notification-url": "https://packagist.org/downloads/",
338
+ "license": [
339
+ "LGPL-2.1"
340
+ ],
341
+ "authors": [
342
+ {
343
+ "name": "Fabien Ménager",
344
+ "email": "fabien.menager@gmail.com"
345
+ },
346
+ {
347
+ "name": "Brian Sweeney",
348
+ "email": "eclecticgeek@gmail.com"
349
+ },
350
+ {
351
+ "name": "Gabriel Bull",
352
+ "email": "me@gabrielbull.com"
353
+ }
354
+ ],
355
+ "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter",
356
+ "homepage": "https://github.com/dompdf/dompdf",
357
+ "time": "2017-02-16T02:40:40+00:00"
358
+ },
359
+ {
360
+ "name": "friendsofphp/php-cs-fixer",
361
+ "version": "v2.10.0",
362
+ "source": {
363
+ "type": "git",
364
+ "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
365
+ "reference": "513a3765b56dd029175f9f32995566657ee89dda"
366
+ },
367
+ "dist": {
368
+ "type": "zip",
369
+ "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/513a3765b56dd029175f9f32995566657ee89dda",
370
+ "reference": "513a3765b56dd029175f9f32995566657ee89dda",
371
+ "shasum": ""
372
+ },
373
+ "require": {
374
+ "composer/semver": "^1.4",
375
+ "doctrine/annotations": "^1.2",
376
+ "ext-json": "*",
377
+ "ext-tokenizer": "*",
378
+ "gecko-packages/gecko-php-unit": "^2.0 || ^3.0",
379
+ "php": "^5.6 || >=7.0 <7.3",
380
+ "php-cs-fixer/diff": "^1.2",
381
+ "symfony/console": "^3.2 || ^4.0",
382
+ "symfony/event-dispatcher": "^3.0 || ^4.0",
383
+ "symfony/filesystem": "^3.0 || ^4.0",
384
+ "symfony/finder": "^3.0 || ^4.0",
385
+ "symfony/options-resolver": "^3.0 || ^4.0",
386
+ "symfony/polyfill-php70": "^1.0",
387
+ "symfony/polyfill-php72": "^1.4",
388
+ "symfony/process": "^3.0 || ^4.0",
389
+ "symfony/stopwatch": "^3.0 || ^4.0"
390
+ },
391
+ "conflict": {
392
+ "hhvm": "*"
393
+ },
394
+ "require-dev": {
395
+ "johnkary/phpunit-speedtrap": "^1.1 || ^2.0@dev",
396
+ "justinrainbow/json-schema": "^5.0",
397
+ "keradus/cli-executor": "^1.0",
398
+ "mikey179/vfsstream": "^1.6",
399
+ "php-coveralls/php-coveralls": "^2.0",
400
+ "php-cs-fixer/accessible-object": "^1.0",
401
+ "phpunit/phpunit": "^5.7.23 || ^6.4.3",
402
+ "phpunitgoodpractices/traits": "^1.0",
403
+ "symfony/phpunit-bridge": "^3.2.2 || ^4.0"
404
+ },
405
+ "suggest": {
406
+ "ext-mbstring": "For handling non-UTF8 characters in cache signature.",
407
+ "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible."
408
+ },
409
+ "bin": [
410
+ "php-cs-fixer"
411
+ ],
412
+ "type": "application",
413
+ "extra": {
414
+ "branch-alias": {
415
+ "dev-master": "2.10-dev"
416
+ }
417
+ },
418
+ "autoload": {
419
+ "psr-4": {
420
+ "PhpCsFixer\\": "src/"
421
+ },
422
+ "classmap": [
423
+ "tests/Test/AbstractFixerTestCase.php",
424
+ "tests/Test/AbstractIntegrationTestCase.php",
425
+ "tests/Test/Assert/AssertTokensTrait.php",
426
+ "tests/Test/IntegrationCase.php",
427
+ "tests/Test/IntegrationCaseFactory.php",
428
+ "tests/TestCase.php"
429
+ ]
430
+ },
431
+ "notification-url": "https://packagist.org/downloads/",
432
+ "license": [
433
+ "MIT"
434
+ ],
435
+ "authors": [
436
+ {
437
+ "name": "Dariusz Rumiński",
438
+ "email": "dariusz.ruminski@gmail.com"
439
+ },
440
+ {
441
+ "name": "Fabien Potencier",
442
+ "email": "fabien@symfony.com"
443
+ }
444
+ ],
445
+ "description": "A tool to automatically fix PHP code style",
446
+ "time": "2018-01-10T17:16:15+00:00"
447
+ },
448
+ {
449
+ "name": "gecko-packages/gecko-php-unit",
450
+ "version": "v3.0",
451
+ "source": {
452
+ "type": "git",
453
+ "url": "https://github.com/GeckoPackages/GeckoPHPUnit.git",
454
+ "reference": "6a866551dffc2154c1b091bae3a7877d39c25ca3"
455
+ },
456
+ "dist": {
457
+ "type": "zip",
458
+ "url": "https://api.github.com/repos/GeckoPackages/GeckoPHPUnit/zipball/6a866551dffc2154c1b091bae3a7877d39c25ca3",
459
+ "reference": "6a866551dffc2154c1b091bae3a7877d39c25ca3",
460
+ "shasum": ""
461
+ },
462
+ "require": {
463
+ "php": "^7.0"
464
+ },
465
+ "require-dev": {
466
+ "phpunit/phpunit": "^6.0"
467
+ },
468
+ "suggest": {
469
+ "ext-dom": "When testing with xml.",
470
+ "ext-libxml": "When testing with xml.",
471
+ "phpunit/phpunit": "This is an extension for it so make sure you have it some way."
472
+ },
473
+ "type": "library",
474
+ "extra": {
475
+ "branch-alias": {
476
+ "dev-master": "3.0-dev"
477
+ }
478
+ },
479
+ "autoload": {
480
+ "psr-4": {
481
+ "GeckoPackages\\PHPUnit\\": "src/PHPUnit"
482
+ }
483
+ },
484
+ "notification-url": "https://packagist.org/downloads/",
485
+ "license": [
486
+ "MIT"
487
+ ],
488
+ "description": "Additional PHPUnit asserts and constraints.",
489
+ "homepage": "https://github.com/GeckoPackages",
490
+ "keywords": [
491
+ "extension",
492
+ "filesystem",
493
+ "phpunit"
494
+ ],
495
+ "time": "2017-08-23T07:46:41+00:00"
496
+ },
497
+ {
498
+ "name": "ircmaxell/password-compat",
499
+ "version": "v1.0.4",
500
+ "source": {
501
+ "type": "git",
502
+ "url": "https://github.com/ircmaxell/password_compat.git",
503
+ "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c"
504
+ },
505
+ "dist": {
506
+ "type": "zip",
507
+ "url": "https://api.github.com/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c",
508
+ "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c",
509
+ "shasum": ""
510
+ },
511
+ "require-dev": {
512
+ "phpunit/phpunit": "4.*"
513
+ },
514
+ "type": "library",
515
+ "autoload": {
516
+ "files": [
517
+ "lib/password.php"
518
+ ]
519
+ },
520
+ "notification-url": "https://packagist.org/downloads/",
521
+ "license": [
522
+ "MIT"
523
+ ],
524
+ "authors": [
525
+ {
526
+ "name": "Anthony Ferrara",
527
+ "email": "ircmaxell@php.net",
528
+ "homepage": "http://blog.ircmaxell.com"
529
+ }
530
+ ],
531
+ "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash",
532
+ "homepage": "https://github.com/ircmaxell/password_compat",
533
+ "keywords": [
534
+ "hashing",
535
+ "password"
536
+ ],
537
+ "time": "2014-11-20T16:49:30+00:00"
538
+ },
539
+ {
540
+ "name": "jpgraph/jpgraph",
541
+ "version": "4.0.2",
542
+ "source": {
543
+ "type": "git",
544
+ "url": "https://github.com/ztec/JpGraph.git",
545
+ "reference": "e82db7da6a546d3926c24c9a346226da7aa49094"
546
+ },
547
+ "dist": {
548
+ "type": "zip",
549
+ "url": "https://api.github.com/repos/ztec/JpGraph/zipball/e82db7da6a546d3926c24c9a346226da7aa49094",
550
+ "reference": "e82db7da6a546d3926c24c9a346226da7aa49094",
551
+ "shasum": ""
552
+ },
553
+ "type": "library",
554
+ "autoload": {
555
+ "classmap": [
556
+ "lib/JpGraph.php"
557
+ ]
558
+ },
559
+ "notification-url": "https://packagist.org/downloads/",
560
+ "license": [
561
+ "QPL 1.0"
562
+ ],
563
+ "authors": [
564
+ {
565
+ "name": "JpGraph team"
566
+ }
567
+ ],
568
+ "description": "jpGraph, library to make graphs and charts",
569
+ "homepage": "http://jpgraph.net/",
570
+ "keywords": [
571
+ "chart",
572
+ "data",
573
+ "graph",
574
+ "jpgraph",
575
+ "pie"
576
+ ],
577
+ "time": "2017-02-23T09:44:15+00:00"
578
+ },
579
+ {
580
+ "name": "mpdf/mpdf",
581
+ "version": "v7.0.0",
582
+ "source": {
583
+ "type": "git",
584
+ "url": "https://github.com/mpdf/mpdf.git",
585
+ "reference": "375a79a575fde762a7c390766837e78e8dfe97bf"
586
+ },
587
+ "dist": {
588
+ "type": "zip",
589
+ "url": "https://api.github.com/repos/mpdf/mpdf/zipball/375a79a575fde762a7c390766837e78e8dfe97bf",
590
+ "reference": "375a79a575fde762a7c390766837e78e8dfe97bf",
591
+ "shasum": ""
592
+ },
593
+ "require": {
594
+ "ext-gd": "*",
595
+ "ext-mbstring": "*",
596
+ "paragonie/random_compat": "^2.0",
597
+ "php": "^5.6 || ~7.0.0 || ~7.1.0 || ~7.2.0",
598
+ "psr/log": "^1.0",
599
+ "setasign/fpdi": "1.6.*"
600
+ },
601
+ "require-dev": {
602
+ "mockery/mockery": "^0.9.5",
603
+ "phpunit/phpunit": "^5.0",
604
+ "squizlabs/php_codesniffer": "^2.7.0",
605
+ "tracy/tracy": "^2.4"
606
+ },
607
+ "suggest": {
608
+ "ext-bcmath": "Needed for generation of some types of barcodes",
609
+ "ext-xml": "Needed mainly for SVG manipulation",
610
+ "ext-zlib": "Needed for compression of embedded resources, such as fonts"
611
+ },
612
+ "type": "library",
613
+ "extra": {
614
+ "branch-alias": {
615
+ "dev-development": "7.0-dev"
616
+ }
617
+ },
618
+ "autoload": {
619
+ "psr-4": {
620
+ "Mpdf\\": "src/"
621
+ }
622
+ },
623
+ "notification-url": "https://packagist.org/downloads/",
624
+ "license": [
625
+ "GPL-2.0"
626
+ ],
627
+ "authors": [
628
+ {
629
+ "name": "Matěj Humpál",
630
+ "role": "Developer, maintainer"
631
+ },
632
+ {
633
+ "name": "Ian Back",
634
+ "role": "Developer (retired)"
635
+ }
636
+ ],
637
+ "description": "A PHP class to generate PDF files from HTML with Unicode/UTF-8 and CJK support",
638
+ "homepage": "https://mpdf.github.io",
639
+ "keywords": [
640
+ "pdf",
641
+ "php",
642
+ "utf-8"
643
+ ],
644
+ "time": "2017-10-19T16:38:45+00:00"
645
+ },
646
+ {
647
+ "name": "myclabs/deep-copy",
648
+ "version": "1.6.0",
649
+ "source": {
650
+ "type": "git",
651
+ "url": "https://github.com/myclabs/DeepCopy.git",
652
+ "reference": "5a5a9fc8025a08d8919be87d6884d5a92520cefe"
653
+ },
654
+ "dist": {
655
+ "type": "zip",
656
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/5a5a9fc8025a08d8919be87d6884d5a92520cefe",
657
+ "reference": "5a5a9fc8025a08d8919be87d6884d5a92520cefe",
658
+ "shasum": ""
659
+ },
660
+ "require": {
661
+ "php": ">=5.4.0"
662
+ },
663
+ "require-dev": {
664
+ "doctrine/collections": "1.*",
665
+ "phpunit/phpunit": "~4.1"
666
+ },
667
+ "type": "library",
668
+ "autoload": {
669
+ "psr-4": {
670
+ "DeepCopy\\": "src/DeepCopy/"
671
+ }
672
+ },
673
+ "notification-url": "https://packagist.org/downloads/",
674
+ "license": [
675
+ "MIT"
676
+ ],
677
+ "description": "Create deep copies (clones) of your objects",
678
+ "homepage": "https://github.com/myclabs/DeepCopy",
679
+ "keywords": [
680
+ "clone",
681
+ "copy",
682
+ "duplicate",
683
+ "object",
684
+ "object graph"
685
+ ],
686
+ "time": "2017-01-26T22:05:40+00:00"
687
+ },
688
+ {
689
+ "name": "paragonie/random_compat",
690
+ "version": "v2.0.11",
691
+ "source": {
692
+ "type": "git",
693
+ "url": "https://github.com/paragonie/random_compat.git",
694
+ "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8"
695
+ },
696
+ "dist": {
697
+ "type": "zip",
698
+ "url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8",
699
+ "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8",
700
+ "shasum": ""
701
+ },
702
+ "require": {
703
+ "php": ">=5.2.0"
704
+ },
705
+ "require-dev": {
706
+ "phpunit/phpunit": "4.*|5.*"
707
+ },
708
+ "suggest": {
709
+ "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
710
+ },
711
+ "type": "library",
712
+ "autoload": {
713
+ "files": [
714
+ "lib/random.php"
715
+ ]
716
+ },
717
+ "notification-url": "https://packagist.org/downloads/",
718
+ "license": [
719
+ "MIT"
720
+ ],
721
+ "authors": [
722
+ {
723
+ "name": "Paragon Initiative Enterprises",
724
+ "email": "security@paragonie.com",
725
+ "homepage": "https://paragonie.com"
726
+ }
727
+ ],
728
+ "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
729
+ "keywords": [
730
+ "csprng",
731
+ "pseudorandom",
732
+ "random"
733
+ ],
734
+ "time": "2017-09-27T21:40:39+00:00"
735
+ },
736
+ {
737
+ "name": "phenx/php-font-lib",
738
+ "version": "0.5",
739
+ "source": {
740
+ "type": "git",
741
+ "url": "https://github.com/PhenX/php-font-lib.git",
742
+ "reference": "19ad2bebc35be028fcc0221025fcbf3d436a3962"
743
+ },
744
+ "dist": {
745
+ "type": "zip",
746
+ "url": "https://api.github.com/repos/PhenX/php-font-lib/zipball/19ad2bebc35be028fcc0221025fcbf3d436a3962",
747
+ "reference": "19ad2bebc35be028fcc0221025fcbf3d436a3962",
748
+ "shasum": ""
749
+ },
750
+ "require-dev": {
751
+ "phpunit/phpunit": "^4.8"
752
+ },
753
+ "type": "library",
754
+ "autoload": {
755
+ "psr-4": {
756
+ "FontLib\\": "src/FontLib"
757
+ }
758
+ },
759
+ "notification-url": "https://packagist.org/downloads/",
760
+ "license": [
761
+ "LGPL-3.0"
762
+ ],
763
+ "authors": [
764
+ {
765
+ "name": "Fabien Ménager",
766
+ "email": "fabien.menager@gmail.com"
767
+ }
768
+ ],
769
+ "description": "A library to read, parse, export and make subsets of different types of font files.",
770
+ "homepage": "https://github.com/PhenX/php-font-lib",
771
+ "time": "2017-02-11T10:58:43+00:00"
772
+ },
773
+ {
774
+ "name": "phenx/php-svg-lib",
775
+ "version": "v0.2",
776
+ "source": {
777
+ "type": "git",
778
+ "url": "https://github.com/PhenX/php-svg-lib.git",
779
+ "reference": "de291bec8449b89acfe85691b5c71434797959dc"
780
+ },
781
+ "dist": {
782
+ "type": "zip",
783
+ "url": "https://api.github.com/repos/PhenX/php-svg-lib/zipball/de291bec8449b89acfe85691b5c71434797959dc",
784
+ "reference": "de291bec8449b89acfe85691b5c71434797959dc",
785
+ "shasum": ""
786
+ },
787
+ "require": {
788
+ "sabberworm/php-css-parser": "6.0.*"
789
+ },
790
+ "type": "library",
791
+ "autoload": {
792
+ "psr-0": {
793
+ "Svg\\": "src/"
794
+ }
795
+ },
796
+ "notification-url": "https://packagist.org/downloads/",
797
+ "license": [
798
+ "LGPL-3.0"
799
+ ],
800
+ "authors": [
801
+ {
802
+ "name": "Fabien Ménager",
803
+ "email": "fabien.menager@gmail.com"
804
+ }
805
+ ],
806
+ "description": "A library to read, parse and export to PDF SVG files.",
807
+ "homepage": "https://github.com/PhenX/php-svg-lib",
808
+ "time": "2016-12-13T20:25:45+00:00"
809
+ },
810
+ {
811
+ "name": "php-cs-fixer/diff",
812
+ "version": "v1.2.0",
813
+ "source": {
814
+ "type": "git",
815
+ "url": "https://github.com/PHP-CS-Fixer/diff.git",
816
+ "reference": "f0ef6133d674137e902fdf8a6f2e8e97e14a087b"
817
+ },
818
+ "dist": {
819
+ "type": "zip",
820
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/f0ef6133d674137e902fdf8a6f2e8e97e14a087b",
821
+ "reference": "f0ef6133d674137e902fdf8a6f2e8e97e14a087b",
822
+ "shasum": ""
823
+ },
824
+ "require": {
825
+ "php": "^5.6 || ^7.0"
826
+ },
827
+ "require-dev": {
828
+ "phpunit/phpunit": "^4.8.35 || ^5.4.3",
829
+ "symfony/process": "^3.3"
830
+ },
831
+ "type": "library",
832
+ "autoload": {
833
+ "classmap": [
834
+ "src/"
835
+ ]
836
+ },
837
+ "notification-url": "https://packagist.org/downloads/",
838
+ "authors": [
839
+ {
840
+ "name": "Kore Nordmann",
841
+ "email": "mail@kore-nordmann.de"
842
+ },
843
+ {
844
+ "name": "Sebastian Bergmann",
845
+ "email": "sebastian@phpunit.de"
846
+ },
847
+ {
848
+ "name": "SpacePossum"
849
+ }
850
+ ],
851
+ "description": "sebastian/diff v2 backport support for PHP5.6",
852
+ "homepage": "https://github.com/PHP-CS-Fixer",
853
+ "keywords": [
854
+ "diff"
855
+ ],
856
+ "time": "2017-10-19T09:58:18+00:00"
857
+ },
858
+ {
859
+ "name": "phpdocumentor/reflection-common",
860
+ "version": "1.0",
861
+ "source": {
862
+ "type": "git",
863
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
864
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c"
865
+ },
866
+ "dist": {
867
+ "type": "zip",
868
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
869
+ "reference": "144c307535e82c8fdcaacbcfc1d6d8eeb896687c",
870
+ "shasum": ""
871
+ },
872
+ "require": {
873
+ "php": ">=5.5"
874
+ },
875
+ "require-dev": {
876
+ "phpunit/phpunit": "^4.6"
877
+ },
878
+ "type": "library",
879
+ "extra": {
880
+ "branch-alias": {
881
+ "dev-master": "1.0.x-dev"
882
+ }
883
+ },
884
+ "autoload": {
885
+ "psr-4": {
886
+ "phpDocumentor\\Reflection\\": [
887
+ "src"
888
+ ]
889
+ }
890
+ },
891
+ "notification-url": "https://packagist.org/downloads/",
892
+ "license": [
893
+ "MIT"
894
+ ],
895
+ "authors": [
896
+ {
897
+ "name": "Jaap van Otterdijk",
898
+ "email": "opensource@ijaap.nl"
899
+ }
900
+ ],
901
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
902
+ "homepage": "http://www.phpdoc.org",
903
+ "keywords": [
904
+ "FQSEN",
905
+ "phpDocumentor",
906
+ "phpdoc",
907
+ "reflection",
908
+ "static analysis"
909
+ ],
910
+ "time": "2015-12-27T11:43:31+00:00"
911
+ },
912
+ {
913
+ "name": "phpdocumentor/reflection-docblock",
914
+ "version": "3.1.1",
915
+ "source": {
916
+ "type": "git",
917
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
918
+ "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e"
919
+ },
920
+ "dist": {
921
+ "type": "zip",
922
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/8331b5efe816ae05461b7ca1e721c01b46bafb3e",
923
+ "reference": "8331b5efe816ae05461b7ca1e721c01b46bafb3e",
924
+ "shasum": ""
925
+ },
926
+ "require": {
927
+ "php": ">=5.5",
928
+ "phpdocumentor/reflection-common": "^1.0@dev",
929
+ "phpdocumentor/type-resolver": "^0.2.0",
930
+ "webmozart/assert": "^1.0"
931
+ },
932
+ "require-dev": {
933
+ "mockery/mockery": "^0.9.4",
934
+ "phpunit/phpunit": "^4.4"
935
+ },
936
+ "type": "library",
937
+ "autoload": {
938
+ "psr-4": {
939
+ "phpDocumentor\\Reflection\\": [
940
+ "src/"
941
+ ]
942
+ }
943
+ },
944
+ "notification-url": "https://packagist.org/downloads/",
945
+ "license": [
946
+ "MIT"
947
+ ],
948
+ "authors": [
949
+ {
950
+ "name": "Mike van Riel",
951
+ "email": "me@mikevanriel.com"
952
+ }
953
+ ],
954
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
955
+ "time": "2016-09-30T07:12:33+00:00"
956
+ },
957
+ {
958
+ "name": "phpdocumentor/type-resolver",
959
+ "version": "0.2.1",
960
+ "source": {
961
+ "type": "git",
962
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
963
+ "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb"
964
+ },
965
+ "dist": {
966
+ "type": "zip",
967
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
968
+ "reference": "e224fb2ea2fba6d3ad6fdaef91cd09a172155ccb",
969
+ "shasum": ""
970
+ },
971
+ "require": {
972
+ "php": ">=5.5",
973
+ "phpdocumentor/reflection-common": "^1.0"
974
+ },
975
+ "require-dev": {
976
+ "mockery/mockery": "^0.9.4",
977
+ "phpunit/phpunit": "^5.2||^4.8.24"
978
+ },
979
+ "type": "library",
980
+ "extra": {
981
+ "branch-alias": {
982
+ "dev-master": "1.0.x-dev"
983
+ }
984
+ },
985
+ "autoload": {
986
+ "psr-4": {
987
+ "phpDocumentor\\Reflection\\": [
988
+ "src/"
989
+ ]
990
+ }
991
+ },
992
+ "notification-url": "https://packagist.org/downloads/",
993
+ "license": [
994
+ "MIT"
995
+ ],
996
+ "authors": [
997
+ {
998
+ "name": "Mike van Riel",
999
+ "email": "me@mikevanriel.com"
1000
+ }
1001
+ ],
1002
+ "time": "2016-11-25T06:54:22+00:00"
1003
+ },
1004
+ {
1005
+ "name": "phpspec/prophecy",
1006
+ "version": "v1.7.0",
1007
+ "source": {
1008
+ "type": "git",
1009
+ "url": "https://github.com/phpspec/prophecy.git",
1010
+ "reference": "93d39f1f7f9326d746203c7c056f300f7f126073"
1011
+ },
1012
+ "dist": {
1013
+ "type": "zip",
1014
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/93d39f1f7f9326d746203c7c056f300f7f126073",
1015
+ "reference": "93d39f1f7f9326d746203c7c056f300f7f126073",
1016
+ "shasum": ""
1017
+ },
1018
+ "require": {
1019
+ "doctrine/instantiator": "^1.0.2",
1020
+ "php": "^5.3|^7.0",
1021
+ "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
1022
+ "sebastian/comparator": "^1.1|^2.0",
1023
+ "sebastian/recursion-context": "^1.0|^2.0|^3.0"
1024
+ },
1025
+ "require-dev": {
1026
+ "phpspec/phpspec": "^2.5|^3.2",
1027
+ "phpunit/phpunit": "^4.8 || ^5.6.5"
1028
+ },
1029
+ "type": "library",
1030
+ "extra": {
1031
+ "branch-alias": {
1032
+ "dev-master": "1.6.x-dev"
1033
+ }
1034
+ },
1035
+ "autoload": {
1036
+ "psr-0": {
1037
+ "Prophecy\\": "src/"
1038
+ }
1039
+ },
1040
+ "notification-url": "https://packagist.org/downloads/",
1041
+ "license": [
1042
+ "MIT"
1043
+ ],
1044
+ "authors": [
1045
+ {
1046
+ "name": "Konstantin Kudryashov",
1047
+ "email": "ever.zet@gmail.com",
1048
+ "homepage": "http://everzet.com"
1049
+ },
1050
+ {
1051
+ "name": "Marcello Duarte",
1052
+ "email": "marcello.duarte@gmail.com"
1053
+ }
1054
+ ],
1055
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
1056
+ "homepage": "https://github.com/phpspec/prophecy",
1057
+ "keywords": [
1058
+ "Double",
1059
+ "Dummy",
1060
+ "fake",
1061
+ "mock",
1062
+ "spy",
1063
+ "stub"
1064
+ ],
1065
+ "time": "2017-03-02T20:05:34+00:00"
1066
+ },
1067
+ {
1068
+ "name": "phpunit/php-code-coverage",
1069
+ "version": "4.0.7",
1070
+ "source": {
1071
+ "type": "git",
1072
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
1073
+ "reference": "09e2277d14ea467e5a984010f501343ef29ffc69"
1074
+ },
1075
+ "dist": {
1076
+ "type": "zip",
1077
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/09e2277d14ea467e5a984010f501343ef29ffc69",
1078
+ "reference": "09e2277d14ea467e5a984010f501343ef29ffc69",
1079
+ "shasum": ""
1080
+ },
1081
+ "require": {
1082
+ "ext-dom": "*",
1083
+ "ext-xmlwriter": "*",
1084
+ "php": "^5.6 || ^7.0",
1085
+ "phpunit/php-file-iterator": "^1.3",
1086
+ "phpunit/php-text-template": "^1.2",
1087
+ "phpunit/php-token-stream": "^1.4.2 || ^2.0",
1088
+ "sebastian/code-unit-reverse-lookup": "^1.0",
1089
+ "sebastian/environment": "^1.3.2 || ^2.0",
1090
+ "sebastian/version": "^1.0 || ^2.0"
1091
+ },
1092
+ "require-dev": {
1093
+ "ext-xdebug": "^2.1.4",
1094
+ "phpunit/phpunit": "^5.7"
1095
+ },
1096
+ "suggest": {
1097
+ "ext-xdebug": "^2.5.1"
1098
+ },
1099
+ "type": "library",
1100
+ "extra": {
1101
+ "branch-alias": {
1102
+ "dev-master": "4.0.x-dev"
1103
+ }
1104
+ },
1105
+ "autoload": {
1106
+ "classmap": [
1107
+ "src/"
1108
+ ]
1109
+ },
1110
+ "notification-url": "https://packagist.org/downloads/",
1111
+ "license": [
1112
+ "BSD-3-Clause"
1113
+ ],
1114
+ "authors": [
1115
+ {
1116
+ "name": "Sebastian Bergmann",
1117
+ "email": "sb@sebastian-bergmann.de",
1118
+ "role": "lead"
1119
+ }
1120
+ ],
1121
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
1122
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
1123
+ "keywords": [
1124
+ "coverage",
1125
+ "testing",
1126
+ "xunit"
1127
+ ],
1128
+ "time": "2017-03-01T09:12:17+00:00"
1129
+ },
1130
+ {
1131
+ "name": "phpunit/php-file-iterator",
1132
+ "version": "1.4.2",
1133
+ "source": {
1134
+ "type": "git",
1135
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
1136
+ "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5"
1137
+ },
1138
+ "dist": {
1139
+ "type": "zip",
1140
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
1141
+ "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
1142
+ "shasum": ""
1143
+ },
1144
+ "require": {
1145
+ "php": ">=5.3.3"
1146
+ },
1147
+ "type": "library",
1148
+ "extra": {
1149
+ "branch-alias": {
1150
+ "dev-master": "1.4.x-dev"
1151
+ }
1152
+ },
1153
+ "autoload": {
1154
+ "classmap": [
1155
+ "src/"
1156
+ ]
1157
+ },
1158
+ "notification-url": "https://packagist.org/downloads/",
1159
+ "license": [
1160
+ "BSD-3-Clause"
1161
+ ],
1162
+ "authors": [
1163
+ {
1164
+ "name": "Sebastian Bergmann",
1165
+ "email": "sb@sebastian-bergmann.de",
1166
+ "role": "lead"
1167
+ }
1168
+ ],
1169
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
1170
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
1171
+ "keywords": [
1172
+ "filesystem",
1173
+ "iterator"
1174
+ ],
1175
+ "time": "2016-10-03T07:40:28+00:00"
1176
+ },
1177
+ {
1178
+ "name": "phpunit/php-text-template",
1179
+ "version": "1.2.1",
1180
+ "source": {
1181
+ "type": "git",
1182
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
1183
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
1184
+ },
1185
+ "dist": {
1186
+ "type": "zip",
1187
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1188
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
1189
+ "shasum": ""
1190
+ },
1191
+ "require": {
1192
+ "php": ">=5.3.3"
1193
+ },
1194
+ "type": "library",
1195
+ "autoload": {
1196
+ "classmap": [
1197
+ "src/"
1198
+ ]
1199
+ },
1200
+ "notification-url": "https://packagist.org/downloads/",
1201
+ "license": [
1202
+ "BSD-3-Clause"
1203
+ ],
1204
+ "authors": [
1205
+ {
1206
+ "name": "Sebastian Bergmann",
1207
+ "email": "sebastian@phpunit.de",
1208
+ "role": "lead"
1209
+ }
1210
+ ],
1211
+ "description": "Simple template engine.",
1212
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
1213
+ "keywords": [
1214
+ "template"
1215
+ ],
1216
+ "time": "2015-06-21T13:50:34+00:00"
1217
+ },
1218
+ {
1219
+ "name": "phpunit/php-timer",
1220
+ "version": "1.0.9",
1221
+ "source": {
1222
+ "type": "git",
1223
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
1224
+ "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
1225
+ },
1226
+ "dist": {
1227
+ "type": "zip",
1228
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
1229
+ "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
1230
+ "shasum": ""
1231
+ },
1232
+ "require": {
1233
+ "php": "^5.3.3 || ^7.0"
1234
+ },
1235
+ "require-dev": {
1236
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
1237
+ },
1238
+ "type": "library",
1239
+ "extra": {
1240
+ "branch-alias": {
1241
+ "dev-master": "1.0-dev"
1242
+ }
1243
+ },
1244
+ "autoload": {
1245
+ "classmap": [
1246
+ "src/"
1247
+ ]
1248
+ },
1249
+ "notification-url": "https://packagist.org/downloads/",
1250
+ "license": [
1251
+ "BSD-3-Clause"
1252
+ ],
1253
+ "authors": [
1254
+ {
1255
+ "name": "Sebastian Bergmann",
1256
+ "email": "sb@sebastian-bergmann.de",
1257
+ "role": "lead"
1258
+ }
1259
+ ],
1260
+ "description": "Utility class for timing",
1261
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
1262
+ "keywords": [
1263
+ "timer"
1264
+ ],
1265
+ "time": "2017-02-26T11:10:40+00:00"
1266
+ },
1267
+ {
1268
+ "name": "phpunit/php-token-stream",
1269
+ "version": "1.4.11",
1270
+ "source": {
1271
+ "type": "git",
1272
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
1273
+ "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7"
1274
+ },
1275
+ "dist": {
1276
+ "type": "zip",
1277
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e03f8f67534427a787e21a385a67ec3ca6978ea7",
1278
+ "reference": "e03f8f67534427a787e21a385a67ec3ca6978ea7",
1279
+ "shasum": ""
1280
+ },
1281
+ "require": {
1282
+ "ext-tokenizer": "*",
1283
+ "php": ">=5.3.3"
1284
+ },
1285
+ "require-dev": {
1286
+ "phpunit/phpunit": "~4.2"
1287
+ },
1288
+ "type": "library",
1289
+ "extra": {
1290
+ "branch-alias": {
1291
+ "dev-master": "1.4-dev"
1292
+ }
1293
+ },
1294
+ "autoload": {
1295
+ "classmap": [
1296
+ "src/"
1297
+ ]
1298
+ },
1299
+ "notification-url": "https://packagist.org/downloads/",
1300
+ "license": [
1301
+ "BSD-3-Clause"
1302
+ ],
1303
+ "authors": [
1304
+ {
1305
+ "name": "Sebastian Bergmann",
1306
+ "email": "sebastian@phpunit.de"
1307
+ }
1308
+ ],
1309
+ "description": "Wrapper around PHP's tokenizer extension.",
1310
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
1311
+ "keywords": [
1312
+ "tokenizer"
1313
+ ],
1314
+ "time": "2017-02-27T10:12:30+00:00"
1315
+ },
1316
+ {
1317
+ "name": "phpunit/phpunit",
1318
+ "version": "5.7.17",
1319
+ "source": {
1320
+ "type": "git",
1321
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
1322
+ "reference": "68752b665d3875f9a38a357e3ecb35c79f8673bf"
1323
+ },
1324
+ "dist": {
1325
+ "type": "zip",
1326
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/68752b665d3875f9a38a357e3ecb35c79f8673bf",
1327
+ "reference": "68752b665d3875f9a38a357e3ecb35c79f8673bf",
1328
+ "shasum": ""
1329
+ },
1330
+ "require": {
1331
+ "ext-dom": "*",
1332
+ "ext-json": "*",
1333
+ "ext-libxml": "*",
1334
+ "ext-mbstring": "*",
1335
+ "ext-xml": "*",
1336
+ "myclabs/deep-copy": "~1.3",
1337
+ "php": "^5.6 || ^7.0",
1338
+ "phpspec/prophecy": "^1.6.2",
1339
+ "phpunit/php-code-coverage": "^4.0.4",
1340
+ "phpunit/php-file-iterator": "~1.4",
1341
+ "phpunit/php-text-template": "~1.2",
1342
+ "phpunit/php-timer": "^1.0.6",
1343
+ "phpunit/phpunit-mock-objects": "^3.2",
1344
+ "sebastian/comparator": "^1.2.4",
1345
+ "sebastian/diff": "~1.2",
1346
+ "sebastian/environment": "^1.3.4 || ^2.0",
1347
+ "sebastian/exporter": "~2.0",
1348
+ "sebastian/global-state": "^1.1",
1349
+ "sebastian/object-enumerator": "~2.0",
1350
+ "sebastian/resource-operations": "~1.0",
1351
+ "sebastian/version": "~1.0.3|~2.0",
1352
+ "symfony/yaml": "~2.1|~3.0"
1353
+ },
1354
+ "conflict": {
1355
+ "phpdocumentor/reflection-docblock": "3.0.2"
1356
+ },
1357
+ "require-dev": {
1358
+ "ext-pdo": "*"
1359
+ },
1360
+ "suggest": {
1361
+ "ext-xdebug": "*",
1362
+ "phpunit/php-invoker": "~1.1"
1363
+ },
1364
+ "bin": [
1365
+ "phpunit"
1366
+ ],
1367
+ "type": "library",
1368
+ "extra": {
1369
+ "branch-alias": {
1370
+ "dev-master": "5.7.x-dev"
1371
+ }
1372
+ },
1373
+ "autoload": {
1374
+ "classmap": [
1375
+ "src/"
1376
+ ]
1377
+ },
1378
+ "notification-url": "https://packagist.org/downloads/",
1379
+ "license": [
1380
+ "BSD-3-Clause"
1381
+ ],
1382
+ "authors": [
1383
+ {
1384
+ "name": "Sebastian Bergmann",
1385
+ "email": "sebastian@phpunit.de",
1386
+ "role": "lead"
1387
+ }
1388
+ ],
1389
+ "description": "The PHP Unit Testing framework.",
1390
+ "homepage": "https://phpunit.de/",
1391
+ "keywords": [
1392
+ "phpunit",
1393
+ "testing",
1394
+ "xunit"
1395
+ ],
1396
+ "time": "2017-03-19T16:52:12+00:00"
1397
+ },
1398
+ {
1399
+ "name": "phpunit/phpunit-mock-objects",
1400
+ "version": "3.4.3",
1401
+ "source": {
1402
+ "type": "git",
1403
+ "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
1404
+ "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24"
1405
+ },
1406
+ "dist": {
1407
+ "type": "zip",
1408
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3ab72b65b39b491e0c011e2e09bb2206c2aa8e24",
1409
+ "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24",
1410
+ "shasum": ""
1411
+ },
1412
+ "require": {
1413
+ "doctrine/instantiator": "^1.0.2",
1414
+ "php": "^5.6 || ^7.0",
1415
+ "phpunit/php-text-template": "^1.2",
1416
+ "sebastian/exporter": "^1.2 || ^2.0"
1417
+ },
1418
+ "conflict": {
1419
+ "phpunit/phpunit": "<5.4.0"
1420
+ },
1421
+ "require-dev": {
1422
+ "phpunit/phpunit": "^5.4"
1423
+ },
1424
+ "suggest": {
1425
+ "ext-soap": "*"
1426
+ },
1427
+ "type": "library",
1428
+ "extra": {
1429
+ "branch-alias": {
1430
+ "dev-master": "3.2.x-dev"
1431
+ }
1432
+ },
1433
+ "autoload": {
1434
+ "classmap": [
1435
+ "src/"
1436
+ ]
1437
+ },
1438
+ "notification-url": "https://packagist.org/downloads/",
1439
+ "license": [
1440
+ "BSD-3-Clause"
1441
+ ],
1442
+ "authors": [
1443
+ {
1444
+ "name": "Sebastian Bergmann",
1445
+ "email": "sb@sebastian-bergmann.de",
1446
+ "role": "lead"
1447
+ }
1448
+ ],
1449
+ "description": "Mock Object library for PHPUnit",
1450
+ "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
1451
+ "keywords": [
1452
+ "mock",
1453
+ "xunit"
1454
+ ],
1455
+ "time": "2016-12-08T20:27:08+00:00"
1456
+ },
1457
+ {
1458
+ "name": "psr/log",
1459
+ "version": "1.0.2",
1460
+ "source": {
1461
+ "type": "git",
1462
+ "url": "https://github.com/php-fig/log.git",
1463
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
1464
+ },
1465
+ "dist": {
1466
+ "type": "zip",
1467
+ "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
1468
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
1469
+ "shasum": ""
1470
+ },
1471
+ "require": {
1472
+ "php": ">=5.3.0"
1473
+ },
1474
+ "type": "library",
1475
+ "extra": {
1476
+ "branch-alias": {
1477
+ "dev-master": "1.0.x-dev"
1478
+ }
1479
+ },
1480
+ "autoload": {
1481
+ "psr-4": {
1482
+ "Psr\\Log\\": "Psr/Log/"
1483
+ }
1484
+ },
1485
+ "notification-url": "https://packagist.org/downloads/",
1486
+ "license": [
1487
+ "MIT"
1488
+ ],
1489
+ "authors": [
1490
+ {
1491
+ "name": "PHP-FIG",
1492
+ "homepage": "http://www.php-fig.org/"
1493
+ }
1494
+ ],
1495
+ "description": "Common interface for logging libraries",
1496
+ "homepage": "https://github.com/php-fig/log",
1497
+ "keywords": [
1498
+ "log",
1499
+ "psr",
1500
+ "psr-3"
1501
+ ],
1502
+ "time": "2016-10-10T12:19:37+00:00"
1503
+ },
1504
+ {
1505
+ "name": "sabberworm/php-css-parser",
1506
+ "version": "6.0.1",
1507
+ "source": {
1508
+ "type": "git",
1509
+ "url": "https://github.com/sabberworm/PHP-CSS-Parser.git",
1510
+ "reference": "9ea4b00c569b19f731d0c2e0e802055877ff40c2"
1511
+ },
1512
+ "dist": {
1513
+ "type": "zip",
1514
+ "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/9ea4b00c569b19f731d0c2e0e802055877ff40c2",
1515
+ "reference": "9ea4b00c569b19f731d0c2e0e802055877ff40c2",
1516
+ "shasum": ""
1517
+ },
1518
+ "require": {
1519
+ "php": ">=5.3.2"
1520
+ },
1521
+ "type": "library",
1522
+ "autoload": {
1523
+ "psr-0": {
1524
+ "Sabberworm\\CSS": "lib/"
1525
+ }
1526
+ },
1527
+ "notification-url": "https://packagist.org/downloads/",
1528
+ "license": [
1529
+ "MIT"
1530
+ ],
1531
+ "authors": [
1532
+ {
1533
+ "name": "Raphael Schweikert"
1534
+ }
1535
+ ],
1536
+ "description": "Parser for CSS Files written in PHP",
1537
+ "homepage": "http://www.sabberworm.com/blog/2010/6/10/php-css-parser",
1538
+ "keywords": [
1539
+ "css",
1540
+ "parser",
1541
+ "stylesheet"
1542
+ ],
1543
+ "time": "2015-08-24T08:48:52+00:00"
1544
+ },
1545
+ {
1546
+ "name": "sebastian/code-unit-reverse-lookup",
1547
+ "version": "1.0.1",
1548
+ "source": {
1549
+ "type": "git",
1550
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
1551
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
1552
+ },
1553
+ "dist": {
1554
+ "type": "zip",
1555
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1556
+ "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
1557
+ "shasum": ""
1558
+ },
1559
+ "require": {
1560
+ "php": "^5.6 || ^7.0"
1561
+ },
1562
+ "require-dev": {
1563
+ "phpunit/phpunit": "^5.7 || ^6.0"
1564
+ },
1565
+ "type": "library",
1566
+ "extra": {
1567
+ "branch-alias": {
1568
+ "dev-master": "1.0.x-dev"
1569
+ }
1570
+ },
1571
+ "autoload": {
1572
+ "classmap": [
1573
+ "src/"
1574
+ ]
1575
+ },
1576
+ "notification-url": "https://packagist.org/downloads/",
1577
+ "license": [
1578
+ "BSD-3-Clause"
1579
+ ],
1580
+ "authors": [
1581
+ {
1582
+ "name": "Sebastian Bergmann",
1583
+ "email": "sebastian@phpunit.de"
1584
+ }
1585
+ ],
1586
+ "description": "Looks up which function or method a line of code belongs to",
1587
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
1588
+ "time": "2017-03-04T06:30:41+00:00"
1589
+ },
1590
+ {
1591
+ "name": "sebastian/comparator",
1592
+ "version": "1.2.4",
1593
+ "source": {
1594
+ "type": "git",
1595
+ "url": "https://github.com/sebastianbergmann/comparator.git",
1596
+ "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
1597
+ },
1598
+ "dist": {
1599
+ "type": "zip",
1600
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
1601
+ "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
1602
+ "shasum": ""
1603
+ },
1604
+ "require": {
1605
+ "php": ">=5.3.3",
1606
+ "sebastian/diff": "~1.2",
1607
+ "sebastian/exporter": "~1.2 || ~2.0"
1608
+ },
1609
+ "require-dev": {
1610
+ "phpunit/phpunit": "~4.4"
1611
+ },
1612
+ "type": "library",
1613
+ "extra": {
1614
+ "branch-alias": {
1615
+ "dev-master": "1.2.x-dev"
1616
+ }
1617
+ },
1618
+ "autoload": {
1619
+ "classmap": [
1620
+ "src/"
1621
+ ]
1622
+ },
1623
+ "notification-url": "https://packagist.org/downloads/",
1624
+ "license": [
1625
+ "BSD-3-Clause"
1626
+ ],
1627
+ "authors": [
1628
+ {
1629
+ "name": "Jeff Welch",
1630
+ "email": "whatthejeff@gmail.com"
1631
+ },
1632
+ {
1633
+ "name": "Volker Dusch",
1634
+ "email": "github@wallbash.com"
1635
+ },
1636
+ {
1637
+ "name": "Bernhard Schussek",
1638
+ "email": "bschussek@2bepublished.at"
1639
+ },
1640
+ {
1641
+ "name": "Sebastian Bergmann",
1642
+ "email": "sebastian@phpunit.de"
1643
+ }
1644
+ ],
1645
+ "description": "Provides the functionality to compare PHP values for equality",
1646
+ "homepage": "http://www.github.com/sebastianbergmann/comparator",
1647
+ "keywords": [
1648
+ "comparator",
1649
+ "compare",
1650
+ "equality"
1651
+ ],
1652
+ "time": "2017-01-29T09:50:25+00:00"
1653
+ },
1654
+ {
1655
+ "name": "sebastian/diff",
1656
+ "version": "1.4.1",
1657
+ "source": {
1658
+ "type": "git",
1659
+ "url": "https://github.com/sebastianbergmann/diff.git",
1660
+ "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
1661
+ },
1662
+ "dist": {
1663
+ "type": "zip",
1664
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
1665
+ "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
1666
+ "shasum": ""
1667
+ },
1668
+ "require": {
1669
+ "php": ">=5.3.3"
1670
+ },
1671
+ "require-dev": {
1672
+ "phpunit/phpunit": "~4.8"
1673
+ },
1674
+ "type": "library",
1675
+ "extra": {
1676
+ "branch-alias": {
1677
+ "dev-master": "1.4-dev"
1678
+ }
1679
+ },
1680
+ "autoload": {
1681
+ "classmap": [
1682
+ "src/"
1683
+ ]
1684
+ },
1685
+ "notification-url": "https://packagist.org/downloads/",
1686
+ "license": [
1687
+ "BSD-3-Clause"
1688
+ ],
1689
+ "authors": [
1690
+ {
1691
+ "name": "Kore Nordmann",
1692
+ "email": "mail@kore-nordmann.de"
1693
+ },
1694
+ {
1695
+ "name": "Sebastian Bergmann",
1696
+ "email": "sebastian@phpunit.de"
1697
+ }
1698
+ ],
1699
+ "description": "Diff implementation",
1700
+ "homepage": "https://github.com/sebastianbergmann/diff",
1701
+ "keywords": [
1702
+ "diff"
1703
+ ],
1704
+ "time": "2015-12-08T07:14:41+00:00"
1705
+ },
1706
+ {
1707
+ "name": "sebastian/environment",
1708
+ "version": "2.0.0",
1709
+ "source": {
1710
+ "type": "git",
1711
+ "url": "https://github.com/sebastianbergmann/environment.git",
1712
+ "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac"
1713
+ },
1714
+ "dist": {
1715
+ "type": "zip",
1716
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
1717
+ "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
1718
+ "shasum": ""
1719
+ },
1720
+ "require": {
1721
+ "php": "^5.6 || ^7.0"
1722
+ },
1723
+ "require-dev": {
1724
+ "phpunit/phpunit": "^5.0"
1725
+ },
1726
+ "type": "library",
1727
+ "extra": {
1728
+ "branch-alias": {
1729
+ "dev-master": "2.0.x-dev"
1730
+ }
1731
+ },
1732
+ "autoload": {
1733
+ "classmap": [
1734
+ "src/"
1735
+ ]
1736
+ },
1737
+ "notification-url": "https://packagist.org/downloads/",
1738
+ "license": [
1739
+ "BSD-3-Clause"
1740
+ ],
1741
+ "authors": [
1742
+ {
1743
+ "name": "Sebastian Bergmann",
1744
+ "email": "sebastian@phpunit.de"
1745
+ }
1746
+ ],
1747
+ "description": "Provides functionality to handle HHVM/PHP environments",
1748
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
1749
+ "keywords": [
1750
+ "Xdebug",
1751
+ "environment",
1752
+ "hhvm"
1753
+ ],
1754
+ "time": "2016-11-26T07:53:53+00:00"
1755
+ },
1756
+ {
1757
+ "name": "sebastian/exporter",
1758
+ "version": "2.0.0",
1759
+ "source": {
1760
+ "type": "git",
1761
+ "url": "https://github.com/sebastianbergmann/exporter.git",
1762
+ "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4"
1763
+ },
1764
+ "dist": {
1765
+ "type": "zip",
1766
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
1767
+ "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
1768
+ "shasum": ""
1769
+ },
1770
+ "require": {
1771
+ "php": ">=5.3.3",
1772
+ "sebastian/recursion-context": "~2.0"
1773
+ },
1774
+ "require-dev": {
1775
+ "ext-mbstring": "*",
1776
+ "phpunit/phpunit": "~4.4"
1777
+ },
1778
+ "type": "library",
1779
+ "extra": {
1780
+ "branch-alias": {
1781
+ "dev-master": "2.0.x-dev"
1782
+ }
1783
+ },
1784
+ "autoload": {
1785
+ "classmap": [
1786
+ "src/"
1787
+ ]
1788
+ },
1789
+ "notification-url": "https://packagist.org/downloads/",
1790
+ "license": [
1791
+ "BSD-3-Clause"
1792
+ ],
1793
+ "authors": [
1794
+ {
1795
+ "name": "Jeff Welch",
1796
+ "email": "whatthejeff@gmail.com"
1797
+ },
1798
+ {
1799
+ "name": "Volker Dusch",
1800
+ "email": "github@wallbash.com"
1801
+ },
1802
+ {
1803
+ "name": "Bernhard Schussek",
1804
+ "email": "bschussek@2bepublished.at"
1805
+ },
1806
+ {
1807
+ "name": "Sebastian Bergmann",
1808
+ "email": "sebastian@phpunit.de"
1809
+ },
1810
+ {
1811
+ "name": "Adam Harvey",
1812
+ "email": "aharvey@php.net"
1813
+ }
1814
+ ],
1815
+ "description": "Provides the functionality to export PHP variables for visualization",
1816
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
1817
+ "keywords": [
1818
+ "export",
1819
+ "exporter"
1820
+ ],
1821
+ "time": "2016-11-19T08:54:04+00:00"
1822
+ },
1823
+ {
1824
+ "name": "sebastian/global-state",
1825
+ "version": "1.1.1",
1826
+ "source": {
1827
+ "type": "git",
1828
+ "url": "https://github.com/sebastianbergmann/global-state.git",
1829
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
1830
+ },
1831
+ "dist": {
1832
+ "type": "zip",
1833
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
1834
+ "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
1835
+ "shasum": ""
1836
+ },
1837
+ "require": {
1838
+ "php": ">=5.3.3"
1839
+ },
1840
+ "require-dev": {
1841
+ "phpunit/phpunit": "~4.2"
1842
+ },
1843
+ "suggest": {
1844
+ "ext-uopz": "*"
1845
+ },
1846
+ "type": "library",
1847
+ "extra": {
1848
+ "branch-alias": {
1849
+ "dev-master": "1.0-dev"
1850
+ }
1851
+ },
1852
+ "autoload": {
1853
+ "classmap": [
1854
+ "src/"
1855
+ ]
1856
+ },
1857
+ "notification-url": "https://packagist.org/downloads/",
1858
+ "license": [
1859
+ "BSD-3-Clause"
1860
+ ],
1861
+ "authors": [
1862
+ {
1863
+ "name": "Sebastian Bergmann",
1864
+ "email": "sebastian@phpunit.de"
1865
+ }
1866
+ ],
1867
+ "description": "Snapshotting of global state",
1868
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
1869
+ "keywords": [
1870
+ "global state"
1871
+ ],
1872
+ "time": "2015-10-12T03:26:01+00:00"
1873
+ },
1874
+ {
1875
+ "name": "sebastian/object-enumerator",
1876
+ "version": "2.0.1",
1877
+ "source": {
1878
+ "type": "git",
1879
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
1880
+ "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7"
1881
+ },
1882
+ "dist": {
1883
+ "type": "zip",
1884
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7",
1885
+ "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7",
1886
+ "shasum": ""
1887
+ },
1888
+ "require": {
1889
+ "php": ">=5.6",
1890
+ "sebastian/recursion-context": "~2.0"
1891
+ },
1892
+ "require-dev": {
1893
+ "phpunit/phpunit": "~5"
1894
+ },
1895
+ "type": "library",
1896
+ "extra": {
1897
+ "branch-alias": {
1898
+ "dev-master": "2.0.x-dev"
1899
+ }
1900
+ },
1901
+ "autoload": {
1902
+ "classmap": [
1903
+ "src/"
1904
+ ]
1905
+ },
1906
+ "notification-url": "https://packagist.org/downloads/",
1907
+ "license": [
1908
+ "BSD-3-Clause"
1909
+ ],
1910
+ "authors": [
1911
+ {
1912
+ "name": "Sebastian Bergmann",
1913
+ "email": "sebastian@phpunit.de"
1914
+ }
1915
+ ],
1916
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
1917
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
1918
+ "time": "2017-02-18T15:18:39+00:00"
1919
+ },
1920
+ {
1921
+ "name": "sebastian/recursion-context",
1922
+ "version": "2.0.0",
1923
+ "source": {
1924
+ "type": "git",
1925
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
1926
+ "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a"
1927
+ },
1928
+ "dist": {
1929
+ "type": "zip",
1930
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a",
1931
+ "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a",
1932
+ "shasum": ""
1933
+ },
1934
+ "require": {
1935
+ "php": ">=5.3.3"
1936
+ },
1937
+ "require-dev": {
1938
+ "phpunit/phpunit": "~4.4"
1939
+ },
1940
+ "type": "library",
1941
+ "extra": {
1942
+ "branch-alias": {
1943
+ "dev-master": "2.0.x-dev"
1944
+ }
1945
+ },
1946
+ "autoload": {
1947
+ "classmap": [
1948
+ "src/"
1949
+ ]
1950
+ },
1951
+ "notification-url": "https://packagist.org/downloads/",
1952
+ "license": [
1953
+ "BSD-3-Clause"
1954
+ ],
1955
+ "authors": [
1956
+ {
1957
+ "name": "Jeff Welch",
1958
+ "email": "whatthejeff@gmail.com"
1959
+ },
1960
+ {
1961
+ "name": "Sebastian Bergmann",
1962
+ "email": "sebastian@phpunit.de"
1963
+ },
1964
+ {
1965
+ "name": "Adam Harvey",
1966
+ "email": "aharvey@php.net"
1967
+ }
1968
+ ],
1969
+ "description": "Provides functionality to recursively process PHP variables",
1970
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
1971
+ "time": "2016-11-19T07:33:16+00:00"
1972
+ },
1973
+ {
1974
+ "name": "sebastian/resource-operations",
1975
+ "version": "1.0.0",
1976
+ "source": {
1977
+ "type": "git",
1978
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
1979
+ "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
1980
+ },
1981
+ "dist": {
1982
+ "type": "zip",
1983
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
1984
+ "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
1985
+ "shasum": ""
1986
+ },
1987
+ "require": {
1988
+ "php": ">=5.6.0"
1989
+ },
1990
+ "type": "library",
1991
+ "extra": {
1992
+ "branch-alias": {
1993
+ "dev-master": "1.0.x-dev"
1994
+ }
1995
+ },
1996
+ "autoload": {
1997
+ "classmap": [
1998
+ "src/"
1999
+ ]
2000
+ },
2001
+ "notification-url": "https://packagist.org/downloads/",
2002
+ "license": [
2003
+ "BSD-3-Clause"
2004
+ ],
2005
+ "authors": [
2006
+ {
2007
+ "name": "Sebastian Bergmann",
2008
+ "email": "sebastian@phpunit.de"
2009
+ }
2010
+ ],
2011
+ "description": "Provides a list of PHP built-in functions that operate on resources",
2012
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
2013
+ "time": "2015-07-28T20:34:47+00:00"
2014
+ },
2015
+ {
2016
+ "name": "sebastian/version",
2017
+ "version": "2.0.1",
2018
+ "source": {
2019
+ "type": "git",
2020
+ "url": "https://github.com/sebastianbergmann/version.git",
2021
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
2022
+ },
2023
+ "dist": {
2024
+ "type": "zip",
2025
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
2026
+ "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
2027
+ "shasum": ""
2028
+ },
2029
+ "require": {
2030
+ "php": ">=5.6"
2031
+ },
2032
+ "type": "library",
2033
+ "extra": {
2034
+ "branch-alias": {
2035
+ "dev-master": "2.0.x-dev"
2036
+ }
2037
+ },
2038
+ "autoload": {
2039
+ "classmap": [
2040
+ "src/"
2041
+ ]
2042
+ },
2043
+ "notification-url": "https://packagist.org/downloads/",
2044
+ "license": [
2045
+ "BSD-3-Clause"
2046
+ ],
2047
+ "authors": [
2048
+ {
2049
+ "name": "Sebastian Bergmann",
2050
+ "email": "sebastian@phpunit.de",
2051
+ "role": "lead"
2052
+ }
2053
+ ],
2054
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
2055
+ "homepage": "https://github.com/sebastianbergmann/version",
2056
+ "time": "2016-10-03T07:35:21+00:00"
2057
+ },
2058
+ {
2059
+ "name": "setasign/fpdi",
2060
+ "version": "1.6.2",
2061
+ "source": {
2062
+ "type": "git",
2063
+ "url": "https://github.com/Setasign/FPDI.git",
2064
+ "reference": "a6ad58897a6d97cc2d2cd2adaeda343b25a368ea"
2065
+ },
2066
+ "dist": {
2067
+ "type": "zip",
2068
+ "url": "https://api.github.com/repos/Setasign/FPDI/zipball/a6ad58897a6d97cc2d2cd2adaeda343b25a368ea",
2069
+ "reference": "a6ad58897a6d97cc2d2cd2adaeda343b25a368ea",
2070
+ "shasum": ""
2071
+ },
2072
+ "suggest": {
2073
+ "setasign/fpdf": "FPDI will extend this class but as it is also possible to use \"tecnickcom/tcpdf\" as an alternative there's no fixed dependency configured.",
2074
+ "setasign/fpdi-fpdf": "Use this package to automatically evaluate dependencies to FPDF.",
2075
+ "setasign/fpdi-tcpdf": "Use this package to automatically evaluate dependencies to TCPDF."
2076
+ },
2077
+ "type": "library",
2078
+ "autoload": {
2079
+ "classmap": [
2080
+ "filters/",
2081
+ "fpdi.php",
2082
+ "fpdf_tpl.php",
2083
+ "fpdi_pdf_parser.php",
2084
+ "pdf_context.php"
2085
+ ]
2086
+ },
2087
+ "notification-url": "https://packagist.org/downloads/",
2088
+ "license": [
2089
+ "MIT"
2090
+ ],
2091
+ "authors": [
2092
+ {
2093
+ "name": "Jan Slabon",
2094
+ "email": "jan.slabon@setasign.com",
2095
+ "homepage": "https://www.setasign.com"
2096
+ }
2097
+ ],
2098
+ "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.",
2099
+ "homepage": "https://www.setasign.com/fpdi",
2100
+ "keywords": [
2101
+ "fpdf",
2102
+ "fpdi",
2103
+ "pdf"
2104
+ ],
2105
+ "time": "2017-05-11T14:25:49+00:00"
2106
+ },
2107
+ {
2108
+ "name": "squizlabs/php_codesniffer",
2109
+ "version": "2.8.1",
2110
+ "source": {
2111
+ "type": "git",
2112
+ "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
2113
+ "reference": "d7cf0d894e8aa4c73712ee4a331cc1eaa37cdc7d"
2114
+ },
2115
+ "dist": {
2116
+ "type": "zip",
2117
+ "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/d7cf0d894e8aa4c73712ee4a331cc1eaa37cdc7d",
2118
+ "reference": "d7cf0d894e8aa4c73712ee4a331cc1eaa37cdc7d",
2119
+ "shasum": ""
2120
+ },
2121
+ "require": {
2122
+ "ext-simplexml": "*",
2123
+ "ext-tokenizer": "*",
2124
+ "ext-xmlwriter": "*",
2125
+ "php": ">=5.1.2"
2126
+ },
2127
+ "require-dev": {
2128
+ "phpunit/phpunit": "~4.0"
2129
+ },
2130
+ "bin": [
2131
+ "scripts/phpcs",
2132
+ "scripts/phpcbf"
2133
+ ],
2134
+ "type": "library",
2135
+ "extra": {
2136
+ "branch-alias": {
2137
+ "dev-master": "2.x-dev"
2138
+ }
2139
+ },
2140
+ "autoload": {
2141
+ "classmap": [
2142
+ "CodeSniffer.php",
2143
+ "CodeSniffer/CLI.php",
2144
+ "CodeSniffer/Exception.php",
2145
+ "CodeSniffer/File.php",
2146
+ "CodeSniffer/Fixer.php",
2147
+ "CodeSniffer/Report.php",
2148
+ "CodeSniffer/Reporting.php",
2149
+ "CodeSniffer/Sniff.php",
2150
+ "CodeSniffer/Tokens.php",
2151
+ "CodeSniffer/Reports/",
2152
+ "CodeSniffer/Tokenizers/",
2153
+ "CodeSniffer/DocGenerators/",
2154
+ "CodeSniffer/Standards/AbstractPatternSniff.php",
2155
+ "CodeSniffer/Standards/AbstractScopeSniff.php",
2156
+ "CodeSniffer/Standards/AbstractVariableSniff.php",
2157
+ "CodeSniffer/Standards/IncorrectPatternException.php",
2158
+ "CodeSniffer/Standards/Generic/Sniffs/",
2159
+ "CodeSniffer/Standards/MySource/Sniffs/",
2160
+ "CodeSniffer/Standards/PEAR/Sniffs/",
2161
+ "CodeSniffer/Standards/PSR1/Sniffs/",
2162
+ "CodeSniffer/Standards/PSR2/Sniffs/",
2163
+ "CodeSniffer/Standards/Squiz/Sniffs/",
2164
+ "CodeSniffer/Standards/Zend/Sniffs/"
2165
+ ]
2166
+ },
2167
+ "notification-url": "https://packagist.org/downloads/",
2168
+ "license": [
2169
+ "BSD-3-Clause"
2170
+ ],
2171
+ "authors": [
2172
+ {
2173
+ "name": "Greg Sherwood",
2174
+ "role": "lead"
2175
+ }
2176
+ ],
2177
+ "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
2178
+ "homepage": "http://www.squizlabs.com/php-codesniffer",
2179
+ "keywords": [
2180
+ "phpcs",
2181
+ "standards"
2182
+ ],
2183
+ "time": "2017-03-01T22:17:45+00:00"
2184
+ },
2185
+ {
2186
+ "name": "symfony/console",
2187
+ "version": "v4.0.3",
2188
+ "source": {
2189
+ "type": "git",
2190
+ "url": "https://github.com/symfony/console.git",
2191
+ "reference": "fe0e69d7162cba0885791cf7eea5f0d7bc0f897e"
2192
+ },
2193
+ "dist": {
2194
+ "type": "zip",
2195
+ "url": "https://api.github.com/repos/symfony/console/zipball/fe0e69d7162cba0885791cf7eea5f0d7bc0f897e",
2196
+ "reference": "fe0e69d7162cba0885791cf7eea5f0d7bc0f897e",
2197
+ "shasum": ""
2198
+ },
2199
+ "require": {
2200
+ "php": "^7.1.3",
2201
+ "symfony/polyfill-mbstring": "~1.0"
2202
+ },
2203
+ "conflict": {
2204
+ "symfony/dependency-injection": "<3.4",
2205
+ "symfony/process": "<3.3"
2206
+ },
2207
+ "require-dev": {
2208
+ "psr/log": "~1.0",
2209
+ "symfony/config": "~3.4|~4.0",
2210
+ "symfony/dependency-injection": "~3.4|~4.0",
2211
+ "symfony/event-dispatcher": "~3.4|~4.0",
2212
+ "symfony/lock": "~3.4|~4.0",
2213
+ "symfony/process": "~3.4|~4.0"
2214
+ },
2215
+ "suggest": {
2216
+ "psr/log": "For using the console logger",
2217
+ "symfony/event-dispatcher": "",
2218
+ "symfony/lock": "",
2219
+ "symfony/process": ""
2220
+ },
2221
+ "type": "library",
2222
+ "extra": {
2223
+ "branch-alias": {
2224
+ "dev-master": "4.0-dev"
2225
+ }
2226
+ },
2227
+ "autoload": {
2228
+ "psr-4": {
2229
+ "Symfony\\Component\\Console\\": ""
2230
+ },
2231
+ "exclude-from-classmap": [
2232
+ "/Tests/"
2233
+ ]
2234
+ },
2235
+ "notification-url": "https://packagist.org/downloads/",
2236
+ "license": [
2237
+ "MIT"
2238
+ ],
2239
+ "authors": [
2240
+ {
2241
+ "name": "Fabien Potencier",
2242
+ "email": "fabien@symfony.com"
2243
+ },
2244
+ {
2245
+ "name": "Symfony Community",
2246
+ "homepage": "https://symfony.com/contributors"
2247
+ }
2248
+ ],
2249
+ "description": "Symfony Console Component",
2250
+ "homepage": "https://symfony.com",
2251
+ "time": "2018-01-03T07:38:00+00:00"
2252
+ },
2253
+ {
2254
+ "name": "symfony/event-dispatcher",
2255
+ "version": "v4.0.3",
2256
+ "source": {
2257
+ "type": "git",
2258
+ "url": "https://github.com/symfony/event-dispatcher.git",
2259
+ "reference": "74d33aac36208c4d6757807d9f598f0133a3a4eb"
2260
+ },
2261
+ "dist": {
2262
+ "type": "zip",
2263
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/74d33aac36208c4d6757807d9f598f0133a3a4eb",
2264
+ "reference": "74d33aac36208c4d6757807d9f598f0133a3a4eb",
2265
+ "shasum": ""
2266
+ },
2267
+ "require": {
2268
+ "php": "^7.1.3"
2269
+ },
2270
+ "conflict": {
2271
+ "symfony/dependency-injection": "<3.4"
2272
+ },
2273
+ "require-dev": {
2274
+ "psr/log": "~1.0",
2275
+ "symfony/config": "~3.4|~4.0",
2276
+ "symfony/dependency-injection": "~3.4|~4.0",
2277
+ "symfony/expression-language": "~3.4|~4.0",
2278
+ "symfony/stopwatch": "~3.4|~4.0"
2279
+ },
2280
+ "suggest": {
2281
+ "symfony/dependency-injection": "",
2282
+ "symfony/http-kernel": ""
2283
+ },
2284
+ "type": "library",
2285
+ "extra": {
2286
+ "branch-alias": {
2287
+ "dev-master": "4.0-dev"
2288
+ }
2289
+ },
2290
+ "autoload": {
2291
+ "psr-4": {
2292
+ "Symfony\\Component\\EventDispatcher\\": ""
2293
+ },
2294
+ "exclude-from-classmap": [
2295
+ "/Tests/"
2296
+ ]
2297
+ },
2298
+ "notification-url": "https://packagist.org/downloads/",
2299
+ "license": [
2300
+ "MIT"
2301
+ ],
2302
+ "authors": [
2303
+ {
2304
+ "name": "Fabien Potencier",
2305
+ "email": "fabien@symfony.com"
2306
+ },
2307
+ {
2308
+ "name": "Symfony Community",
2309
+ "homepage": "https://symfony.com/contributors"
2310
+ }
2311
+ ],
2312
+ "description": "Symfony EventDispatcher Component",
2313
+ "homepage": "https://symfony.com",
2314
+ "time": "2018-01-03T07:38:00+00:00"
2315
+ },
2316
+ {
2317
+ "name": "symfony/filesystem",
2318
+ "version": "v4.0.3",
2319
+ "source": {
2320
+ "type": "git",
2321
+ "url": "https://github.com/symfony/filesystem.git",
2322
+ "reference": "760e47a4ee64b4c48f4b30017011e09d4c0f05ed"
2323
+ },
2324
+ "dist": {
2325
+ "type": "zip",
2326
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/760e47a4ee64b4c48f4b30017011e09d4c0f05ed",
2327
+ "reference": "760e47a4ee64b4c48f4b30017011e09d4c0f05ed",
2328
+ "shasum": ""
2329
+ },
2330
+ "require": {
2331
+ "php": "^7.1.3"
2332
+ },
2333
+ "type": "library",
2334
+ "extra": {
2335
+ "branch-alias": {
2336
+ "dev-master": "4.0-dev"
2337
+ }
2338
+ },
2339
+ "autoload": {
2340
+ "psr-4": {
2341
+ "Symfony\\Component\\Filesystem\\": ""
2342
+ },
2343
+ "exclude-from-classmap": [
2344
+ "/Tests/"
2345
+ ]
2346
+ },
2347
+ "notification-url": "https://packagist.org/downloads/",
2348
+ "license": [
2349
+ "MIT"
2350
+ ],
2351
+ "authors": [
2352
+ {
2353
+ "name": "Fabien Potencier",
2354
+ "email": "fabien@symfony.com"
2355
+ },
2356
+ {
2357
+ "name": "Symfony Community",
2358
+ "homepage": "https://symfony.com/contributors"
2359
+ }
2360
+ ],
2361
+ "description": "Symfony Filesystem Component",
2362
+ "homepage": "https://symfony.com",
2363
+ "time": "2018-01-03T07:38:00+00:00"
2364
+ },
2365
+ {
2366
+ "name": "symfony/finder",
2367
+ "version": "v4.0.3",
2368
+ "source": {
2369
+ "type": "git",
2370
+ "url": "https://github.com/symfony/finder.git",
2371
+ "reference": "8b08180f2b7ccb41062366b9ad91fbc4f1af8601"
2372
+ },
2373
+ "dist": {
2374
+ "type": "zip",
2375
+ "url": "https://api.github.com/repos/symfony/finder/zipball/8b08180f2b7ccb41062366b9ad91fbc4f1af8601",
2376
+ "reference": "8b08180f2b7ccb41062366b9ad91fbc4f1af8601",
2377
+ "shasum": ""
2378
+ },
2379
+ "require": {
2380
+ "php": "^7.1.3"
2381
+ },
2382
+ "type": "library",
2383
+ "extra": {
2384
+ "branch-alias": {
2385
+ "dev-master": "4.0-dev"
2386
+ }
2387
+ },
2388
+ "autoload": {
2389
+ "psr-4": {
2390
+ "Symfony\\Component\\Finder\\": ""
2391
+ },
2392
+ "exclude-from-classmap": [
2393
+ "/Tests/"
2394
+ ]
2395
+ },
2396
+ "notification-url": "https://packagist.org/downloads/",
2397
+ "license": [
2398
+ "MIT"
2399
+ ],
2400
+ "authors": [
2401
+ {
2402
+ "name": "Fabien Potencier",
2403
+ "email": "fabien@symfony.com"
2404
+ },
2405
+ {
2406
+ "name": "Symfony Community",
2407
+ "homepage": "https://symfony.com/contributors"
2408
+ }
2409
+ ],
2410
+ "description": "Symfony Finder Component",
2411
+ "homepage": "https://symfony.com",
2412
+ "time": "2018-01-03T07:38:00+00:00"
2413
+ },
2414
+ {
2415
+ "name": "symfony/options-resolver",
2416
+ "version": "v4.0.3",
2417
+ "source": {
2418
+ "type": "git",
2419
+ "url": "https://github.com/symfony/options-resolver.git",
2420
+ "reference": "30d9240b30696a69e893534c9fc4a5c72ab6689b"
2421
+ },
2422
+ "dist": {
2423
+ "type": "zip",
2424
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/30d9240b30696a69e893534c9fc4a5c72ab6689b",
2425
+ "reference": "30d9240b30696a69e893534c9fc4a5c72ab6689b",
2426
+ "shasum": ""
2427
+ },
2428
+ "require": {
2429
+ "php": "^7.1.3"
2430
+ },
2431
+ "type": "library",
2432
+ "extra": {
2433
+ "branch-alias": {
2434
+ "dev-master": "4.0-dev"
2435
+ }
2436
+ },
2437
+ "autoload": {
2438
+ "psr-4": {
2439
+ "Symfony\\Component\\OptionsResolver\\": ""
2440
+ },
2441
+ "exclude-from-classmap": [
2442
+ "/Tests/"
2443
+ ]
2444
+ },
2445
+ "notification-url": "https://packagist.org/downloads/",
2446
+ "license": [
2447
+ "MIT"
2448
+ ],
2449
+ "authors": [
2450
+ {
2451
+ "name": "Fabien Potencier",
2452
+ "email": "fabien@symfony.com"
2453
+ },
2454
+ {
2455
+ "name": "Symfony Community",
2456
+ "homepage": "https://symfony.com/contributors"
2457
+ }
2458
+ ],
2459
+ "description": "Symfony OptionsResolver Component",
2460
+ "homepage": "https://symfony.com",
2461
+ "keywords": [
2462
+ "config",
2463
+ "configuration",
2464
+ "options"
2465
+ ],
2466
+ "time": "2018-01-03T07:38:00+00:00"
2467
+ },
2468
+ {
2469
+ "name": "symfony/polyfill-mbstring",
2470
+ "version": "v1.6.0",
2471
+ "source": {
2472
+ "type": "git",
2473
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
2474
+ "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
2475
+ },
2476
+ "dist": {
2477
+ "type": "zip",
2478
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
2479
+ "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
2480
+ "shasum": ""
2481
+ },
2482
+ "require": {
2483
+ "php": ">=5.3.3"
2484
+ },
2485
+ "suggest": {
2486
+ "ext-mbstring": "For best performance"
2487
+ },
2488
+ "type": "library",
2489
+ "extra": {
2490
+ "branch-alias": {
2491
+ "dev-master": "1.6-dev"
2492
+ }
2493
+ },
2494
+ "autoload": {
2495
+ "psr-4": {
2496
+ "Symfony\\Polyfill\\Mbstring\\": ""
2497
+ },
2498
+ "files": [
2499
+ "bootstrap.php"
2500
+ ]
2501
+ },
2502
+ "notification-url": "https://packagist.org/downloads/",
2503
+ "license": [
2504
+ "MIT"
2505
+ ],
2506
+ "authors": [
2507
+ {
2508
+ "name": "Nicolas Grekas",
2509
+ "email": "p@tchwork.com"
2510
+ },
2511
+ {
2512
+ "name": "Symfony Community",
2513
+ "homepage": "https://symfony.com/contributors"
2514
+ }
2515
+ ],
2516
+ "description": "Symfony polyfill for the Mbstring extension",
2517
+ "homepage": "https://symfony.com",
2518
+ "keywords": [
2519
+ "compatibility",
2520
+ "mbstring",
2521
+ "polyfill",
2522
+ "portable",
2523
+ "shim"
2524
+ ],
2525
+ "time": "2017-10-11T12:05:26+00:00"
2526
+ },
2527
+ {
2528
+ "name": "symfony/polyfill-php54",
2529
+ "version": "v1.3.0",
2530
+ "source": {
2531
+ "type": "git",
2532
+ "url": "https://github.com/symfony/polyfill-php54.git",
2533
+ "reference": "90e085822963fdcc9d1c5b73deb3d2e5783b16a0"
2534
+ },
2535
+ "dist": {
2536
+ "type": "zip",
2537
+ "url": "https://api.github.com/repos/symfony/polyfill-php54/zipball/90e085822963fdcc9d1c5b73deb3d2e5783b16a0",
2538
+ "reference": "90e085822963fdcc9d1c5b73deb3d2e5783b16a0",
2539
+ "shasum": ""
2540
+ },
2541
+ "require": {
2542
+ "php": ">=5.3.3"
2543
+ },
2544
+ "type": "library",
2545
+ "extra": {
2546
+ "branch-alias": {
2547
+ "dev-master": "1.3-dev"
2548
+ }
2549
+ },
2550
+ "autoload": {
2551
+ "psr-4": {
2552
+ "Symfony\\Polyfill\\Php54\\": ""
2553
+ },
2554
+ "files": [
2555
+ "bootstrap.php"
2556
+ ],
2557
+ "classmap": [
2558
+ "Resources/stubs"
2559
+ ]
2560
+ },
2561
+ "notification-url": "https://packagist.org/downloads/",
2562
+ "license": [
2563
+ "MIT"
2564
+ ],
2565
+ "authors": [
2566
+ {
2567
+ "name": "Nicolas Grekas",
2568
+ "email": "p@tchwork.com"
2569
+ },
2570
+ {
2571
+ "name": "Symfony Community",
2572
+ "homepage": "https://symfony.com/contributors"
2573
+ }
2574
+ ],
2575
+ "description": "Symfony polyfill backporting some PHP 5.4+ features to lower PHP versions",
2576
+ "homepage": "https://symfony.com",
2577
+ "keywords": [
2578
+ "compatibility",
2579
+ "polyfill",
2580
+ "portable",
2581
+ "shim"
2582
+ ],
2583
+ "time": "2016-11-14T01:06:16+00:00"
2584
+ },
2585
+ {
2586
+ "name": "symfony/polyfill-php55",
2587
+ "version": "v1.3.0",
2588
+ "source": {
2589
+ "type": "git",
2590
+ "url": "https://github.com/symfony/polyfill-php55.git",
2591
+ "reference": "03e3f0350bca2220e3623a0e340eef194405fc67"
2592
+ },
2593
+ "dist": {
2594
+ "type": "zip",
2595
+ "url": "https://api.github.com/repos/symfony/polyfill-php55/zipball/03e3f0350bca2220e3623a0e340eef194405fc67",
2596
+ "reference": "03e3f0350bca2220e3623a0e340eef194405fc67",
2597
+ "shasum": ""
2598
+ },
2599
+ "require": {
2600
+ "ircmaxell/password-compat": "~1.0",
2601
+ "php": ">=5.3.3"
2602
+ },
2603
+ "type": "library",
2604
+ "extra": {
2605
+ "branch-alias": {
2606
+ "dev-master": "1.3-dev"
2607
+ }
2608
+ },
2609
+ "autoload": {
2610
+ "psr-4": {
2611
+ "Symfony\\Polyfill\\Php55\\": ""
2612
+ },
2613
+ "files": [
2614
+ "bootstrap.php"
2615
+ ]
2616
+ },
2617
+ "notification-url": "https://packagist.org/downloads/",
2618
+ "license": [
2619
+ "MIT"
2620
+ ],
2621
+ "authors": [
2622
+ {
2623
+ "name": "Nicolas Grekas",
2624
+ "email": "p@tchwork.com"
2625
+ },
2626
+ {
2627
+ "name": "Symfony Community",
2628
+ "homepage": "https://symfony.com/contributors"
2629
+ }
2630
+ ],
2631
+ "description": "Symfony polyfill backporting some PHP 5.5+ features to lower PHP versions",
2632
+ "homepage": "https://symfony.com",
2633
+ "keywords": [
2634
+ "compatibility",
2635
+ "polyfill",
2636
+ "portable",
2637
+ "shim"
2638
+ ],
2639
+ "time": "2016-11-14T01:06:16+00:00"
2640
+ },
2641
+ {
2642
+ "name": "symfony/polyfill-php70",
2643
+ "version": "v1.6.0",
2644
+ "source": {
2645
+ "type": "git",
2646
+ "url": "https://github.com/symfony/polyfill-php70.git",
2647
+ "reference": "0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff"
2648
+ },
2649
+ "dist": {
2650
+ "type": "zip",
2651
+ "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff",
2652
+ "reference": "0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff",
2653
+ "shasum": ""
2654
+ },
2655
+ "require": {
2656
+ "paragonie/random_compat": "~1.0|~2.0",
2657
+ "php": ">=5.3.3"
2658
+ },
2659
+ "type": "library",
2660
+ "extra": {
2661
+ "branch-alias": {
2662
+ "dev-master": "1.6-dev"
2663
+ }
2664
+ },
2665
+ "autoload": {
2666
+ "psr-4": {
2667
+ "Symfony\\Polyfill\\Php70\\": ""
2668
+ },
2669
+ "files": [
2670
+ "bootstrap.php"
2671
+ ],
2672
+ "classmap": [
2673
+ "Resources/stubs"
2674
+ ]
2675
+ },
2676
+ "notification-url": "https://packagist.org/downloads/",
2677
+ "license": [
2678
+ "MIT"
2679
+ ],
2680
+ "authors": [
2681
+ {
2682
+ "name": "Nicolas Grekas",
2683
+ "email": "p@tchwork.com"
2684
+ },
2685
+ {
2686
+ "name": "Symfony Community",
2687
+ "homepage": "https://symfony.com/contributors"
2688
+ }
2689
+ ],
2690
+ "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions",
2691
+ "homepage": "https://symfony.com",
2692
+ "keywords": [
2693
+ "compatibility",
2694
+ "polyfill",
2695
+ "portable",
2696
+ "shim"
2697
+ ],
2698
+ "time": "2017-10-11T12:05:26+00:00"
2699
+ },
2700
+ {
2701
+ "name": "symfony/polyfill-php72",
2702
+ "version": "v1.6.0",
2703
+ "source": {
2704
+ "type": "git",
2705
+ "url": "https://github.com/symfony/polyfill-php72.git",
2706
+ "reference": "6de4f4884b97abbbed9f0a84a95ff2ff77254254"
2707
+ },
2708
+ "dist": {
2709
+ "type": "zip",
2710
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/6de4f4884b97abbbed9f0a84a95ff2ff77254254",
2711
+ "reference": "6de4f4884b97abbbed9f0a84a95ff2ff77254254",
2712
+ "shasum": ""
2713
+ },
2714
+ "require": {
2715
+ "php": ">=5.3.3"
2716
+ },
2717
+ "type": "library",
2718
+ "extra": {
2719
+ "branch-alias": {
2720
+ "dev-master": "1.6-dev"
2721
+ }
2722
+ },
2723
+ "autoload": {
2724
+ "psr-4": {
2725
+ "Symfony\\Polyfill\\Php72\\": ""
2726
+ },
2727
+ "files": [
2728
+ "bootstrap.php"
2729
+ ]
2730
+ },
2731
+ "notification-url": "https://packagist.org/downloads/",
2732
+ "license": [
2733
+ "MIT"
2734
+ ],
2735
+ "authors": [
2736
+ {
2737
+ "name": "Nicolas Grekas",
2738
+ "email": "p@tchwork.com"
2739
+ },
2740
+ {
2741
+ "name": "Symfony Community",
2742
+ "homepage": "https://symfony.com/contributors"
2743
+ }
2744
+ ],
2745
+ "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
2746
+ "homepage": "https://symfony.com",
2747
+ "keywords": [
2748
+ "compatibility",
2749
+ "polyfill",
2750
+ "portable",
2751
+ "shim"
2752
+ ],
2753
+ "time": "2017-10-11T12:05:26+00:00"
2754
+ },
2755
+ {
2756
+ "name": "symfony/polyfill-xml",
2757
+ "version": "v1.3.0",
2758
+ "source": {
2759
+ "type": "git",
2760
+ "url": "https://github.com/symfony/polyfill-xml.git",
2761
+ "reference": "64b6a864f18ab4fddad49f5025f805f6781dfabd"
2762
+ },
2763
+ "dist": {
2764
+ "type": "zip",
2765
+ "url": "https://api.github.com/repos/symfony/polyfill-xml/zipball/64b6a864f18ab4fddad49f5025f805f6781dfabd",
2766
+ "reference": "64b6a864f18ab4fddad49f5025f805f6781dfabd",
2767
+ "shasum": ""
2768
+ },
2769
+ "require": {
2770
+ "php": ">=5.3.3"
2771
+ },
2772
+ "suggest": {
2773
+ "ext-xml": "For best performance"
2774
+ },
2775
+ "type": "library",
2776
+ "extra": {
2777
+ "branch-alias": {
2778
+ "dev-master": "1.3-dev"
2779
+ }
2780
+ },
2781
+ "autoload": {
2782
+ "psr-4": {
2783
+ "Symfony\\Polyfill\\Xml\\": ""
2784
+ },
2785
+ "files": [
2786
+ "bootstrap.php"
2787
+ ]
2788
+ },
2789
+ "notification-url": "https://packagist.org/downloads/",
2790
+ "license": [
2791
+ "MIT"
2792
+ ],
2793
+ "authors": [
2794
+ {
2795
+ "name": "Nicolas Grekas",
2796
+ "email": "p@tchwork.com"
2797
+ },
2798
+ {
2799
+ "name": "Symfony Community",
2800
+ "homepage": "https://symfony.com/contributors"
2801
+ }
2802
+ ],
2803
+ "description": "Symfony polyfill for xml's utf8_encode and utf8_decode functions",
2804
+ "homepage": "https://symfony.com",
2805
+ "keywords": [
2806
+ "compatibility",
2807
+ "polyfill",
2808
+ "portable",
2809
+ "shim"
2810
+ ],
2811
+ "time": "2016-11-14T01:06:16+00:00"
2812
+ },
2813
+ {
2814
+ "name": "symfony/process",
2815
+ "version": "v4.0.3",
2816
+ "source": {
2817
+ "type": "git",
2818
+ "url": "https://github.com/symfony/process.git",
2819
+ "reference": "2145b3e8137e463b1051b79440a59b38220944f0"
2820
+ },
2821
+ "dist": {
2822
+ "type": "zip",
2823
+ "url": "https://api.github.com/repos/symfony/process/zipball/2145b3e8137e463b1051b79440a59b38220944f0",
2824
+ "reference": "2145b3e8137e463b1051b79440a59b38220944f0",
2825
+ "shasum": ""
2826
+ },
2827
+ "require": {
2828
+ "php": "^7.1.3"
2829
+ },
2830
+ "type": "library",
2831
+ "extra": {
2832
+ "branch-alias": {
2833
+ "dev-master": "4.0-dev"
2834
+ }
2835
+ },
2836
+ "autoload": {
2837
+ "psr-4": {
2838
+ "Symfony\\Component\\Process\\": ""
2839
+ },
2840
+ "exclude-from-classmap": [
2841
+ "/Tests/"
2842
+ ]
2843
+ },
2844
+ "notification-url": "https://packagist.org/downloads/",
2845
+ "license": [
2846
+ "MIT"
2847
+ ],
2848
+ "authors": [
2849
+ {
2850
+ "name": "Fabien Potencier",
2851
+ "email": "fabien@symfony.com"
2852
+ },
2853
+ {
2854
+ "name": "Symfony Community",
2855
+ "homepage": "https://symfony.com/contributors"
2856
+ }
2857
+ ],
2858
+ "description": "Symfony Process Component",
2859
+ "homepage": "https://symfony.com",
2860
+ "time": "2018-01-03T07:38:00+00:00"
2861
+ },
2862
+ {
2863
+ "name": "symfony/stopwatch",
2864
+ "version": "v4.0.3",
2865
+ "source": {
2866
+ "type": "git",
2867
+ "url": "https://github.com/symfony/stopwatch.git",
2868
+ "reference": "d52321f0e2b596bd03b5d1dd6eebe71caa925704"
2869
+ },
2870
+ "dist": {
2871
+ "type": "zip",
2872
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/d52321f0e2b596bd03b5d1dd6eebe71caa925704",
2873
+ "reference": "d52321f0e2b596bd03b5d1dd6eebe71caa925704",
2874
+ "shasum": ""
2875
+ },
2876
+ "require": {
2877
+ "php": "^7.1.3"
2878
+ },
2879
+ "type": "library",
2880
+ "extra": {
2881
+ "branch-alias": {
2882
+ "dev-master": "4.0-dev"
2883
+ }
2884
+ },
2885
+ "autoload": {
2886
+ "psr-4": {
2887
+ "Symfony\\Component\\Stopwatch\\": ""
2888
+ },
2889
+ "exclude-from-classmap": [
2890
+ "/Tests/"
2891
+ ]
2892
+ },
2893
+ "notification-url": "https://packagist.org/downloads/",
2894
+ "license": [
2895
+ "MIT"
2896
+ ],
2897
+ "authors": [
2898
+ {
2899
+ "name": "Fabien Potencier",
2900
+ "email": "fabien@symfony.com"
2901
+ },
2902
+ {
2903
+ "name": "Symfony Community",
2904
+ "homepage": "https://symfony.com/contributors"
2905
+ }
2906
+ ],
2907
+ "description": "Symfony Stopwatch Component",
2908
+ "homepage": "https://symfony.com",
2909
+ "time": "2018-01-03T07:38:00+00:00"
2910
+ },
2911
+ {
2912
+ "name": "symfony/yaml",
2913
+ "version": "v3.2.6",
2914
+ "source": {
2915
+ "type": "git",
2916
+ "url": "https://github.com/symfony/yaml.git",
2917
+ "reference": "093e416ad096355149e265ea2e4cc1f9ee40ab1a"
2918
+ },
2919
+ "dist": {
2920
+ "type": "zip",
2921
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/093e416ad096355149e265ea2e4cc1f9ee40ab1a",
2922
+ "reference": "093e416ad096355149e265ea2e4cc1f9ee40ab1a",
2923
+ "shasum": ""
2924
+ },
2925
+ "require": {
2926
+ "php": ">=5.5.9"
2927
+ },
2928
+ "require-dev": {
2929
+ "symfony/console": "~2.8|~3.0"
2930
+ },
2931
+ "suggest": {
2932
+ "symfony/console": "For validating YAML files using the lint command"
2933
+ },
2934
+ "type": "library",
2935
+ "extra": {
2936
+ "branch-alias": {
2937
+ "dev-master": "3.2-dev"
2938
+ }
2939
+ },
2940
+ "autoload": {
2941
+ "psr-4": {
2942
+ "Symfony\\Component\\Yaml\\": ""
2943
+ },
2944
+ "exclude-from-classmap": [
2945
+ "/Tests/"
2946
+ ]
2947
+ },
2948
+ "notification-url": "https://packagist.org/downloads/",
2949
+ "license": [
2950
+ "MIT"
2951
+ ],
2952
+ "authors": [
2953
+ {
2954
+ "name": "Fabien Potencier",
2955
+ "email": "fabien@symfony.com"
2956
+ },
2957
+ {
2958
+ "name": "Symfony Community",
2959
+ "homepage": "https://symfony.com/contributors"
2960
+ }
2961
+ ],
2962
+ "description": "Symfony Yaml Component",
2963
+ "homepage": "https://symfony.com",
2964
+ "time": "2017-03-07T16:47:02+00:00"
2965
+ },
2966
+ {
2967
+ "name": "tecnickcom/tcpdf",
2968
+ "version": "6.2.12",
2969
+ "source": {
2970
+ "type": "git",
2971
+ "url": "https://github.com/tecnickcom/TCPDF.git",
2972
+ "reference": "2f732eaa91b5665274689b1d40b285a7bacdc37f"
2973
+ },
2974
+ "dist": {
2975
+ "type": "zip",
2976
+ "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/2f732eaa91b5665274689b1d40b285a7bacdc37f",
2977
+ "reference": "2f732eaa91b5665274689b1d40b285a7bacdc37f",
2978
+ "shasum": ""
2979
+ },
2980
+ "require": {
2981
+ "php": ">=5.3.0"
2982
+ },
2983
+ "type": "library",
2984
+ "autoload": {
2985
+ "classmap": [
2986
+ "fonts",
2987
+ "config",
2988
+ "include",
2989
+ "tcpdf.php",
2990
+ "tcpdf_parser.php",
2991
+ "tcpdf_import.php",
2992
+ "tcpdf_barcodes_1d.php",
2993
+ "tcpdf_barcodes_2d.php",
2994
+ "include/tcpdf_colors.php",
2995
+ "include/tcpdf_filters.php",
2996
+ "include/tcpdf_font_data.php",
2997
+ "include/tcpdf_fonts.php",
2998
+ "include/tcpdf_images.php",
2999
+ "include/tcpdf_static.php",
3000
+ "include/barcodes/datamatrix.php",
3001
+ "include/barcodes/pdf417.php",
3002
+ "include/barcodes/qrcode.php"
3003
+ ]
3004
+ },
3005
+ "notification-url": "https://packagist.org/downloads/",
3006
+ "license": [
3007
+ "LGPLv3"
3008
+ ],
3009
+ "authors": [
3010
+ {
3011
+ "name": "Nicola Asuni",
3012
+ "email": "info@tecnick.com",
3013
+ "homepage": "http://nicolaasuni.tecnick.com"
3014
+ }
3015
+ ],
3016
+ "description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
3017
+ "homepage": "http://www.tcpdf.org/",
3018
+ "keywords": [
3019
+ "PDFD32000-2008",
3020
+ "TCPDF",
3021
+ "barcodes",
3022
+ "datamatrix",
3023
+ "pdf",
3024
+ "pdf417",
3025
+ "qrcode"
3026
+ ],
3027
+ "time": "2015-09-12T10:08:34+00:00"
3028
+ },
3029
+ {
3030
+ "name": "webmozart/assert",
3031
+ "version": "1.2.0",
3032
+ "source": {
3033
+ "type": "git",
3034
+ "url": "https://github.com/webmozart/assert.git",
3035
+ "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f"
3036
+ },
3037
+ "dist": {
3038
+ "type": "zip",
3039
+ "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f",
3040
+ "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f",
3041
+ "shasum": ""
3042
+ },
3043
+ "require": {
3044
+ "php": "^5.3.3 || ^7.0"
3045
+ },
3046
+ "require-dev": {
3047
+ "phpunit/phpunit": "^4.6",
3048
+ "sebastian/version": "^1.0.1"
3049
+ },
3050
+ "type": "library",
3051
+ "extra": {
3052
+ "branch-alias": {
3053
+ "dev-master": "1.3-dev"
3054
+ }
3055
+ },
3056
+ "autoload": {
3057
+ "psr-4": {
3058
+ "Webmozart\\Assert\\": "src/"
3059
+ }
3060
+ },
3061
+ "notification-url": "https://packagist.org/downloads/",
3062
+ "license": [
3063
+ "MIT"
3064
+ ],
3065
+ "authors": [
3066
+ {
3067
+ "name": "Bernhard Schussek",
3068
+ "email": "bschussek@gmail.com"
3069
+ }
3070
+ ],
3071
+ "description": "Assertions to validate method input/output with nice error messages.",
3072
+ "keywords": [
3073
+ "assert",
3074
+ "check",
3075
+ "validate"
3076
+ ],
3077
+ "time": "2016-11-23T20:04:58+00:00"
3078
+ }
3079
+ ],
3080
+ "aliases": [],
3081
+ "minimum-stability": "stable",
3082
+ "stability-flags": {
3083
+ "friendsofphp/php-cs-fixer": 0
3084
+ },
3085
+ "prefer-stable": false,
3086
+ "prefer-lowest": false,
3087
+ "platform": {
3088
+ "php": "^5.6|^7.0",
3089
+ "ext-ctype": "*",
3090
+ "ext-dom": "*",
3091
+ "ext-gd": "*",
3092
+ "ext-iconv": "*",
3093
+ "ext-libxml": "*",
3094
+ "ext-mbstring": "*",
3095
+ "ext-simplexml": "*",
3096
+ "ext-xml": "*",
3097
+ "ext-xmlreader": "*",
3098
+ "ext-xmlwriter": "*",
3099
+ "ext-zip": "*",
3100
+ "ext-zlib": "*"
3101
+ },
3102
+ "platform-dev": []
3103
+ }
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/mkdocs.yml CHANGED
@@ -1,11 +1,11 @@
1
- site_name: PhpSpreadsheet Documentation
2
- repo_url: https://github.com/PHPOffice/phpspreadsheet
3
- edit_uri: edit/develop/docs/
4
-
5
- theme: readthedocs
6
- extra_css:
7
- - extra/extra.css
8
-
9
- extra_javascript:
10
- - extra/extra.js
11
 
1
+ site_name: PhpSpreadsheet Documentation
2
+ repo_url: https://github.com/PHPOffice/phpspreadsheet
3
+ edit_uri: edit/develop/docs/
4
+
5
+ theme: readthedocs
6
+ extra_css:
7
+ - extra/extra.css
8
+
9
+ extra_javascript:
10
+ - extra/extra.js
11
 
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/phpunit.xml.dist CHANGED
@@ -1,22 +1,22 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <phpunit bootstrap="./tests/bootstrap.php"
3
- backupGlobals="true"
4
- colors="true"
5
- syntaxCheck="true"
6
- disallowTestOutput="true">
7
- <php>
8
- <ini name="memory_limit" value="2048M"/>
9
- </php>
10
- <testsuite name="PhpSpreadsheet Unit Test Suite">
11
- <directory suffix="Test.php">./tests/PhpSpreadsheetTests</directory>
12
- </testsuite>
13
- <filter>
14
- <whitelist>
15
- <directory suffix=".php">./src</directory>
16
- <exclude>
17
- <directory>./src/PhpSpreadsheet/Shared/JAMA</directory>
18
- <directory>./src/PhpSpreadsheet/Writer/PDF</directory>
19
- </exclude>
20
- </whitelist>
21
- </filter>
22
- </phpunit>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <phpunit bootstrap="./tests/bootstrap.php"
3
+ backupGlobals="true"
4
+ colors="true"
5
+ syntaxCheck="true"
6
+ disallowTestOutput="true">
7
+ <php>
8
+ <ini name="memory_limit" value="2048M"/>
9
+ </php>
10
+ <testsuite name="PhpSpreadsheet Unit Test Suite">
11
+ <directory suffix="Test.php">./tests/PhpSpreadsheetTests</directory>
12
+ </testsuite>
13
+ <filter>
14
+ <whitelist>
15
+ <directory suffix=".php">./src</directory>
16
+ <exclude>
17
+ <directory>./src/PhpSpreadsheet/Shared/JAMA</directory>
18
+ <directory>./src/PhpSpreadsheet/Writer/PDF</directory>
19
+ </exclude>
20
+ </whitelist>
21
+ </filter>
22
+ </phpunit>
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/src/Bootstrap.php CHANGED
@@ -1,22 +1,22 @@
1
- <?php
2
-
3
- /**
4
- * Bootstrap for PhpSpreadsheet classes.
5
- */
6
-
7
- // This sucks, but we have to try to find the composer autoloader
8
-
9
- $paths = [
10
- __DIR__ . '/../vendor/autoload.php', // In case PhpSpreadsheet is cloned directly
11
- __DIR__ . '/../../../autoload.php', // In case PhpSpreadsheet is a composer dependency.
12
- ];
13
-
14
- foreach ($paths as $path) {
15
- if (file_exists($path)) {
16
- require_once $path;
17
-
18
- return;
19
- }
20
- }
21
-
22
- throw new \Exception('Composer autoloader could not be found. Install dependencies with `composer install` and try again.');
1
+ <?php
2
+
3
+ /**
4
+ * Bootstrap for PhpSpreadsheet classes.
5
+ */
6
+
7
+ // This sucks, but we have to try to find the composer autoloader
8
+
9
+ $paths = [
10
+ __DIR__ . '/../vendor/autoload.php', // In case PhpSpreadsheet is cloned directly
11
+ __DIR__ . '/../../../autoload.php', // In case PhpSpreadsheet is a composer dependency.
12
+ ];
13
+
14
+ foreach ($paths as $path) {
15
+ if (file_exists($path)) {
16
+ require_once $path;
17
+
18
+ return;
19
+ }
20
+ }
21
+
22
+ throw new \Exception('Composer autoloader could not be found. Install dependencies with `composer install` and try again.');
PHPSpreadsheet/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Calculation/Calculation.php CHANGED
@@ -1,4243 +1,4243 @@
1
- <?php
2
-
3
- namespace PhpOffice\PhpSpreadsheet\Calculation;
4
-
5
- use PhpOffice\PhpSpreadsheet\Calculation\Engine\CyclicReferenceStack;
6
- use PhpOffice\PhpSpreadsheet\Calculation\Engine\Logger;
7
- use PhpOffice\PhpSpreadsheet\Calculation\Token\Stack;
8
- use PhpOffice\PhpSpreadsheet\Cell\Cell;
9
- use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
10
- use PhpOffice\PhpSpreadsheet\NamedRange;
11
- use PhpOffice\PhpSpreadsheet\Shared;
12
- use PhpOffice\PhpSpreadsheet\Spreadsheet;
13
- use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
14
-
15
- class Calculation
16
- {
17
- /** Constants */
18
- /** Regular Expressions */
19
- // Numeric operand
20
- const CALCULATION_REGEXP_NUMBER = '[-+]?\d*\.?\d+(e[-+]?\d+)?';
21
- // String operand
22
- const CALCULATION_REGEXP_STRING = '"(?:[^"]|"")*"';
23
- // Opening bracket
24
- const CALCULATION_REGEXP_OPENBRACE = '\(';
25
- // Function (allow for the old @ symbol that could be used to prefix a function, but we'll ignore it)
26
- const CALCULATION_REGEXP_FUNCTION = '@?([A-Z][A-Z0-9\.]*)[\s]*\(';
27
- // Cell reference (cell or range of cells, with or without a sheet reference)
28
- const CALCULATION_REGEXP_CELLREF = '((([^\s,!&%^\/\*\+<>=-]*)|(\'[^\']*\')|(\"[^\"]*\"))!)?\$?([a-z]{1,3})\$?(\d{1,7})';
29
- // Named Range of cells
30
- const CALCULATION_REGEXP_NAMEDRANGE = '((([^\s,!&%^\/\*\+<>=-]*)|(\'[^\']*\')|(\"[^\"]*\"))!)?([_A-Z][_A-Z0-9\.]*)';
31
- // Error
32
- const CALCULATION_REGEXP_ERROR = '\#[A-Z][A-Z0_\/]*[!\?]?';
33
-
34
- /** constants */
35
- const RETURN_ARRAY_AS_ERROR = 'error';
36
- const RETURN_ARRAY_AS_VALUE = 'value';
37
- const RETURN_ARRAY_AS_ARRAY = 'array';
38
-
39
- private static $returnArrayAsType = self::RETURN_ARRAY_AS_VALUE;
40
-
41
- /**
42
- * Instance of this class.
43
- *
44
- * @var Calculation
45
- */
46
- private static $instance;
47
-
48
- /**
49
- * Instance of the spreadsheet this Calculation Engine is using.
50
- *
51
- * @var Spreadsheet
52
- */
53
- private $spreadsheet;
54
-
55
- /**
56
- * Calculation cache.
57
- *
58
- * @var array
59
- */
60
- private $calculationCache = [];
61
-
62
- /**
63
- * Calculation cache enabled.
64
- *
65
- * @var bool
66
- */
67
- private $calculationCacheEnabled = true;
68
-
69
- /**
70
- * List of operators that can be used within formulae
71
- * The true/false value indicates whether it is a binary operator or a unary operator.
72
- *
73
- * @var array
74
- */
75
- private static $operators = [
76
- '+' => true, '-' => true, '*' => true, '/' => true,
77
- '^' => true, '&' => true, '%' => false, '~' => false,
78
- '>' => true, '<' => true, '=' => true, '>=' => true,
79
- '<=' => true, '<>' => true, '|' => true, ':' => true,
80
- ];
81
-
82
- /**
83
- * List of binary operators (those that expect two operands).
84
- *
85
- * @var array
86
- */
87
- private static $binaryOperators = [
88
- '+' => true, '-' => true, '*' => true, '/' => true,
89
- '^' => true, '&' => true, '>' => true, '<' => true,
90
- '=' => true, '>=' => true, '<=' => true, '<>' => true,
91
- '|' => true, ':' => true,
92
- ];
93
-
94
- /**
95
- * The debug log generated by the calculation engine.
96
- *
97
- * @var Logger
98
- */
99
- private $debugLog;
100
-
101
- /**
102
- * Flag to determine how formula errors should be handled
103
- * If true, then a user error will be triggered
104
- * If false, then an exception will be thrown.
105
- *
106
- * @var bool
107
- */
108
- public $suppressFormulaErrors = false;
109
-
110
- /**
111
- * Error message for any error that was raised/thrown by the calculation engine.
112
- *
113
- * @var string
114
- */
115
- public $formulaError;
116
-
117
- /**
118
- * An array of the nested cell references accessed by the calculation engine, used for the debug log.
119
- *
120
- * @var array of string
121
- */
122
- private $cyclicReferenceStack;
123
-
124
- private $cellStack = [];
125
-
126
- /**
127
- * Current iteration counter for cyclic formulae
128
- * If the value is 0 (or less) then cyclic formulae will throw an exception,
129
- * otherwise they will iterate to the limit defined here before returning a result.
130
- *
131
- * @var int
132
- */
133
- private $cyclicFormulaCounter = 1;
134
-
135
- private $cyclicFormulaCell = '';
136
-
137
- /**
138
- * Number of iterations for cyclic formulae.
139
- *
140
- * @var int
141
- */
142
- public $cyclicFormulaCount = 1;
143
-
144
- /**
145
- * Epsilon Precision used for comparisons in calculations.
146
- *
147
- * @var float
148
- */
149
- private $delta = 0.1e-12;
150
-
151
- /**
152
- * The current locale setting.
153
- *
154
- * @var string
155
- */
156
- private static $localeLanguage = 'en_us'; // US English (default locale)
157
-
158
- /**
159
- * List of available locale settings
160
- * Note that this is read for the locale subdirectory only when requested.
161
- *
162
- * @var string[]
163
- */
164
- private static $validLocaleLanguages = [
165
- 'en', // English (default language)
166
- ];
167
-
168
- /**
169
- * Locale-specific argument separator for function arguments.
170
- *
171
- * @var string
172
- */
173
- private static $localeArgumentSeparator = ',';
174
-
175
- private static $localeFunctions = [];
176
-
177
- /**
178
- * Locale-specific translations for Excel constants (True, False and Null).
179
- *
180
- * @var string[]
181
- */
182
- public static $localeBoolean = [
183
- 'TRUE' => 'TRUE',
184
- 'FALSE' => 'FALSE',
185
- 'NULL' => 'NULL',
186
- ];
187
-
188
- /**
189
- * Excel constant string translations to their PHP equivalents
190
- * Constant conversion from text name/value to actual (datatyped) value.
191
- *
192
- * @var string[]
193
- */
194
- private static $excelConstants = [
195
- 'TRUE' => true,
196
- 'FALSE' => false,
197
- 'NULL' => null,
198
- ];
199
-
200
- // PhpSpreadsheet functions
201
- private static $phpSpreadsheetFunctions = [
202
- 'ABS' => [
203
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
204
- 'functionCall' => 'abs',
205
- 'argumentCount' => '1',
206
- ],
207
- 'ACCRINT' => [
208
- 'category' => Category::CATEGORY_FINANCIAL,
209
- 'functionCall' => [Financial::class, 'ACCRINT'],
210
- 'argumentCount' => '4-7',
211
- ],
212
- 'ACCRINTM' => [
213
- 'category' => Category::CATEGORY_FINANCIAL,
214
- 'functionCall' => [Financial::class, 'ACCRINTM'],
215
- 'argumentCount' => '3-5',
216
- ],
217
- 'ACOS' => [
218
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
219
- 'functionCall' => 'acos',
220
- 'argumentCount' => '1',
221
- ],
222
- 'ACOSH' => [
223
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
224
- 'functionCall' => 'acosh',
225
- 'argumentCount' => '1',
226
- ],
227
- 'ADDRESS' => [
228
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
229
- 'functionCall' => [LookupRef::class, 'cellAddress'],
230
- 'argumentCount' => '2-5',
231
- ],
232
- 'AMORDEGRC' => [
233
- 'category' => Category::CATEGORY_FINANCIAL,
234
- 'functionCall' => [Financial::class, 'AMORDEGRC'],
235
- 'argumentCount' => '6,7',
236
- ],
237
- 'AMORLINC' => [
238
- 'category' => Category::CATEGORY_FINANCIAL,
239
- 'functionCall' => [Financial::class, 'AMORLINC'],
240
- 'argumentCount' => '6,7',
241
- ],
242
- 'AND' => [
243
- 'category' => Category::CATEGORY_LOGICAL,
244
- 'functionCall' => [Logical::class, 'logicalAnd'],
245
- 'argumentCount' => '1+',
246
- ],
247
- 'AREAS' => [
248
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
249
- 'functionCall' => [Functions::class, 'DUMMY'],
250
- 'argumentCount' => '1',
251
- ],
252
- 'ASC' => [
253
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
254
- 'functionCall' => [Functions::class, 'DUMMY'],
255
- 'argumentCount' => '1',
256
- ],
257
- 'ASIN' => [
258
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
259
- 'functionCall' => 'asin',
260
- 'argumentCount' => '1',
261
- ],
262
- 'ASINH' => [
263
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
264
- 'functionCall' => 'asinh',
265
- 'argumentCount' => '1',
266
- ],
267
- 'ATAN' => [
268
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
269
- 'functionCall' => 'atan',
270
- 'argumentCount' => '1',
271
- ],
272
- 'ATAN2' => [
273
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
274
- 'functionCall' => [MathTrig::class, 'ATAN2'],
275
- 'argumentCount' => '2',
276
- ],
277
- 'ATANH' => [
278
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
279
- 'functionCall' => 'atanh',
280
- 'argumentCount' => '1',
281
- ],
282
- 'AVEDEV' => [
283
- 'category' => Category::CATEGORY_STATISTICAL,
284
- 'functionCall' => [Statistical::class, 'AVEDEV'],
285
- 'argumentCount' => '1+',
286
- ],
287
- 'AVERAGE' => [
288
- 'category' => Category::CATEGORY_STATISTICAL,
289
- 'functionCall' => [Statistical::class, 'AVERAGE'],
290
- 'argumentCount' => '1+',
291
- ],
292
- 'AVERAGEA' => [
293
- 'category' => Category::CATEGORY_STATISTICAL,
294
- 'functionCall' => [Statistical::class, 'AVERAGEA'],
295
- 'argumentCount' => '1+',
296
- ],
297
- 'AVERAGEIF' => [
298
- 'category' => Category::CATEGORY_STATISTICAL,
299
- 'functionCall' => [Statistical::class, 'AVERAGEIF'],
300
- 'argumentCount' => '2,3',
301
- ],
302
- 'AVERAGEIFS' => [
303
- 'category' => Category::CATEGORY_STATISTICAL,
304
- 'functionCall' => [Functions::class, 'DUMMY'],
305
- 'argumentCount' => '3+',
306
- ],
307
- 'BAHTTEXT' => [
308
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
309
- 'functionCall' => [Functions::class, 'DUMMY'],
310
- 'argumentCount' => '1',
311
- ],
312
- 'BESSELI' => [
313
- 'category' => Category::CATEGORY_ENGINEERING,
314
- 'functionCall' => [Engineering::class, 'BESSELI'],
315
- 'argumentCount' => '2',
316
- ],
317
- 'BESSELJ' => [
318
- 'category' => Category::CATEGORY_ENGINEERING,
319
- 'functionCall' => [Engineering::class, 'BESSELJ'],
320
- 'argumentCount' => '2',
321
- ],
322
- 'BESSELK' => [
323
- 'category' => Category::CATEGORY_ENGINEERING,
324
- 'functionCall' => [Engineering::class, 'BESSELK'],
325
- 'argumentCount' => '2',
326
- ],
327
- 'BESSELY' => [
328
- 'category' => Category::CATEGORY_ENGINEERING,
329
- 'functionCall' => [Engineering::class, 'BESSELY'],
330
- 'argumentCount' => '2',
331
- ],
332
- 'BETADIST' => [
333
- 'category' => Category::CATEGORY_STATISTICAL,
334
- 'functionCall' => [Statistical::class, 'BETADIST'],
335
- 'argumentCount' => '3-5',
336
- ],
337
- 'BETAINV' => [
338
- 'category' => Category::CATEGORY_STATISTICAL,
339
- 'functionCall' => [Statistical::class, 'BETAINV'],
340
- 'argumentCount' => '3-5',
341
- ],
342
- 'BIN2DEC' => [
343
- 'category' => Category::CATEGORY_ENGINEERING,
344
- 'functionCall' => [Engineering::class, 'BINTODEC'],
345
- 'argumentCount' => '1',
346
- ],
347
- 'BIN2HEX' => [
348
- 'category' => Category::CATEGORY_ENGINEERING,
349
- 'functionCall' => [Engineering::class, 'BINTOHEX'],
350
- 'argumentCount' => '1,2',
351
- ],
352
- 'BIN2OCT' => [
353
- 'category' => Category::CATEGORY_ENGINEERING,
354
- 'functionCall' => [Engineering::class, 'BINTOOCT'],
355
- 'argumentCount' => '1,2',
356
- ],
357
- 'BINOMDIST' => [
358
- 'category' => Category::CATEGORY_STATISTICAL,
359
- 'functionCall' => [Statistical::class, 'BINOMDIST'],
360
- 'argumentCount' => '4',
361
- ],
362
- 'CEILING' => [
363
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
364
- 'functionCall' => [MathTrig::class, 'CEILING'],
365
- 'argumentCount' => '2',
366
- ],
367
- 'CELL' => [
368
- 'category' => Category::CATEGORY_INFORMATION,
369
- 'functionCall' => [Functions::class, 'DUMMY'],
370
- 'argumentCount' => '1,2',
371
- ],
372
- 'CHAR' => [
373
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
374
- 'functionCall' => [TextData::class, 'CHARACTER'],
375
- 'argumentCount' => '1',
376
- ],
377
- 'CHIDIST' => [
378
- 'category' => Category::CATEGORY_STATISTICAL,
379
- 'functionCall' => [Statistical::class, 'CHIDIST'],
380
- 'argumentCount' => '2',
381
- ],
382
- 'CHIINV' => [
383
- 'category' => Category::CATEGORY_STATISTICAL,
384
- 'functionCall' => [Statistical::class, 'CHIINV'],
385
- 'argumentCount' => '2',
386
- ],
387
- 'CHITEST' => [
388
- 'category' => Category::CATEGORY_STATISTICAL,
389
- 'functionCall' => [Functions::class, 'DUMMY'],
390
- 'argumentCount' => '2',
391
- ],
392
- 'CHOOSE' => [
393
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
394
- 'functionCall' => [LookupRef::class, 'CHOOSE'],
395
- 'argumentCount' => '2+',
396
- ],
397
- 'CLEAN' => [
398
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
399
- 'functionCall' => [TextData::class, 'TRIMNONPRINTABLE'],
400
- 'argumentCount' => '1',
401
- ],
402
- 'CODE' => [
403
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
404
- 'functionCall' => [TextData::class, 'ASCIICODE'],
405
- 'argumentCount' => '1',
406
- ],
407
- 'COLUMN' => [
408
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
409
- 'functionCall' => [LookupRef::class, 'COLUMN'],
410
- 'argumentCount' => '-1',
411
- 'passByReference' => [true],
412
- ],
413
- 'COLUMNS' => [
414
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
415
- 'functionCall' => [LookupRef::class, 'COLUMNS'],
416
- 'argumentCount' => '1',
417
- ],
418
- 'COMBIN' => [
419
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
420
- 'functionCall' => [MathTrig::class, 'COMBIN'],
421
- 'argumentCount' => '2',
422
- ],
423
- 'COMPLEX' => [
424
- 'category' => Category::CATEGORY_ENGINEERING,
425
- 'functionCall' => [Engineering::class, 'COMPLEX'],
426
- 'argumentCount' => '2,3',
427
- ],
428
- 'CONCATENATE' => [
429
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
430
- 'functionCall' => [TextData::class, 'CONCATENATE'],
431
- 'argumentCount' => '1+',
432
- ],
433
- 'CONFIDENCE' => [
434
- 'category' => Category::CATEGORY_STATISTICAL,
435
- 'functionCall' => [Statistical::class, 'CONFIDENCE'],
436
- 'argumentCount' => '3',
437
- ],
438
- 'CONVERT' => [
439
- 'category' => Category::CATEGORY_ENGINEERING,
440
- 'functionCall' => [Engineering::class, 'CONVERTUOM'],
441
- 'argumentCount' => '3',
442
- ],
443
- 'CORREL' => [
444
- 'category' => Category::CATEGORY_STATISTICAL,
445
- 'functionCall' => [Statistical::class, 'CORREL'],
446
- 'argumentCount' => '2',
447
- ],
448
- 'COS' => [
449
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
450
- 'functionCall' => 'cos',
451
- 'argumentCount' => '1',
452
- ],
453
- 'COSH' => [
454
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
455
- 'functionCall' => 'cosh',
456
- 'argumentCount' => '1',
457
- ],
458
- 'COUNT' => [
459
- 'category' => Category::CATEGORY_STATISTICAL,
460
- 'functionCall' => [Statistical::class, 'COUNT'],
461
- 'argumentCount' => '1+',
462
- ],
463
- 'COUNTA' => [
464
- 'category' => Category::CATEGORY_STATISTICAL,
465
- 'functionCall' => [Statistical::class, 'COUNTA'],
466
- 'argumentCount' => '1+',
467
- ],
468
- 'COUNTBLANK' => [
469
- 'category' => Category::CATEGORY_STATISTICAL,
470
- 'functionCall' => [Statistical::class, 'COUNTBLANK'],
471
- 'argumentCount' => '1',
472
- ],
473
- 'COUNTIF' => [
474
- 'category' => Category::CATEGORY_STATISTICAL,
475
- 'functionCall' => [Statistical::class, 'COUNTIF'],
476
- 'argumentCount' => '2',
477
- ],
478
- 'COUNTIFS' => [
479
- 'category' => Category::CATEGORY_STATISTICAL,
480
- 'functionCall' => [Functions::class, 'DUMMY'],
481
- 'argumentCount' => '2',
482
- ],
483
- 'COUPDAYBS' => [
484
- 'category' => Category::CATEGORY_FINANCIAL,
485
- 'functionCall' => [Financial::class, 'COUPDAYBS'],
486
- 'argumentCount' => '3,4',
487
- ],
488
- 'COUPDAYS' => [
489
- 'category' => Category::CATEGORY_FINANCIAL,
490
- 'functionCall' => [Financial::class, 'COUPDAYS'],
491
- 'argumentCount' => '3,4',
492
- ],
493
- 'COUPDAYSNC' => [
494
- 'category' => Category::CATEGORY_FINANCIAL,
495
- 'functionCall' => [Financial::class, 'COUPDAYSNC'],
496
- 'argumentCount' => '3,4',
497
- ],
498
- 'COUPNCD' => [
499
- 'category' => Category::CATEGORY_FINANCIAL,
500
- 'functionCall' => [Financial::class, 'COUPNCD'],
501
- 'argumentCount' => '3,4',
502
- ],
503
- 'COUPNUM' => [
504
- 'category' => Category::CATEGORY_FINANCIAL,
505
- 'functionCall' => [Financial::class, 'COUPNUM'],
506
- 'argumentCount' => '3,4',
507
- ],
508
- 'COUPPCD' => [
509
- 'category' => Category::CATEGORY_FINANCIAL,
510
- 'functionCall' => [Financial::class, 'COUPPCD'],
511
- 'argumentCount' => '3,4',
512
- ],
513
- 'COVAR' => [
514
- 'category' => Category::CATEGORY_STATISTICAL,
515
- 'functionCall' => [Statistical::class, 'COVAR'],
516
- 'argumentCount' => '2',
517
- ],
518
- 'CRITBINOM' => [
519
- 'category' => Category::CATEGORY_STATISTICAL,
520
- 'functionCall' => [Statistical::class, 'CRITBINOM'],
521
- 'argumentCount' => '3',
522
- ],
523
- 'CUBEKPIMEMBER' => [
524
- 'category' => Category::CATEGORY_CUBE,
525
- 'functionCall' => [Functions::class, 'DUMMY'],
526
- 'argumentCount' => '?',
527
- ],
528
- 'CUBEMEMBER' => [
529
- 'category' => Category::CATEGORY_CUBE,
530
- 'functionCall' => [Functions::class, 'DUMMY'],
531
- 'argumentCount' => '?',
532
- ],
533
- 'CUBEMEMBERPROPERTY' => [
534
- 'category' => Category::CATEGORY_CUBE,
535
- 'functionCall' => [Functions::class, 'DUMMY'],
536
- 'argumentCount' => '?',
537
- ],
538
- 'CUBERANKEDMEMBER' => [
539
- 'category' => Category::CATEGORY_CUBE,
540
- 'functionCall' => [Functions::class, 'DUMMY'],
541
- 'argumentCount' => '?',
542
- ],
543
- 'CUBESET' => [
544
- 'category' => Category::CATEGORY_CUBE,
545
- 'functionCall' => [Functions::class, 'DUMMY'],
546
- 'argumentCount' => '?',
547
- ],
548
- 'CUBESETCOUNT' => [
549
- 'category' => Category::CATEGORY_CUBE,
550
- 'functionCall' => [Functions::class, 'DUMMY'],
551
- 'argumentCount' => '?',
552
- ],
553
- 'CUBEVALUE' => [
554
- 'category' => Category::CATEGORY_CUBE,
555
- 'functionCall' => [Functions::class, 'DUMMY'],
556
- 'argumentCount' => '?',
557
- ],
558
- 'CUMIPMT' => [
559
- 'category' => Category::CATEGORY_FINANCIAL,
560
- 'functionCall' => [Financial::class, 'CUMIPMT'],
561
- 'argumentCount' => '6',
562
- ],
563
- 'CUMPRINC' => [
564
- 'category' => Category::CATEGORY_FINANCIAL,
565
- 'functionCall' => [Financial::class, 'CUMPRINC'],
566
- 'argumentCount' => '6',
567
- ],
568
- 'DATE' => [
569
- 'category' => Category::CATEGORY_DATE_AND_TIME,
570
- 'functionCall' => [DateTime::class, 'DATE'],
571
- 'argumentCount' => '3',
572
- ],
573
- 'DATEDIF' => [
574
- 'category' => Category::CATEGORY_DATE_AND_TIME,
575
- 'functionCall' => [DateTime::class, 'DATEDIF'],
576
- 'argumentCount' => '2,3',
577
- ],
578
- 'DATEVALUE' => [
579
- 'category' => Category::CATEGORY_DATE_AND_TIME,
580
- 'functionCall' => [DateTime::class, 'DATEVALUE'],
581
- 'argumentCount' => '1',
582
- ],
583
- 'DAVERAGE' => [
584
- 'category' => Category::CATEGORY_DATABASE,
585
- 'functionCall' => [Database::class, 'DAVERAGE'],
586
- 'argumentCount' => '3',
587
- ],
588
- 'DAY' => [
589
- 'category' => Category::CATEGORY_DATE_AND_TIME,
590
- 'functionCall' => [DateTime::class, 'DAYOFMONTH'],
591
- 'argumentCount' => '1',
592
- ],
593
- 'DAYS360' => [
594
- 'category' => Category::CATEGORY_DATE_AND_TIME,
595
- 'functionCall' => [DateTime::class, 'DAYS360'],
596
- 'argumentCount' => '2,3',
597
- ],
598
- 'DB' => [
599
- 'category' => Category::CATEGORY_FINANCIAL,
600
- 'functionCall' => [Financial::class, 'DB'],
601
- 'argumentCount' => '4,5',
602
- ],
603
- 'DCOUNT' => [
604
- 'category' => Category::CATEGORY_DATABASE,
605
- 'functionCall' => [Database::class, 'DCOUNT'],
606
- 'argumentCount' => '3',
607
- ],
608
- 'DCOUNTA' => [
609
- 'category' => Category::CATEGORY_DATABASE,
610
- 'functionCall' => [Database::class, 'DCOUNTA'],
611
- 'argumentCount' => '3',
612
- ],
613
- 'DDB' => [
614
- 'category' => Category::CATEGORY_FINANCIAL,
615
- 'functionCall' => [Financial::class, 'DDB'],
616
- 'argumentCount' => '4,5',
617
- ],
618
- 'DEC2BIN' => [
619
- 'category' => Category::CATEGORY_ENGINEERING,
620
- 'functionCall' => [Engineering::class, 'DECTOBIN'],
621
- 'argumentCount' => '1,2',
622
- ],
623
- 'DEC2HEX' => [
624
- 'category' => Category::CATEGORY_ENGINEERING,
625
- 'functionCall' => [Engineering::class, 'DECTOHEX'],
626
- 'argumentCount' => '1,2',
627
- ],
628
- 'DEC2OCT' => [
629
- 'category' => Category::CATEGORY_ENGINEERING,
630
- 'functionCall' => [Engineering::class, 'DECTOOCT'],
631
- 'argumentCount' => '1,2',
632
- ],
633
- 'DEGREES' => [
634
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
635
- 'functionCall' => 'rad2deg',
636
- 'argumentCount' => '1',
637
- ],
638
- 'DELTA' => [
639
- 'category' => Category::CATEGORY_ENGINEERING,
640
- 'functionCall' => [Engineering::class, 'DELTA'],
641
- 'argumentCount' => '1,2',
642
- ],
643
- 'DEVSQ' => [
644
- 'category' => Category::CATEGORY_STATISTICAL,
645
- 'functionCall' => [Statistical::class, 'DEVSQ'],
646
- 'argumentCount' => '1+',
647
- ],
648
- 'DGET' => [
649
- 'category' => Category::CATEGORY_DATABASE,
650
- 'functionCall' => [Database::class, 'DGET'],
651
- 'argumentCount' => '3',
652
- ],
653
- 'DISC' => [
654
- 'category' => Category::CATEGORY_FINANCIAL,
655
- 'functionCall' => [Financial::class, 'DISC'],
656
- 'argumentCount' => '4,5',
657
- ],
658
- 'DMAX' => [
659
- 'category' => Category::CATEGORY_DATABASE,
660
- 'functionCall' => [Database::class, 'DMAX'],
661
- 'argumentCount' => '3',
662
- ],
663
- 'DMIN' => [
664
- 'category' => Category::CATEGORY_DATABASE,
665
- 'functionCall' => [Database::class, 'DMIN'],
666
- 'argumentCount' => '3',
667
- ],
668
- 'DOLLAR' => [
669
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
670
- 'functionCall' => [TextData::class, 'DOLLAR'],
671
- 'argumentCount' => '1,2',
672
- ],
673
- 'DOLLARDE' => [
674
- 'category' => Category::CATEGORY_FINANCIAL,
675
- 'functionCall' => [Financial::class, 'DOLLARDE'],
676
- 'argumentCount' => '2',
677
- ],
678
- 'DOLLARFR' => [
679
- 'category' => Category::CATEGORY_FINANCIAL,
680
- 'functionCall' => [Financial::class, 'DOLLARFR'],
681
- 'argumentCount' => '2',
682
- ],
683
- 'DPRODUCT' => [
684
- 'category' => Category::CATEGORY_DATABASE,
685
- 'functionCall' => [Database::class, 'DPRODUCT'],
686
- 'argumentCount' => '3',
687
- ],
688
- 'DSTDEV' => [
689
- 'category' => Category::CATEGORY_DATABASE,
690
- 'functionCall' => [Database::class, 'DSTDEV'],
691
- 'argumentCount' => '3',
692
- ],
693
- 'DSTDEVP' => [
694
- 'category' => Category::CATEGORY_DATABASE,
695
- 'functionCall' => [Database::class, 'DSTDEVP'],
696
- 'argumentCount' => '3',
697
- ],
698
- 'DSUM' => [
699
- 'category' => Category::CATEGORY_DATABASE,
700
- 'functionCall' => [Database::class, 'DSUM'],
701
- 'argumentCount' => '3',
702
- ],
703
- 'DURATION' => [
704
- 'category' => Category::CATEGORY_FINANCIAL,
705
- 'functionCall' => [Functions::class, 'DUMMY'],
706
- 'argumentCount' => '5,6',
707
- ],
708
- 'DVAR' => [
709
- 'category' => Category::CATEGORY_DATABASE,
710
- 'functionCall' => [Database::class, 'DVAR'],
711
- 'argumentCount' => '3',
712
- ],
713
- 'DVARP' => [
714
- 'category' => Category::CATEGORY_DATABASE,
715
- 'functionCall' => [Database::class, 'DVARP'],
716
- 'argumentCount' => '3',
717
- ],
718
- 'EDATE' => [
719
- 'category' => Category::CATEGORY_DATE_AND_TIME,
720
- 'functionCall' => [DateTime::class, 'EDATE'],
721
- 'argumentCount' => '2',
722
- ],
723
- 'EFFECT' => [
724
- 'category' => Category::CATEGORY_FINANCIAL,
725
- 'functionCall' => [Financial::class, 'EFFECT'],
726
- 'argumentCount' => '2',
727
- ],
728
- 'EOMONTH' => [
729
- 'category' => Category::CATEGORY_DATE_AND_TIME,
730
- 'functionCall' => [DateTime::class, 'EOMONTH'],
731
- 'argumentCount' => '2',
732
- ],
733
- 'ERF' => [
734
- 'category' => Category::CATEGORY_ENGINEERING,
735
- 'functionCall' => [Engineering::class, 'ERF'],
736
- 'argumentCount' => '1,2',
737
- ],
738
- 'ERFC' => [
739
- 'category' => Category::CATEGORY_ENGINEERING,
740
- 'functionCall' => [Engineering::class, 'ERFC'],
741
- 'argumentCount' => '1',
742
- ],
743
- 'ERROR.TYPE' => [
744
- 'category' => Category::CATEGORY_INFORMATION,
745
- 'functionCall' => [Functions::class, 'errorType'],
746
- 'argumentCount' => '1',
747
- ],
748
- 'EVEN' => [
749
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
750
- 'functionCall' => [MathTrig::class, 'EVEN'],
751
- 'argumentCount' => '1',
752
- ],
753
- 'EXACT' => [
754
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
755
- 'functionCall' => [Functions::class, 'DUMMY'],
756
- 'argumentCount' => '2',
757
- ],
758
- 'EXP' => [
759
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
760
- 'functionCall' => 'exp',
761
- 'argumentCount' => '1',
762
- ],
763
- 'EXPONDIST' => [
764
- 'category' => Category::CATEGORY_STATISTICAL,
765
- 'functionCall' => [Statistical::class, 'EXPONDIST'],
766
- 'argumentCount' => '3',
767
- ],
768
- 'FACT' => [
769
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
770
- 'functionCall' => [MathTrig::class, 'FACT'],
771
- 'argumentCount' => '1',
772
- ],
773
- 'FACTDOUBLE' => [
774
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
775
- 'functionCall' => [MathTrig::class, 'FACTDOUBLE'],
776
- 'argumentCount' => '1',
777
- ],
778
- 'FALSE' => [
779
- 'category' => Category::CATEGORY_LOGICAL,
780
- 'functionCall' => [Logical::class, 'FALSE'],
781
- 'argumentCount' => '0',
782
- ],
783
- 'FDIST' => [
784
- 'category' => Category::CATEGORY_STATISTICAL,
785
- 'functionCall' => [Functions::class, 'DUMMY'],
786
- 'argumentCount' => '3',
787
- ],
788
- 'FIND' => [
789
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
790
- 'functionCall' => [TextData::class, 'SEARCHSENSITIVE'],
791
- 'argumentCount' => '2,3',
792
- ],
793
- 'FINDB' => [
794
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
795
- 'functionCall' => [TextData::class, 'SEARCHSENSITIVE'],
796
- 'argumentCount' => '2,3',
797
- ],
798
- 'FINV' => [
799
- 'category' => Category::CATEGORY_STATISTICAL,
800
- 'functionCall' => [Functions::class, 'DUMMY'],
801
- 'argumentCount' => '3',
802
- ],
803
- 'FISHER' => [
804
- 'category' => Category::CATEGORY_STATISTICAL,
805
- 'functionCall' => [Statistical::class, 'FISHER'],
806
- 'argumentCount' => '1',
807
- ],
808
- 'FISHERINV' => [
809
- 'category' => Category::CATEGORY_STATISTICAL,
810
- 'functionCall' => [Statistical::class, 'FISHERINV'],
811
- 'argumentCount' => '1',
812
- ],
813
- 'FIXED' => [
814
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
815
- 'functionCall' => [TextData::class, 'FIXEDFORMAT'],
816
- 'argumentCount' => '1-3',
817
- ],
818
- 'FLOOR' => [
819
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
820
- 'functionCall' => [MathTrig::class, 'FLOOR'],
821
- 'argumentCount' => '2',
822
- ],
823
- 'FORECAST' => [
824
- 'category' => Category::CATEGORY_STATISTICAL,
825
- 'functionCall' => [Statistical::class, 'FORECAST'],
826
- 'argumentCount' => '3',
827
- ],
828
- 'FREQUENCY' => [
829
- 'category' => Category::CATEGORY_STATISTICAL,
830
- 'functionCall' => [Functions::class, 'DUMMY'],
831
- 'argumentCount' => '2',
832
- ],
833
- 'FTEST' => [
834
- 'category' => Category::CATEGORY_STATISTICAL,
835
- 'functionCall' => [Functions::class, 'DUMMY'],
836
- 'argumentCount' => '2',
837
- ],
838
- 'FV' => [
839
- 'category' => Category::CATEGORY_FINANCIAL,
840
- 'functionCall' => [Financial::class, 'FV'],
841
- 'argumentCount' => '3-5',
842
- ],
843
- 'FVSCHEDULE' => [
844
- 'category' => Category::CATEGORY_FINANCIAL,
845
- 'functionCall' => [Financial::class, 'FVSCHEDULE'],
846
- 'argumentCount' => '2',
847
- ],
848
- 'GAMMADIST' => [
849
- 'category' => Category::CATEGORY_STATISTICAL,
850
- 'functionCall' => [Statistical::class, 'GAMMADIST'],
851
- 'argumentCount' => '4',
852
- ],
853
- 'GAMMAINV' => [
854
- 'category' => Category::CATEGORY_STATISTICAL,
855
- 'functionCall' => [Statistical::class, 'GAMMAINV'],
856
- 'argumentCount' => '3',
857
- ],
858
- 'GAMMALN' => [
859
- 'category' => Category::CATEGORY_STATISTICAL,
860
- 'functionCall' => [Statistical::class, 'GAMMALN'],
861
- 'argumentCount' => '1',
862
- ],
863
- 'GCD' => [
864
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
865
- 'functionCall' => [MathTrig::class, 'GCD'],
866
- 'argumentCount' => '1+',
867
- ],
868
- 'GEOMEAN' => [
869
- 'category' => Category::CATEGORY_STATISTICAL,
870
- 'functionCall' => [Statistical::class, 'GEOMEAN'],
871
- 'argumentCount' => '1+',
872
- ],
873
- 'GESTEP' => [
874
- 'category' => Category::CATEGORY_ENGINEERING,
875
- 'functionCall' => [Engineering::class, 'GESTEP'],
876
- 'argumentCount' => '1,2',
877
- ],
878
- 'GETPIVOTDATA' => [
879
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
880
- 'functionCall' => [Functions::class, 'DUMMY'],
881
- 'argumentCount' => '2+',
882
- ],
883
- 'GROWTH' => [
884
- 'category' => Category::CATEGORY_STATISTICAL,
885
- 'functionCall' => [Statistical::class, 'GROWTH'],
886
- 'argumentCount' => '1-4',
887
- ],
888
- 'HARMEAN' => [
889
- 'category' => Category::CATEGORY_STATISTICAL,
890
- 'functionCall' => [Statistical::class, 'HARMEAN'],
891
- 'argumentCount' => '1+',
892
- ],
893
- 'HEX2BIN' => [
894
- 'category' => Category::CATEGORY_ENGINEERING,
895
- 'functionCall' => [Engineering::class, 'HEXTOBIN'],
896
- 'argumentCount' => '1,2',
897
- ],
898
- 'HEX2DEC' => [
899
- 'category' => Category::CATEGORY_ENGINEERING,
900
- 'functionCall' => [Engineering::class, 'HEXTODEC'],
901
- 'argumentCount' => '1',
902
- ],
903
- 'HEX2OCT' => [
904
- 'category' => Category::CATEGORY_ENGINEERING,
905
- 'functionCall' => [Engineering::class, 'HEXTOOCT'],
906
- 'argumentCount' => '1,2',
907
- ],
908
- 'HLOOKUP' => [
909
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
910
- 'functionCall' => [LookupRef::class, 'HLOOKUP'],
911
- 'argumentCount' => '3,4',
912
- ],
913
- 'HOUR' => [
914
- 'category' => Category::CATEGORY_DATE_AND_TIME,
915
- 'functionCall' => [DateTime::class, 'HOUROFDAY'],
916
- 'argumentCount' => '1',
917
- ],
918
- 'HYPERLINK' => [
919
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
920
- 'functionCall' => [LookupRef::class, 'HYPERLINK'],
921
- 'argumentCount' => '1,2',
922
- 'passCellReference' => true,
923
- ],
924
- 'HYPGEOMDIST' => [
925
- 'category' => Category::CATEGORY_STATISTICAL,
926
- 'functionCall' => [Statistical::class, 'HYPGEOMDIST'],
927
- 'argumentCount' => '4',
928
- ],
929
- 'IF' => [
930
- 'category' => Category::CATEGORY_LOGICAL,
931
- 'functionCall' => [Logical::class, 'statementIf'],
932
- 'argumentCount' => '1-3',
933
- ],
934
- 'IFERROR' => [
935
- 'category' => Category::CATEGORY_LOGICAL,
936
- 'functionCall' => [Logical::class, 'IFERROR'],
937
- 'argumentCount' => '2',
938
- ],
939
- 'IMABS' => [
940
- 'category' => Category::CATEGORY_ENGINEERING,
941
- 'functionCall' => [Engineering::class, 'IMABS'],
942
- 'argumentCount' => '1',
943
- ],
944
- 'IMAGINARY' => [
945
- 'category' => Category::CATEGORY_ENGINEERING,
946
- 'functionCall' => [Engineering::class, 'IMAGINARY'],
947
- 'argumentCount' => '1',
948
- ],
949
- 'IMARGUMENT' => [
950
- 'category' => Category::CATEGORY_ENGINEERING,
951
- 'functionCall' => [Engineering::class, 'IMARGUMENT'],
952
- 'argumentCount' => '1',
953
- ],
954
- 'IMCONJUGATE' => [
955
- 'category' => Category::CATEGORY_ENGINEERING,
956
- 'functionCall' => [Engineering::class, 'IMCONJUGATE'],
957
- 'argumentCount' => '1',
958
- ],
959
- 'IMCOS' => [
960
- 'category' => Category::CATEGORY_ENGINEERING,
961
- 'functionCall' => [Engineering::class, 'IMCOS'],
962
- 'argumentCount' => '1',
963
- ],
964
- 'IMDIV' => [
965
- 'category' => Category::CATEGORY_ENGINEERING,
966
- 'functionCall' => [Engineering::class, 'IMDIV'],
967
- 'argumentCount' => '2',
968
- ],
969
- 'IMEXP' => [
970
- 'category' => Category::CATEGORY_ENGINEERING,
971
- 'functionCall' => [Engineering::class, 'IMEXP'],
972
- 'argumentCount' => '1',
973
- ],
974
- 'IMLN' => [
975
- 'category' => Category::CATEGORY_ENGINEERING,
976
- 'functionCall' => [Engineering::class, 'IMLN'],
977
- 'argumentCount' => '1',
978
- ],
979
- 'IMLOG10' => [
980
- 'category' => Category::CATEGORY_ENGINEERING,
981
- 'functionCall' => [Engineering::class, 'IMLOG10'],
982
- 'argumentCount' => '1',
983
- ],
984
- 'IMLOG2' => [
985
- 'category' => Category::CATEGORY_ENGINEERING,
986
- 'functionCall' => [Engineering::class, 'IMLOG2'],
987
- 'argumentCount' => '1',
988
- ],
989
- 'IMPOWER' => [
990
- 'category' => Category::CATEGORY_ENGINEERING,
991
- 'functionCall' => [Engineering::class, 'IMPOWER'],
992
- 'argumentCount' => '2',
993
- ],
994
- 'IMPRODUCT' => [
995
- 'category' => Category::CATEGORY_ENGINEERING,
996
- 'functionCall' => [Engineering::class, 'IMPRODUCT'],
997
- 'argumentCount' => '1+',
998
- ],
999
- 'IMREAL' => [
1000
- 'category' => Category::CATEGORY_ENGINEERING,
1001
- 'functionCall' => [Engineering::class, 'IMREAL'],
1002
- 'argumentCount' => '1',
1003
- ],
1004
- 'IMSIN' => [
1005
- 'category' => Category::CATEGORY_ENGINEERING,
1006
- 'functionCall' => [Engineering::class, 'IMSIN'],
1007
- 'argumentCount' => '1',
1008
- ],
1009
- 'IMSQRT' => [
1010
- 'category' => Category::CATEGORY_ENGINEERING,
1011
- 'functionCall' => [Engineering::class, 'IMSQRT'],
1012
- 'argumentCount' => '1',
1013
- ],
1014
- 'IMSUB' => [
1015
- 'category' => Category::CATEGORY_ENGINEERING,
1016
- 'functionCall' => [Engineering::class, 'IMSUB'],
1017
- 'argumentCount' => '2',
1018
- ],
1019
- 'IMSUM' => [
1020
- 'category' => Category::CATEGORY_ENGINEERING,
1021
- 'functionCall' => [Engineering::class, 'IMSUM'],
1022
- 'argumentCount' => '1+',
1023
- ],
1024
- 'INDEX' => [
1025
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
1026
- 'functionCall' => [LookupRef::class, 'INDEX'],
1027
- 'argumentCount' => '1-4',
1028
- ],
1029
- 'INDIRECT' => [
1030
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
1031
- 'functionCall' => [LookupRef::class, 'INDIRECT'],
1032
- 'argumentCount' => '1,2',
1033
- 'passCellReference' => true,
1034
- ],
1035
- 'INFO' => [
1036
- 'category' => Category::CATEGORY_INFORMATION,
1037
- 'functionCall' => [Functions::class, 'DUMMY'],
1038
- 'argumentCount' => '1',
1039
- ],
1040
- 'INT' => [
1041
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1042
- 'functionCall' => [MathTrig::class, 'INT'],
1043
- 'argumentCount' => '1',
1044
- ],
1045
- 'INTERCEPT' => [
1046
- 'category' => Category::CATEGORY_STATISTICAL,
1047
- 'functionCall' => [Statistical::class, 'INTERCEPT'],
1048
- 'argumentCount' => '2',
1049
- ],
1050
- 'INTRATE' => [
1051
- 'category' => Category::CATEGORY_FINANCIAL,
1052
- 'functionCall' => [Financial::class, 'INTRATE'],
1053
- 'argumentCount' => '4,5',
1054
- ],
1055
- 'IPMT' => [
1056
- 'category' => Category::CATEGORY_FINANCIAL,
1057
- 'functionCall' => [Financial::class, 'IPMT'],
1058
- 'argumentCount' => '4-6',
1059
- ],
1060
- 'IRR' => [
1061
- 'category' => Category::CATEGORY_FINANCIAL,
1062
- 'functionCall' => [Financial::class, 'IRR'],
1063
- 'argumentCount' => '1,2',
1064
- ],
1065
- 'ISBLANK' => [
1066
- 'category' => Category::CATEGORY_INFORMATION,
1067
- 'functionCall' => [Functions::class, 'isBlank'],
1068
- 'argumentCount' => '1',
1069
- ],
1070
- 'ISERR' => [
1071
- 'category' => Category::CATEGORY_INFORMATION,
1072
- 'functionCall' => [Functions::class, 'isErr'],
1073
- 'argumentCount' => '1',
1074
- ],
1075
- 'ISERROR' => [
1076
- 'category' => Category::CATEGORY_INFORMATION,
1077
- 'functionCall' => [Functions::class, 'isError'],
1078
- 'argumentCount' => '1',
1079
- ],
1080
- 'ISEVEN' => [
1081
- 'category' => Category::CATEGORY_INFORMATION,
1082
- 'functionCall' => [Functions::class, 'isEven'],
1083
- 'argumentCount' => '1',
1084
- ],
1085
- 'ISLOGICAL' => [
1086
- 'category' => Category::CATEGORY_INFORMATION,
1087
- 'functionCall' => [Functions::class, 'isLogical'],
1088
- 'argumentCount' => '1',
1089
- ],
1090
- 'ISNA' => [
1091
- 'category' => Category::CATEGORY_INFORMATION,
1092
- 'functionCall' => [Functions::class, 'isNa'],
1093
- 'argumentCount' => '1',
1094
- ],
1095
- 'ISNONTEXT' => [
1096
- 'category' => Category::CATEGORY_INFORMATION,
1097
- 'functionCall' => [Functions::class, 'isNonText'],
1098
- 'argumentCount' => '1',
1099
- ],
1100
- 'ISNUMBER' => [
1101
- 'category' => Category::CATEGORY_INFORMATION,
1102
- 'functionCall' => [Functions::class, 'isNumber'],
1103
- 'argumentCount' => '1',
1104
- ],
1105
- 'ISODD' => [
1106
- 'category' => Category::CATEGORY_INFORMATION,
1107
- 'functionCall' => [Functions::class, 'isOdd'],
1108
- 'argumentCount' => '1',
1109
- ],
1110
- 'ISPMT' => [
1111
- 'category' => Category::CATEGORY_FINANCIAL,
1112
- 'functionCall' => [Financial::class, 'ISPMT'],
1113
- 'argumentCount' => '4',
1114
- ],
1115
- 'ISREF' => [
1116
- 'category' => Category::CATEGORY_INFORMATION,
1117
- 'functionCall' => [Functions::class, 'DUMMY'],
1118
- 'argumentCount' => '1',
1119
- ],
1120
- 'ISTEXT' => [
1121
- 'category' => Category::CATEGORY_INFORMATION,
1122
- 'functionCall' => [Functions::class, 'isText'],
1123
- 'argumentCount' => '1',
1124
- ],
1125
- 'JIS' => [
1126
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1127
- 'functionCall' => [Functions::class, 'DUMMY'],
1128
- 'argumentCount' => '1',
1129
- ],
1130
- 'KURT' => [
1131
- 'category' => Category::CATEGORY_STATISTICAL,
1132
- 'functionCall' => [Statistical::class, 'KURT'],
1133
- 'argumentCount' => '1+',
1134
- ],
1135
- 'LARGE' => [
1136
- 'category' => Category::CATEGORY_STATISTICAL,
1137
- 'functionCall' => [Statistical::class, 'LARGE'],
1138
- 'argumentCount' => '2',
1139
- ],
1140
- 'LCM' => [
1141
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1142
- 'functionCall' => [MathTrig::class, 'LCM'],
1143
- 'argumentCount' => '1+',
1144
- ],
1145
- 'LEFT' => [
1146
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1147
- 'functionCall' => [TextData::class, 'LEFT'],
1148
- 'argumentCount' => '1,2',
1149
- ],
1150
- 'LEFTB' => [
1151
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1152
- 'functionCall' => [TextData::class, 'LEFT'],
1153
- 'argumentCount' => '1,2',
1154
- ],
1155
- 'LEN' => [
1156
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1157
- 'functionCall' => [TextData::class, 'STRINGLENGTH'],
1158
- 'argumentCount' => '1',
1159
- ],
1160
- 'LENB' => [
1161
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1162
- 'functionCall' => [TextData::class, 'STRINGLENGTH'],
1163
- 'argumentCount' => '1',
1164
- ],
1165
- 'LINEST' => [
1166
- 'category' => Category::CATEGORY_STATISTICAL,
1167
- 'functionCall' => [Statistical::class, 'LINEST'],
1168
- 'argumentCount' => '1-4',
1169
- ],
1170
- 'LN' => [
1171
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1172
- 'functionCall' => 'log',
1173
- 'argumentCount' => '1',
1174
- ],
1175
- 'LOG' => [
1176
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1177
- 'functionCall' => [MathTrig::class, 'logBase'],
1178
- 'argumentCount' => '1,2',
1179
- ],
1180
- 'LOG10' => [
1181
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1182
- 'functionCall' => 'log10',
1183
- 'argumentCount' => '1',
1184
- ],
1185
- 'LOGEST' => [
1186
- 'category' => Category::CATEGORY_STATISTICAL,
1187
- 'functionCall' => [Statistical::class, 'LOGEST'],
1188
- 'argumentCount' => '1-4',
1189
- ],
1190
- 'LOGINV' => [
1191
- 'category' => Category::CATEGORY_STATISTICAL,
1192
- 'functionCall' => [Statistical::class, 'LOGINV'],
1193
- 'argumentCount' => '3',
1194
- ],
1195
- 'LOGNORMDIST' => [
1196
- 'category' => Category::CATEGORY_STATISTICAL,
1197
- 'functionCall' => [Statistical::class, 'LOGNORMDIST'],
1198
- 'argumentCount' => '3',
1199
- ],
1200
- 'LOOKUP' => [
1201
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
1202
- 'functionCall' => [LookupRef::class, 'LOOKUP'],
1203
- 'argumentCount' => '2,3',
1204
- ],
1205
- 'LOWER' => [
1206
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1207
- 'functionCall' => [TextData::class, 'LOWERCASE'],
1208
- 'argumentCount' => '1',
1209
- ],
1210
- 'MATCH' => [
1211
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
1212
- 'functionCall' => [LookupRef::class, 'MATCH'],
1213
- 'argumentCount' => '2,3',
1214
- ],
1215
- 'MAX' => [
1216
- 'category' => Category::CATEGORY_STATISTICAL,
1217
- 'functionCall' => [Statistical::class, 'MAX'],
1218
- 'argumentCount' => '1+',
1219
- ],
1220
- 'MAXA' => [
1221
- 'category' => Category::CATEGORY_STATISTICAL,
1222
- 'functionCall' => [Statistical::class, 'MAXA'],
1223
- 'argumentCount' => '1+',
1224
- ],
1225
- 'MAXIF' => [
1226
- 'category' => Category::CATEGORY_STATISTICAL,
1227
- 'functionCall' => [Statistical::class, 'MAXIF'],
1228
- 'argumentCount' => '2+',
1229
- ],
1230
- 'MDETERM' => [
1231
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1232
- 'functionCall' => [MathTrig::class, 'MDETERM'],
1233
- 'argumentCount' => '1',
1234
- ],
1235
- 'MDURATION' => [
1236
- 'category' => Category::CATEGORY_FINANCIAL,
1237
- 'functionCall' => [Functions::class, 'DUMMY'],
1238
- 'argumentCount' => '5,6',
1239
- ],
1240
- 'MEDIAN' => [
1241
- 'category' => Category::CATEGORY_STATISTICAL,
1242
- 'functionCall' => [Statistical::class, 'MEDIAN'],
1243
- 'argumentCount' => '1+',
1244
- ],
1245
- 'MEDIANIF' => [
1246
- 'category' => Category::CATEGORY_STATISTICAL,
1247
- 'functionCall' => [Functions::class, 'DUMMY'],
1248
- 'argumentCount' => '2+',
1249
- ],
1250
- 'MID' => [
1251
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1252
- 'functionCall' => [TextData::class, 'MID'],
1253
- 'argumentCount' => '3',
1254
- ],
1255
- 'MIDB' => [
1256
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1257
- 'functionCall' => [TextData::class, 'MID'],
1258
- 'argumentCount' => '3',
1259
- ],
1260
- 'MIN' => [
1261
- 'category' => Category::CATEGORY_STATISTICAL,
1262
- 'functionCall' => [Statistical::class, 'MIN'],
1263
- 'argumentCount' => '1+',
1264
- ],
1265
- 'MINA' => [
1266
- 'category' => Category::CATEGORY_STATISTICAL,
1267
- 'functionCall' => [Statistical::class, 'MINA'],
1268
- 'argumentCount' => '1+',
1269
- ],
1270
- 'MINIF' => [
1271
- 'category' => Category::CATEGORY_STATISTICAL,
1272
- 'functionCall' => [Statistical::class, 'MINIF'],
1273
- 'argumentCount' => '2+',
1274
- ],
1275
- 'MINUTE' => [
1276
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1277
- 'functionCall' => [DateTime::class, 'MINUTE'],
1278
- 'argumentCount' => '1',
1279
- ],
1280
- 'MINVERSE' => [
1281
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1282
- 'functionCall' => [MathTrig::class, 'MINVERSE'],
1283
- 'argumentCount' => '1',
1284
- ],
1285
- 'MIRR' => [
1286
- 'category' => Category::CATEGORY_FINANCIAL,
1287
- 'functionCall' => [Financial::class, 'MIRR'],
1288
- 'argumentCount' => '3',
1289
- ],
1290
- 'MMULT' => [
1291
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1292
- 'functionCall' => [MathTrig::class, 'MMULT'],
1293
- 'argumentCount' => '2',
1294
- ],
1295
- 'MOD' => [
1296
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1297
- 'functionCall' => [MathTrig::class, 'MOD'],
1298
- 'argumentCount' => '2',
1299
- ],
1300
- 'MODE' => [
1301
- 'category' => Category::CATEGORY_STATISTICAL,
1302
- 'functionCall' => [Statistical::class, 'MODE'],
1303
- 'argumentCount' => '1+',
1304
- ],
1305
- 'MONTH' => [
1306
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1307
- 'functionCall' => [DateTime::class, 'MONTHOFYEAR'],
1308
- 'argumentCount' => '1',
1309
- ],
1310
- 'MROUND' => [
1311
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1312
- 'functionCall' => [MathTrig::class, 'MROUND'],
1313
- 'argumentCount' => '2',
1314
- ],
1315
- 'MULTINOMIAL' => [
1316
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1317
- 'functionCall' => [MathTrig::class, 'MULTINOMIAL'],
1318
- 'argumentCount' => '1+',
1319
- ],
1320
- 'N' => [
1321
- 'category' => Category::CATEGORY_INFORMATION,
1322
- 'functionCall' => [Functions::class, 'n'],
1323
- 'argumentCount' => '1',
1324
- ],
1325
- 'NA' => [
1326
- 'category' => Category::CATEGORY_INFORMATION,
1327
- 'functionCall' => [Functions::class, 'NA'],
1328
- 'argumentCount' => '0',
1329
- ],
1330
- 'NEGBINOMDIST' => [
1331
- 'category' => Category::CATEGORY_STATISTICAL,
1332
- 'functionCall' => [Statistical::class, 'NEGBINOMDIST'],
1333
- 'argumentCount' => '3',
1334
- ],
1335
- 'NETWORKDAYS' => [
1336
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1337
- 'functionCall' => [DateTime::class, 'NETWORKDAYS'],
1338
- 'argumentCount' => '2+',
1339
- ],
1340
- 'NOMINAL' => [
1341
- 'category' => Category::CATEGORY_FINANCIAL,
1342
- 'functionCall' => [Financial::class, 'NOMINAL'],
1343
- 'argumentCount' => '2',
1344
- ],
1345
- 'NORMDIST' => [
1346
- 'category' => Category::CATEGORY_STATISTICAL,
1347
- 'functionCall' => [Statistical::class, 'NORMDIST'],
1348
- 'argumentCount' => '4',
1349
- ],
1350
- 'NORMINV' => [
1351
- 'category' => Category::CATEGORY_STATISTICAL,
1352
- 'functionCall' => [Statistical::class, 'NORMINV'],
1353
- 'argumentCount' => '3',
1354
- ],
1355
- 'NORMSDIST' => [
1356
- 'category' => Category::CATEGORY_STATISTICAL,
1357
- 'functionCall' => [Statistical::class, 'NORMSDIST'],
1358
- 'argumentCount' => '1',
1359
- ],
1360
- 'NORMSINV' => [
1361
- 'category' => Category::CATEGORY_STATISTICAL,
1362
- 'functionCall' => [Statistical::class, 'NORMSINV'],
1363
- 'argumentCount' => '1',
1364
- ],
1365
- 'NOT' => [
1366
- 'category' => Category::CATEGORY_LOGICAL,
1367
- 'functionCall' => [Logical::class, 'NOT'],
1368
- 'argumentCount' => '1',
1369
- ],
1370
- 'NOW' => [
1371
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1372
- 'functionCall' => [DateTime::class, 'DATETIMENOW'],
1373
- 'argumentCount' => '0',
1374
- ],
1375
- 'NPER' => [
1376
- 'category' => Category::CATEGORY_FINANCIAL,
1377
- 'functionCall' => [Financial::class, 'NPER'],
1378
- 'argumentCount' => '3-5',
1379
- ],
1380
- 'NPV' => [
1381
- 'category' => Category::CATEGORY_FINANCIAL,
1382
- 'functionCall' => [Financial::class, 'NPV'],
1383
- 'argumentCount' => '2+',
1384
- ],
1385
- 'OCT2BIN' => [
1386
- 'category' => Category::CATEGORY_ENGINEERING,
1387
- 'functionCall' => [Engineering::class, 'OCTTOBIN'],
1388
- 'argumentCount' => '1,2',
1389
- ],
1390
- 'OCT2DEC' => [
1391
- 'category' => Category::CATEGORY_ENGINEERING,
1392
- 'functionCall' => [Engineering::class, 'OCTTODEC'],
1393
- 'argumentCount' => '1',
1394
- ],
1395
- 'OCT2HEX' => [
1396
- 'category' => Category::CATEGORY_ENGINEERING,
1397
- 'functionCall' => [Engineering::class, 'OCTTOHEX'],
1398
- 'argumentCount' => '1,2',
1399
- ],
1400
- 'ODD' => [
1401
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1402
- 'functionCall' => [MathTrig::class, 'ODD'],
1403
- 'argumentCount' => '1',
1404
- ],
1405
- 'ODDFPRICE' => [
1406
- 'category' => Category::CATEGORY_FINANCIAL,
1407
- 'functionCall' => [Functions::class, 'DUMMY'],
1408
- 'argumentCount' => '8,9',
1409
- ],
1410
- 'ODDFYIELD' => [
1411
- 'category' => Category::CATEGORY_FINANCIAL,
1412
- 'functionCall' => [Functions::class, 'DUMMY'],
1413
- 'argumentCount' => '8,9',
1414
- ],
1415
- 'ODDLPRICE' => [
1416
- 'category' => Category::CATEGORY_FINANCIAL,
1417
- 'functionCall' => [Functions::class, 'DUMMY'],
1418
- 'argumentCount' => '7,8',
1419
- ],
1420
- 'ODDLYIELD' => [
1421
- 'category' => Category::CATEGORY_FINANCIAL,
1422
- 'functionCall' => [Functions::class, 'DUMMY'],
1423
- 'argumentCount' => '7,8',
1424
- ],
1425
- 'OFFSET' => [
1426
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
1427
- 'functionCall' => [LookupRef::class, 'OFFSET'],
1428
- 'argumentCount' => '3-5',
1429
- 'passCellReference' => true,
1430
- 'passByReference' => [true],
1431
- ],
1432
- 'OR' => [
1433
- 'category' => Category::CATEGORY_LOGICAL,
1434
- 'functionCall' => [Logical::class, 'logicalOr'],
1435
- 'argumentCount' => '1+',
1436
- ],
1437
- 'PEARSON' => [
1438
- 'category' => Category::CATEGORY_STATISTICAL,
1439
- 'functionCall' => [Statistical::class, 'CORREL'],
1440
- 'argumentCount' => '2',
1441
- ],
1442
- 'PERCENTILE' => [
1443
- 'category' => Category::CATEGORY_STATISTICAL,
1444
- 'functionCall' => [Statistical::class, 'PERCENTILE'],
1445
- 'argumentCount' => '2',
1446
- ],
1447
- 'PERCENTRANK' => [
1448
- 'category' => Category::CATEGORY_STATISTICAL,
1449
- 'functionCall' => [Statistical::class, 'PERCENTRANK'],
1450
- 'argumentCount' => '2,3',
1451
- ],
1452
- 'PERMUT' => [
1453
- 'category' => Category::CATEGORY_STATISTICAL,
1454
- 'functionCall' => [Statistical::class, 'PERMUT'],
1455
- 'argumentCount' => '2',
1456
- ],
1457
- 'PHONETIC' => [
1458
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1459
- 'functionCall' => [Functions::class, 'DUMMY'],
1460
- 'argumentCount' => '1',
1461
- ],
1462
- 'PI' => [
1463
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1464
- 'functionCall' => 'pi',
1465
- 'argumentCount' => '0',
1466
- ],
1467
- 'PMT' => [
1468
- 'category' => Category::CATEGORY_FINANCIAL,
1469
- 'functionCall' => [Financial::class, 'PMT'],
1470
- 'argumentCount' => '3-5',
1471
- ],
1472
- 'POISSON' => [
1473
- 'category' => Category::CATEGORY_STATISTICAL,
1474
- 'functionCall' => [Statistical::class, 'POISSON'],
1475
- 'argumentCount' => '3',
1476
- ],
1477
- 'POWER' => [
1478
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1479
- 'functionCall' => [MathTrig::class, 'POWER'],
1480
- 'argumentCount' => '2',
1481
- ],
1482
- 'PPMT' => [
1483
- 'category' => Category::CATEGORY_FINANCIAL,
1484
- 'functionCall' => [Financial::class, 'PPMT'],
1485
- 'argumentCount' => '4-6',
1486
- ],
1487
- 'PRICE' => [
1488
- 'category' => Category::CATEGORY_FINANCIAL,
1489
- 'functionCall' => [Financial::class, 'PRICE'],
1490
- 'argumentCount' => '6,7',
1491
- ],
1492
- 'PRICEDISC' => [
1493
- 'category' => Category::CATEGORY_FINANCIAL,
1494
- 'functionCall' => [Financial::class, 'PRICEDISC'],
1495
- 'argumentCount' => '4,5',
1496
- ],
1497
- 'PRICEMAT' => [
1498
- 'category' => Category::CATEGORY_FINANCIAL,
1499
- 'functionCall' => [Financial::class, 'PRICEMAT'],
1500
- 'argumentCount' => '5,6',
1501
- ],
1502
- 'PROB' => [
1503
- 'category' => Category::CATEGORY_STATISTICAL,
1504
- 'functionCall' => [Functions::class, 'DUMMY'],
1505
- 'argumentCount' => '3,4',
1506
- ],
1507
- 'PRODUCT' => [
1508
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1509
- 'functionCall' => [MathTrig::class, 'PRODUCT'],
1510
- 'argumentCount' => '1+',
1511
- ],
1512
- 'PROPER' => [
1513
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1514
- 'functionCall' => [TextData::class, 'PROPERCASE'],
1515
- 'argumentCount' => '1',
1516
- ],
1517
- 'PV' => [
1518
- 'category' => Category::CATEGORY_FINANCIAL,
1519
- 'functionCall' => [Financial::class, 'PV'],
1520
- 'argumentCount' => '3-5',
1521
- ],
1522
- 'QUARTILE' => [
1523
- 'category' => Category::CATEGORY_STATISTICAL,
1524
- 'functionCall' => [Statistical::class, 'QUARTILE'],
1525
- 'argumentCount' => '2',
1526
- ],
1527
- 'QUOTIENT' => [
1528
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1529
- 'functionCall' => [MathTrig::class, 'QUOTIENT'],
1530
- 'argumentCount' => '2',
1531
- ],
1532
- 'RADIANS' => [
1533
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1534
- 'functionCall' => 'deg2rad',
1535
- 'argumentCount' => '1',
1536
- ],
1537
- 'RAND' => [
1538
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1539
- 'functionCall' => [MathTrig::class, 'RAND'],
1540
- 'argumentCount' => '0',
1541
- ],
1542
- 'RANDBETWEEN' => [
1543
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1544
- 'functionCall' => [MathTrig::class, 'RAND'],
1545
- 'argumentCount' => '2',
1546
- ],
1547
- 'RANK' => [
1548
- 'category' => Category::CATEGORY_STATISTICAL,
1549
- 'functionCall' => [Statistical::class, 'RANK'],
1550
- 'argumentCount' => '2,3',
1551
- ],
1552
- 'RATE' => [
1553
- 'category' => Category::CATEGORY_FINANCIAL,
1554
- 'functionCall' => [Financial::class, 'RATE'],
1555
- 'argumentCount' => '3-6',
1556
- ],
1557
- 'RECEIVED' => [
1558
- 'category' => Category::CATEGORY_FINANCIAL,
1559
- 'functionCall' => [Financial::class, 'RECEIVED'],
1560
- 'argumentCount' => '4-5',
1561
- ],
1562
- 'REPLACE' => [
1563
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1564
- 'functionCall' => [TextData::class, 'REPLACE'],
1565
- 'argumentCount' => '4',
1566
- ],
1567
- 'REPLACEB' => [
1568
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1569
- 'functionCall' => [TextData::class, 'REPLACE'],
1570
- 'argumentCount' => '4',
1571
- ],
1572
- 'REPT' => [
1573
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1574
- 'functionCall' => 'str_repeat',
1575
- 'argumentCount' => '2',
1576
- ],
1577
- 'RIGHT' => [
1578
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1579
- 'functionCall' => [TextData::class, 'RIGHT'],
1580
- 'argumentCount' => '1,2',
1581
- ],
1582
- 'RIGHTB' => [
1583
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1584
- 'functionCall' => [TextData::class, 'RIGHT'],
1585
- 'argumentCount' => '1,2',
1586
- ],
1587
- 'ROMAN' => [
1588
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1589
- 'functionCall' => [MathTrig::class, 'ROMAN'],
1590
- 'argumentCount' => '1,2',
1591
- ],
1592
- 'ROUND' => [
1593
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1594
- 'functionCall' => 'round',
1595
- 'argumentCount' => '2',
1596
- ],
1597
- 'ROUNDDOWN' => [
1598
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1599
- 'functionCall' => [MathTrig::class, 'ROUNDDOWN'],
1600
- 'argumentCount' => '2',
1601
- ],
1602
- 'ROUNDUP' => [
1603
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1604
- 'functionCall' => [MathTrig::class, 'ROUNDUP'],
1605
- 'argumentCount' => '2',
1606
- ],
1607
- 'ROW' => [
1608
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
1609
- 'functionCall' => [LookupRef::class, 'ROW'],
1610
- 'argumentCount' => '-1',
1611
- 'passByReference' => [true],
1612
- ],
1613
- 'ROWS' => [
1614
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
1615
- 'functionCall' => [LookupRef::class, 'ROWS'],
1616
- 'argumentCount' => '1',
1617
- ],
1618
- 'RSQ' => [
1619
- 'category' => Category::CATEGORY_STATISTICAL,
1620
- 'functionCall' => [Statistical::class, 'RSQ'],
1621
- 'argumentCount' => '2',
1622
- ],
1623
- 'RTD' => [
1624
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
1625
- 'functionCall' => [Functions::class, 'DUMMY'],
1626
- 'argumentCount' => '1+',
1627
- ],
1628
- 'SEARCH' => [
1629
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1630
- 'functionCall' => [TextData::class, 'SEARCHINSENSITIVE'],
1631
- 'argumentCount' => '2,3',
1632
- ],
1633
- 'SEARCHB' => [
1634
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1635
- 'functionCall' => [TextData::class, 'SEARCHINSENSITIVE'],
1636
- 'argumentCount' => '2,3',
1637
- ],
1638
- 'SECOND' => [
1639
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1640
- 'functionCall' => [DateTime::class, 'SECOND'],
1641
- 'argumentCount' => '1',
1642
- ],
1643
- 'SERIESSUM' => [
1644
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1645
- 'functionCall' => [MathTrig::class, 'SERIESSUM'],
1646
- 'argumentCount' => '4',
1647
- ],
1648
- 'SIGN' => [
1649
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1650
- 'functionCall' => [MathTrig::class, 'SIGN'],
1651
- 'argumentCount' => '1',
1652
- ],
1653
- 'SIN' => [
1654
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1655
- 'functionCall' => 'sin',
1656
- 'argumentCount' => '1',
1657
- ],
1658
- 'SINH' => [
1659
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1660
- 'functionCall' => 'sinh',
1661
- 'argumentCount' => '1',
1662
- ],
1663
- 'SKEW' => [
1664
- 'category' => Category::CATEGORY_STATISTICAL,
1665
- 'functionCall' => [Statistical::class, 'SKEW'],
1666
- 'argumentCount' => '1+',
1667
- ],
1668
- 'SLN' => [
1669
- 'category' => Category::CATEGORY_FINANCIAL,
1670
- 'functionCall' => [Financial::class, 'SLN'],
1671
- 'argumentCount' => '3',
1672
- ],
1673
- 'SLOPE' => [
1674
- 'category' => Category::CATEGORY_STATISTICAL,
1675
- 'functionCall' => [Statistical::class, 'SLOPE'],
1676
- 'argumentCount' => '2',
1677
- ],
1678
- 'SMALL' => [
1679
- 'category' => Category::CATEGORY_STATISTICAL,
1680
- 'functionCall' => [Statistical::class, 'SMALL'],
1681
- 'argumentCount' => '2',
1682
- ],
1683
- 'SQRT' => [
1684
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1685
- 'functionCall' => 'sqrt',
1686
- 'argumentCount' => '1',
1687
- ],
1688
- 'SQRTPI' => [
1689
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1690
- 'functionCall' => [MathTrig::class, 'SQRTPI'],
1691
- 'argumentCount' => '1',
1692
- ],
1693
- 'STANDARDIZE' => [
1694
- 'category' => Category::CATEGORY_STATISTICAL,
1695
- 'functionCall' => [Statistical::class, 'STANDARDIZE'],
1696
- 'argumentCount' => '3',
1697
- ],
1698
- 'STDEV' => [
1699
- 'category' => Category::CATEGORY_STATISTICAL,
1700
- 'functionCall' => [Statistical::class, 'STDEV'],
1701
- 'argumentCount' => '1+',
1702
- ],
1703
- 'STDEVA' => [
1704
- 'category' => Category::CATEGORY_STATISTICAL,
1705
- 'functionCall' => [Statistical::class, 'STDEVA'],
1706
- 'argumentCount' => '1+',
1707
- ],
1708
- 'STDEVP' => [
1709
- 'category' => Category::CATEGORY_STATISTICAL,
1710
- 'functionCall' => [Statistical::class, 'STDEVP'],
1711
- 'argumentCount' => '1+',
1712
- ],
1713
- 'STDEVPA' => [
1714
- 'category' => Category::CATEGORY_STATISTICAL,
1715
- 'functionCall' => [Statistical::class, 'STDEVPA'],
1716
- 'argumentCount' => '1+',
1717
- ],
1718
- 'STEYX' => [
1719
- 'category' => Category::CATEGORY_STATISTICAL,
1720
- 'functionCall' => [Statistical::class, 'STEYX'],
1721
- 'argumentCount' => '2',
1722
- ],
1723
- 'SUBSTITUTE' => [
1724
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1725
- 'functionCall' => [TextData::class, 'SUBSTITUTE'],
1726
- 'argumentCount' => '3,4',
1727
- ],
1728
- 'SUBTOTAL' => [
1729
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1730
- 'functionCall' => [MathTrig::class, 'SUBTOTAL'],
1731
- 'argumentCount' => '2+',
1732
- 'passCellReference' => true,
1733
- ],
1734
- 'SUM' => [
1735
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1736
- 'functionCall' => [MathTrig::class, 'SUM'],
1737
- 'argumentCount' => '1+',
1738
- ],
1739
- 'SUMIF' => [
1740
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1741
- 'functionCall' => [MathTrig::class, 'SUMIF'],
1742
- 'argumentCount' => '2,3',
1743
- ],
1744
- 'SUMIFS' => [
1745
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1746
- 'functionCall' => [MathTrig::class, 'SUMIFS'],
1747
- 'argumentCount' => '3+',
1748
- ],
1749
- 'SUMPRODUCT' => [
1750
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1751
- 'functionCall' => [MathTrig::class, 'SUMPRODUCT'],
1752
- 'argumentCount' => '1+',
1753
- ],
1754
- 'SUMSQ' => [
1755
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1756
- 'functionCall' => [MathTrig::class, 'SUMSQ'],
1757
- 'argumentCount' => '1+',
1758
- ],
1759
- 'SUMX2MY2' => [
1760
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1761
- 'functionCall' => [MathTrig::class, 'SUMX2MY2'],
1762
- 'argumentCount' => '2',
1763
- ],
1764
- 'SUMX2PY2' => [
1765
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1766
- 'functionCall' => [MathTrig::class, 'SUMX2PY2'],
1767
- 'argumentCount' => '2',
1768
- ],
1769
- 'SUMXMY2' => [
1770
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1771
- 'functionCall' => [MathTrig::class, 'SUMXMY2'],
1772
- 'argumentCount' => '2',
1773
- ],
1774
- 'SYD' => [
1775
- 'category' => Category::CATEGORY_FINANCIAL,
1776
- 'functionCall' => [Financial::class, 'SYD'],
1777
- 'argumentCount' => '4',
1778
- ],
1779
- 'T' => [
1780
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1781
- 'functionCall' => [TextData::class, 'RETURNSTRING'],
1782
- 'argumentCount' => '1',
1783
- ],
1784
- 'TAN' => [
1785
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1786
- 'functionCall' => 'tan',
1787
- 'argumentCount' => '1',
1788
- ],
1789
- 'TANH' => [
1790
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1791
- 'functionCall' => 'tanh',
1792
- 'argumentCount' => '1',
1793
- ],
1794
- 'TBILLEQ' => [
1795
- 'category' => Category::CATEGORY_FINANCIAL,
1796
- 'functionCall' => [Financial::class, 'TBILLEQ'],
1797
- 'argumentCount' => '3',
1798
- ],
1799
- 'TBILLPRICE' => [
1800
- 'category' => Category::CATEGORY_FINANCIAL,
1801
- 'functionCall' => [Financial::class, 'TBILLPRICE'],
1802
- 'argumentCount' => '3',
1803
- ],
1804
- 'TBILLYIELD' => [
1805
- 'category' => Category::CATEGORY_FINANCIAL,
1806
- 'functionCall' => [Financial::class, 'TBILLYIELD'],
1807
- 'argumentCount' => '3',
1808
- ],
1809
- 'TDIST' => [
1810
- 'category' => Category::CATEGORY_STATISTICAL,
1811
- 'functionCall' => [Statistical::class, 'TDIST'],
1812
- 'argumentCount' => '3',
1813
- ],
1814
- 'TEXT' => [
1815
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1816
- 'functionCall' => [TextData::class, 'TEXTFORMAT'],
1817
- 'argumentCount' => '2',
1818
- ],
1819
- 'TIME' => [
1820
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1821
- 'functionCall' => [DateTime::class, 'TIME'],
1822
- 'argumentCount' => '3',
1823
- ],
1824
- 'TIMEVALUE' => [
1825
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1826
- 'functionCall' => [DateTime::class, 'TIMEVALUE'],
1827
- 'argumentCount' => '1',
1828
- ],
1829
- 'TINV' => [
1830
- 'category' => Category::CATEGORY_STATISTICAL,
1831
- 'functionCall' => [Statistical::class, 'TINV'],
1832
- 'argumentCount' => '2',
1833
- ],
1834
- 'TODAY' => [
1835
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1836
- 'functionCall' => [DateTime::class, 'DATENOW'],
1837
- 'argumentCount' => '0',
1838
- ],
1839
- 'TRANSPOSE' => [
1840
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
1841
- 'functionCall' => [LookupRef::class, 'TRANSPOSE'],
1842
- 'argumentCount' => '1',
1843
- ],
1844
- 'TREND' => [
1845
- 'category' => Category::CATEGORY_STATISTICAL,
1846
- 'functionCall' => [Statistical::class, 'TREND'],
1847
- 'argumentCount' => '1-4',
1848
- ],
1849
- 'TRIM' => [
1850
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1851
- 'functionCall' => [TextData::class, 'TRIMSPACES'],
1852
- 'argumentCount' => '1',
1853
- ],
1854
- 'TRIMMEAN' => [
1855
- 'category' => Category::CATEGORY_STATISTICAL,
1856
- 'functionCall' => [Statistical::class, 'TRIMMEAN'],
1857
- 'argumentCount' => '2',
1858
- ],
1859
- 'TRUE' => [
1860
- 'category' => Category::CATEGORY_LOGICAL,
1861
- 'functionCall' => [Logical::class, 'TRUE'],
1862
- 'argumentCount' => '0',
1863
- ],
1864
- 'TRUNC' => [
1865
- 'category' => Category::CATEGORY_MATH_AND_TRIG,
1866
- 'functionCall' => [MathTrig::class, 'TRUNC'],
1867
- 'argumentCount' => '1,2',
1868
- ],
1869
- 'TTEST' => [
1870
- 'category' => Category::CATEGORY_STATISTICAL,
1871
- 'functionCall' => [Functions::class, 'DUMMY'],
1872
- 'argumentCount' => '4',
1873
- ],
1874
- 'TYPE' => [
1875
- 'category' => Category::CATEGORY_INFORMATION,
1876
- 'functionCall' => [Functions::class, 'TYPE'],
1877
- 'argumentCount' => '1',
1878
- ],
1879
- 'UPPER' => [
1880
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1881
- 'functionCall' => [TextData::class, 'UPPERCASE'],
1882
- 'argumentCount' => '1',
1883
- ],
1884
- 'USDOLLAR' => [
1885
- 'category' => Category::CATEGORY_FINANCIAL,
1886
- 'functionCall' => [Functions::class, 'DUMMY'],
1887
- 'argumentCount' => '2',
1888
- ],
1889
- 'VALUE' => [
1890
- 'category' => Category::CATEGORY_TEXT_AND_DATA,
1891
- 'functionCall' => [TextData::class, 'VALUE'],
1892
- 'argumentCount' => '1',
1893
- ],
1894
- 'VAR' => [
1895
- 'category' => Category::CATEGORY_STATISTICAL,
1896
- 'functionCall' => [Statistical::class, 'VARFunc'],
1897
- 'argumentCount' => '1+',
1898
- ],
1899
- 'VARA' => [
1900
- 'category' => Category::CATEGORY_STATISTICAL,
1901
- 'functionCall' => [Statistical::class, 'VARA'],
1902
- 'argumentCount' => '1+',
1903
- ],
1904
- 'VARP' => [
1905
- 'category' => Category::CATEGORY_STATISTICAL,
1906
- 'functionCall' => [Statistical::class, 'VARP'],
1907
- 'argumentCount' => '1+',
1908
- ],
1909
- 'VARPA' => [
1910
- 'category' => Category::CATEGORY_STATISTICAL,
1911
- 'functionCall' => [Statistical::class, 'VARPA'],
1912
- 'argumentCount' => '1+',
1913
- ],
1914
- 'VDB' => [
1915
- 'category' => Category::CATEGORY_FINANCIAL,
1916
- 'functionCall' => [Functions::class, 'DUMMY'],
1917
- 'argumentCount' => '5-7',
1918
- ],
1919
- 'VLOOKUP' => [
1920
- 'category' => Category::CATEGORY_LOOKUP_AND_REFERENCE,
1921
- 'functionCall' => [LookupRef::class, 'VLOOKUP'],
1922
- 'argumentCount' => '3,4',
1923
- ],
1924
- 'WEEKDAY' => [
1925
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1926
- 'functionCall' => [DateTime::class, 'WEEKDAY'],
1927
- 'argumentCount' => '1,2',
1928
- ],
1929
- 'WEEKNUM' => [
1930
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1931
- 'functionCall' => [DateTime::class, 'WEEKNUM'],
1932
- 'argumentCount' => '1,2',
1933
- ],
1934
- 'WEIBULL' => [
1935
- 'category' => Category::CATEGORY_STATISTICAL,
1936
- 'functionCall' => [Statistical::class, 'WEIBULL'],
1937
- 'argumentCount' => '4',
1938
- ],
1939
- 'WORKDAY' => [
1940
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1941
- 'functionCall' => [DateTime::class, 'WORKDAY'],
1942
- 'argumentCount' => '2+',
1943
- ],
1944
- 'XIRR' => [
1945
- 'category' => Category::CATEGORY_FINANCIAL,
1946
- 'functionCall' => [Financial::class, 'XIRR'],
1947
- 'argumentCount' => '2,3',
1948
- ],
1949
- 'XNPV' => [
1950
- 'category' => Category::CATEGORY_FINANCIAL,
1951
- 'functionCall' => [Financial::class, 'XNPV'],
1952
- 'argumentCount' => '3',
1953
- ],
1954
- 'YEAR' => [
1955
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1956
- 'functionCall' => [DateTime::class, 'YEAR'],
1957
- 'argumentCount' => '1',
1958
- ],
1959
- 'YEARFRAC' => [
1960
- 'category' => Category::CATEGORY_DATE_AND_TIME,
1961
- 'functionCall' => [DateTime::class, 'YEARFRAC'],
1962
- 'argumentCount' => '2,3',
1963
- ],
1964
- 'YIELD' => [
1965
- 'category' => Category::CATEGORY_FINANCIAL,
1966
- 'functionCall' => [Functions::class, 'DUMMY'],
1967
- 'argumentCount' => '6,7',
1968
- ],
1969
- 'YIELDDISC' => [
1970
- 'category' => Category::CATEGORY_FINANCIAL,
1971
- 'functionCall' => [Financial::class, 'YIELDDISC'],
1972
- 'argumentCount' => '4,5',
1973
- ],
1974
- 'YIELDMAT' => [
1975
- 'category' => Category::CATEGORY_FINANCIAL,
1976
- 'functionCall' => [Financial::class, 'YIELDMAT'],
1977
- 'argumentCount' => '5,6',
1978
- ],
1979
- 'ZTEST' => [
1980
- 'category' => Category::CATEGORY_STATISTICAL,
1981
- 'functionCall' => [Statistical::class, 'ZTEST'],
1982
- 'argumentCount' => '2-3',
1983
- ],
1984
- ];
1985
-
1986
- // Internal functions used for special control purposes
1987
- private static $controlFunctions = [
1988
- 'MKMATRIX' => [
1989
- 'argumentCount' => '*',
1990
- 'functionCall' => 'self::mkMatrix',
1991
- ],
1992
- ];
1993
-
1994
- public function __construct(Spreadsheet $spreadsheet = null)
1995
- {
1996
- $this->delta = 1 * pow(10, 0 - ini_get('precision'));
1997
-
1998
- $this->spreadsheet = $spreadsheet;
1999
- $this->cyclicReferenceStack = new CyclicReferenceStack();
2000
- $this->debugLog = new Logger($this->cyclicReferenceStack);
2001
- }
2002
-
2003
- private static function loadLocales()
2004
- {
2005
- $localeFileDirectory = __DIR__ . '/locale/';
2006
- foreach (glob($localeFileDirectory . '/*', GLOB_ONLYDIR) as $filename) {
2007
- $filename = substr($filename, strlen($localeFileDirectory) + 1);
2008
- if ($filename != 'en') {
2009
- self::$validLocaleLanguages[] = $filename;
2010
- }
2011
- }
2012
- }
2013
-
2014
- /**
2015
- * Get an instance of this class.
2016
- *
2017
- * @param Spreadsheet $spreadsheet Injected spreadsheet for working with a PhpSpreadsheet Spreadsheet object,
2018
- * or NULL to create a standalone claculation engine
2019
- *
2020
- * @return Calculation
2021
- */
2022
- public static function getInstance(Spreadsheet $spreadsheet = null)
2023
- {
2024
- if ($spreadsheet !== null) {
2025
- $instance = $spreadsheet->getCalculationEngine();
2026
- if (isset($instance)) {
2027
- return $instance;
2028
- }
2029
- }
2030
-
2031
- if (!isset(self::$instance) || (self::$instance === null)) {
2032
- self::$instance = new self();
2033
- }
2034
-
2035
- return self::$instance;
2036
- }
2037
-
2038
- /**
2039
- * Flush the calculation cache for any existing instance of this class
2040
- * but only if a Calculation instance exists.
2041
- */
2042
- public function flushInstance()
2043
- {
2044
- $this->clearCalculationCache();
2045
- }
2046
-
2047
- /**
2048
- * Get the Logger for this calculation engine instance.
2049
- *
2050
- * @return Logger
2051
- */
2052
- public function getDebugLog()
2053
- {
2054
- return $this->debugLog;
2055
- }
2056
-
2057
- /**
2058
- * __clone implementation. Cloning should not be allowed in a Singleton!
2059
- *
2060
- * @throws Exception
2061
- */
2062
- final public function __clone()
2063
- {
2064
- throw new Exception('Cloning the calculation engine is not allowed!');
2065
- }
2066
-
2067
- /**
2068
- * Return the locale-specific translation of TRUE.
2069
- *
2070
- * @return string locale-specific translation of TRUE
2071
- */
2072
- public static function getTRUE()
2073
- {
2074
- return self::$localeBoolean['TRUE'];
2075
- }
2076
-
2077
- /**
2078
- * Return the locale-specific translation of FALSE.
2079
- *
2080
- * @return string locale-specific translation of FALSE
2081
- */
2082
- public static function getFALSE()
2083
- {
2084
- return self::$localeBoolean['FALSE'];
2085
- }
2086
-
2087
- /**
2088
- * Set the Array Return Type (Array or Value of first element in the array).
2089
- *
2090
- * @param string $returnType Array return type
2091
- *
2092
- * @return bool Success or failure
2093
- */
2094
- public static function setArrayReturnType($returnType)
2095
- {
2096
- if (($returnType == self::RETURN_ARRAY_AS_VALUE) ||
2097
- ($returnType == self::RETURN_ARRAY_AS_ERROR) ||
2098
- ($returnType == self::RETURN_ARRAY_AS_ARRAY)) {
2099
- self::$returnArrayAsType = $returnType;
2100
-
2101
- return true;
2102
- }
2103
-
2104
- return false;
2105
- }
2106
-
2107
- /**
2108
- * Return the Array Return Type (Array or Value of first element in the array).
2109
- *
2110
- * @return string $returnType Array return type
2111
- */
2112
- public static function getArrayReturnType()
2113
- {
2114
- return self::$returnArrayAsType;
2115
- }
2116
-
2117
- /**
2118
- * Is calculation caching enabled?
2119
- *
2120
- * @return bool
2121
- */
2122
- public function getCalculationCacheEnabled()
2123
- {
2124
- return $this->calculationCacheEnabled;
2125
- }
2126
-
2127
- /**
2128
- * Enable/disable calculation cache.
2129
- *
2130
- * @param bool $pValue
2131
- */
2132
- public function setCalculationCacheEnabled($pValue)
2133
- {
2134
- $this->calculationCacheEnabled = $pValue;
2135
- $this->clearCalculationCache();
2136
- }
2137
-
2138
- /**
2139
- * Enable calculation cache.
2140
- */
2141
- public function enableCalculationCache()
2142
- {
2143
- $this->setCalculationCacheEnabled(true);
2144
- }
2145
-
2146
- /**
2147
- * Disable calculation cache.
2148
- */
2149
- public function disableCalculationCache()
2150
- {
2151
- $this->setCalculationCacheEnabled(false);
2152
- }
2153
-
2154
- /**
2155
- * Clear calculation cache.
2156
- */
2157
- public function clearCalculationCache()
2158
- {
2159
- $this->calculationCache = [];
2160
- }
2161
-
2162
- /**
2163
- * Clear calculation cache for a specified worksheet.
2164
- *
2165
- * @param string $worksheetName
2166
- */
2167
- public function clearCalculationCacheForWorksheet($worksheetName)
2168
- {
2169
- if (isset($this->calculationCache[$worksheetName])) {
2170
- unset($this->calculationCache[$worksheetName]);
2171
- }
2172
- }
2173
-
2174
- /**
2175
- * Rename calculation cache for a specified worksheet.
2176
- *
2177
- * @param string $fromWorksheetName
2178
- * @param string $toWorksheetName
2179
- */
2180
- public function renameCalculationCacheForWorksheet($fromWorksheetName, $toWorksheetName)
2181
- {
2182
- if (isset($this->calculationCache[$fromWorksheetName])) {
2183
- $this->calculationCache[$toWorksheetName] = &$this->calculationCache[$fromWorksheetName];
2184
- unset($this->calculationCache[$fromWorksheetName]);
2185
- }
2186
- }
2187
-
2188
- /**
2189
- * Get the currently defined locale code.
2190
- *
2191
- * @return string
2192
- */
2193
- public function getLocale()
2194
- {
2195
- return self::$localeLanguage;
2196
- }
2197
-
2198
- /**
2199
- * Set the locale code.
2200
- *
2201
- * @param string $locale The locale to use for formula translation, eg: 'en_us'
2202
- *
2203
- * @return bool
2204
- */
2205
- public function setLocale($locale)
2206
- {
2207
- // Identify our locale and language
2208
- $language = $locale = strtolower($locale);
2209
- if (strpos($locale, '_') !== false) {
2210
- list($language) = explode('_', $locale);
2211
- }
2212
-
2213
- if (count(self::$validLocaleLanguages) == 1) {
2214
- self::loadLocales();
2215
- }
2216
- // Test whether we have any language data for this language (any locale)
2217
- if (in_array($language, self::$validLocaleLanguages)) {
2218
- // initialise language/locale settings
2219
- self::$localeFunctions = [];
2220
- self::$localeArgumentSeparator = ',';
2221
- self::$localeBoolean = ['TRUE' => 'TRUE', 'FALSE' => 'FALSE', 'NULL' => 'NULL'];
2222
- // Default is English, if user isn't requesting english, then read the necessary data from the locale files
2223
- if ($locale != 'en_us') {
2224
- // Search for a file with a list of function names for locale
2225
- $functionNamesFile = __DIR__ . '/locale/' . str_replace('_', DIRECTORY_SEPARATOR, $locale) . DIRECTORY_SEPARATOR . 'functions';
2226
- if (!file_exists($functionNamesFile)) {
2227
- // If there isn't a locale specific function file, look for a language specific function file
2228
- $functionNamesFile = __DIR__ . '/locale/' . $language . DIRECTORY_SEPARATOR . 'functions';
2229
- if (!file_exists($functionNamesFile)) {
2230
- return false;
2231
- }
2232
- }
2233
- // Retrieve the list of locale or language specific function names
2234
- $localeFunctions = file($functionNamesFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
2235
- foreach ($localeFunctions as $localeFunction) {
2236
- list($localeFunction) = explode('##', $localeFunction); // Strip out comments
2237
- if (strpos($localeFunction, '=') !== false) {
2238
- list($fName, $lfName) = explode('=', $localeFunction);
2239
- $fName = trim($fName);
2240
- $lfName = trim($lfName);
2241
- if ((isset(self::$phpSpreadsheetFunctions[$fName])) && ($lfName != '') && ($fName != $lfName)) {
2242
- self::$localeFunctions[$fName] = $lfName;
2243
- }
2244
- }
2245
- }
2246
- // Default the TRUE and FALSE constants to the locale names of the TRUE() and FALSE() functions
2247
- if (isset(self::$localeFunctions['TRUE'])) {
2248
- self::$localeBoolean['TRUE'] = self::$localeFunctions['TRUE'];
2249
- }
2250
- if (isset(self::$localeFunctions['FALSE'])) {
2251
- self::$localeBoolean['FALSE'] = self::$localeFunctions['FALSE'];
2252
- }
2253
-
2254
- $configFile = __DIR__ . '/locale/' . str_replace('_', DIRECTORY_SEPARATOR, $locale) . DIRECTORY_SEPARATOR . 'config';
2255
- if (!file_exists($configFile)) {
2256
- $configFile = __DIR__ . '/locale/' . $language . DIRECTORY_SEPARATOR . 'config';
2257
- }
2258
- if (file_exists($configFile)) {
2259
- $localeSettings = file($configFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
2260
- foreach ($localeSettings as $localeSetting) {
2261
- list($localeSetting) = explode('##', $localeSetting); // Strip out comments
2262
- if (strpos($localeSetting, '=') !== false) {
2263
- list($settingName, $settingValue) = explode('=', $localeSetting);
2264
- $settingName = strtoupper(trim($settingName));
2265
- switch ($settingName) {
2266
- case 'ARGUMENTSEPARATOR':
2267
- self::$localeArgumentSeparator = trim($settingValue);
2268
-
2269
- break;
2270
- }
2271
- }
2272
- }
2273
- }
2274
- }
2275
-
2276
- self::$functionReplaceFromExcel = self::$functionReplaceToExcel =
2277
- self::$functionReplaceFromLocale = self::$functionReplaceToLocale = null;
2278
- self::$localeLanguage = $locale;
2279
-
2280
- return true;
2281
- }
2282
-
2283
- return false;
2284
- }
2285
-
2286
- /**
2287
- * @param string $fromSeparator
2288
- * @param string $toSeparator
2289
- * @param string $formula
2290
- * @param bool $inBraces
2291
- *
2292
- * @return string
2293
- */
2294
- public static function translateSeparator($fromSeparator, $toSeparator, $formula, &$inBraces)
2295
- {
2296
- $strlen = mb_strlen($formula);
2297
- for ($i = 0; $i < $strlen; ++$i) {
2298
- $chr = mb_substr($formula, $i, 1);
2299
- switch ($chr) {
2300
- case '{':
2301
- $inBraces = true;
2302
-
2303
- break;
2304
- case '}':
2305
- $inBraces = false;
2306
-
2307
- break;
2308
- case $fromSeparator:
2309
- if (!$inBraces) {
2310
- $formula = mb_substr($formula, 0, $i) . $toSeparator . mb_substr($formula, $i + 1);
2311
- }
2312
- }
2313
- }
2314
-
2315
- return $formula;
2316
- }
2317
-
2318
- /**
2319
- * @param string[] $from
2320
- * @param string[] $to
2321
- * @param string $formula
2322
- * @param string $fromSeparator
2323
- * @param string $toSeparator
2324
- *
2325
- * @return string
2326
- */
2327
- private static function translateFormula(array $from, array $to, $formula, $fromSeparator, $toSeparator)
2328
- {
2329
- // Convert any Excel function names to the required language
2330
- if (self::$localeLanguage !== 'en_us') {
2331
- $inBraces = false;
2332
- // If there is the possibility of braces within a quoted string, then we don't treat those as matrix indicators
2333
- if (strpos($formula, '"') !== false) {
2334
- // So instead we skip replacing in any quoted strings by only replacing in every other array element after we've exploded
2335
- // the formula
2336
- $temp = explode('"', $formula);
2337
- $i = false;
2338
- foreach ($temp as &$value) {
2339
- // Only count/replace in alternating array entries
2340
- if ($i = !$i) {
2341
- $value = preg_replace($from, $to, $value);
2342
- $value = self::translateSeparator($fromSeparator, $toSeparator, $value, $inBraces);
2343
- }
2344
- }
2345
- unset($value);
2346
- // Then rebuild the formula string
2347
- $formula = implode('"', $temp);
2348
- } else {
2349
- // If there's no quoted strings, then we do a simple count/replace
2350
- $formula = preg_replace($from, $to, $formula);
2351
- $formula = self::translateSeparator($fromSeparator, $toSeparator, $formula, $inBraces);
2352
- }
2353
- }
2354
-
2355
- return $formula;
2356
- }
2357
-
2358
- private static $functionReplaceFromExcel = null;
2359
-
2360
- private static $functionReplaceToLocale = null;
2361
-
2362
- public function _translateFormulaToLocale($formula)
2363
- {
2364
- if (self::$functionReplaceFromExcel === null) {
2365
- self::$functionReplaceFromExcel = [];
2366
- foreach (array_keys(self::$localeFunctions) as $excelFunctionName) {
2367
- self::$functionReplaceFromExcel[] = '/(@?[^\w\.])' . preg_quote($excelFunctionName, '/') . '([\s]*\()/Ui';
2368
- }
2369
- foreach (array_keys(self::$localeBoolean) as $excelBoolean) {
2370
- self::$functionReplaceFromExcel[] = '/(@?[^\w\.])' . preg_quote($excelBoolean, '/') . '([^\w\.])/Ui';
2371
- }
2372
- }
2373
-
2374
- if (self::$functionReplaceToLocale === null) {
2375
- self::$functionReplaceToLocale = [];
2376
- foreach (array_values(self::$localeFunctions) as $localeFunctionName) {
2377
- self::$functionReplaceToLocale[] = '$1' . trim($localeFunctionName) . '$2';
2378
- }
2379
- foreach (array_values(self::$localeBoolean) as $localeBoolean) {
2380
- self::$functionReplaceToLocale[] = '$1' . trim($localeBoolean) . '$2';
2381
- }
2382
- }
2383
-
2384
- return self::translateFormula(self::$functionReplaceFromExcel, self::$functionReplaceToLocale, $formula, ',', self::$localeArgumentSeparator);
2385
- }
2386
-
2387
- private static $functionReplaceFromLocale = null;
2388
-
2389
- private static $functionReplaceToExcel = null;
2390
-
2391
- public function _translateFormulaToEnglish($formula)
2392
- {
2393
- if (self::$functionReplaceFromLocale === null) {
2394
- self::$functionReplaceFromLocale = [];
2395
- foreach (array_values(self::$localeFunctions) as $localeFunctionName) {
2396
- self::$functionReplaceFromLocale[] = '/(@?[^\w\.])' . preg_quote($localeFunctionName, '/') . '([\s]*\()/Ui';
2397
- }
2398
- foreach (array_values(self::$localeBoolean) as $excelBoolean) {
2399
- self::$functionReplaceFromLocale[] = '/(@?[^\w\.])' . preg_quote($excelBoolean, '/') . '([^\w\.])/Ui';
2400
- }
2401
- }
2402
-
2403
- if (self::$functionReplaceToExcel === null) {
2404
- self::$functionReplaceToExcel = [];
2405
- foreach (array_keys(self::$localeFunctions) as $excelFunctionName) {
2406
- self::$functionReplaceToExcel[] = '$1' . trim($excelFunctionName) . '$2';
2407
- }
2408
- foreach (array_keys(self::$localeBoolean) as $excelBoolean) {
2409
- self::$functionReplaceToExcel[] = '$1' . trim($excelBoolean) . '$2';
2410
- }
2411
- }
2412
-
2413
- return self::translateFormula(self::$functionReplaceFromLocale, self::$functionReplaceToExcel, $formula, self::$localeArgumentSeparator, ',');
2414
- }
2415
-
2416
- public static function localeFunc($function)
2417
- {
2418
- if (self::$localeLanguage !== 'en_us') {
2419
- $functionName = trim($function, '(');
2420
- if (isset(self::$localeFunctions[$functionName])) {
2421
- $brace = ($functionName != $function);
2422
- $function = self::$localeFunctions[$functionName];
2423
- if ($brace) {
2424
- $function .= '(';
2425
- }
2426
- }
2427
- }
2428
-
2429
- return $function;
2430
- }
2431
-
2432
- /**
2433
- * Wrap string values in quotes.
2434
- *
2435
- * @param mixed $value
2436
- *
2437
- * @return mixed
2438
- */
2439
- public static function wrapResult($value)
2440
- {
2441
- if (is_string($value)) {
2442
- // Error values cannot be "wrapped"
2443
- if (preg_match('/^' . self::CALCULATION_REGEXP_ERROR . '$/i', $value, $match)) {
2444
- // Return Excel errors "as is"
2445
- return $value;
2446
- }
2447
- // Return strings wrapped in quotes
2448
- return '"' . $value . '"';
2449
- // Convert numeric errors to NaN error
2450
- } elseif ((is_float($value)) && ((is_nan($value)) || (is_infinite($value)))) {
2451
- return Functions::NAN();
2452
- }
2453
-
2454
- return $value;
2455
- }
2456
-
2457
- /**
2458
- * Remove quotes used as a wrapper to identify string values.
2459
- *
2460
- * @param mixed $value
2461
- *
2462
- * @return mixed
2463
- */
2464
- public static function unwrapResult($value)
2465
- {
2466
- if (is_string($value)) {
2467
- if ((isset($value[0])) && ($value[0] == '"') && (substr($value, -1) == '"')) {
2468
- return substr($value, 1, -1);
2469
- }
2470
- // Convert numeric errors to NAN error
2471
- } elseif ((is_float($value)) && ((is_nan($value)) || (is_infinite($value)))) {
2472
- return Functions::NAN();
2473
- }
2474
-
2475
- return $value;
2476
- }
2477
-
2478
- /**
2479
- * Calculate cell value (using formula from a cell ID)
2480
- * Retained for backward compatibility.
2481
- *
2482
- * @param Cell $pCell Cell to calculate
2483
- *
2484
- * @throws Exception
2485
- *
2486
- * @return mixed
2487
- */
2488
- public function calculate(Cell $pCell = null)
2489
- {
2490
- try {
2491
- return $this->calculateCellValue($pCell);
2492
- } catch (\Exception $e) {
2493
- throw new Exception($e->getMessage());
2494
- }
2495
- }
2496
-
2497
- /**
2498
- * Calculate the value of a cell formula.
2499
- *
2500
- * @param Cell $pCell Cell to calculate
2501
- * @param bool $resetLog Flag indicating whether the debug log should be reset or not
2502
- *
2503
- * @throws Exception
2504
- *
2505
- * @return mixed
2506
- */
2507
- public function calculateCellValue(Cell $pCell = null, $resetLog = true)
2508
- {
2509
- if ($pCell === null) {
2510
- return null;
2511
- }
2512
-
2513
- $returnArrayAsType = self::$returnArrayAsType;
2514
- if ($resetLog) {
2515
- // Initialise the logging settings if requested
2516
- $this->formulaError = null;
2517
- $this->debugLog->clearLog();
2518
- $this->cyclicReferenceStack->clear();
2519
- $this->cyclicFormulaCounter = 1;
2520
-
2521
- self::$returnArrayAsType = self::RETURN_ARRAY_AS_ARRAY;
2522
- }
2523
-
2524
- // Execute the calculation for the cell formula
2525
- $this->cellStack[] = [
2526
- 'sheet' => $pCell->getWorksheet()->getTitle(),
2527
- 'cell' => $pCell->getCoordinate(),
2528
- ];
2529
-
2530
- try {
2531
- $result = self::unwrapResult($this->_calculateFormulaValue($pCell->getValue(), $pCell->getCoordinate(), $pCell));
2532
- $cellAddress = array_pop($this->cellStack);
2533
- $this->spreadsheet->getSheetByName($cellAddress['sheet'])->getCell($cellAddress['cell']);
2534
- } catch (\Exception $e) {
2535
- $cellAddress = array_pop($this->cellStack);
2536
- $this->spreadsheet->getSheetByName($cellAddress['sheet'])->getCell($cellAddress['cell']);
2537
-
2538
- throw new Exception($e->getMessage());
2539
- }
2540
-
2541
- if ((is_array($result)) && (self::$returnArrayAsType != self::RETURN_ARRAY_AS_ARRAY)) {
2542
- self::$returnArrayAsType = $returnArrayAsType;
2543
- $testResult = Functions::flattenArray($result);
2544
- if (self::$returnArrayAsType == self::RETURN_ARRAY_AS_ERROR) {
2545
- return Functions::VALUE();
2546
- }
2547
- // If there's only a single cell in the array, then we allow it
2548
- if (count($testResult) != 1) {
2549
- // If keys are numeric, then it's a matrix result rather than a cell range result, so we permit it
2550
- $r = array_keys($result);
2551
- $r = array_shift($r);
2552
- if (!is_numeric($r)) {
2553
- return Functions::VALUE();
2554
- }
2555
- if (is_array($result[$r])) {
2556
- $c = array_keys($result[$r]);
2557
- $c = array_shift($c);
2558
- if (!is_numeric($c)) {
2559
- return Functions::VALUE();
2560
- }
2561
- }
2562
- }
2563
- $result = array_shift($testResult);
2564
- }
2565
- self::$returnArrayAsType = $returnArrayAsType;
2566
-
2567
- if ($result === null) {
2568
- return 0;
2569
- } elseif ((is_float($result)) && ((is_nan($result)) || (is_infinite($result)))) {
2570
- return Functions::NAN();
2571
- }
2572
-
2573
- return $result;
2574
- }
2575
-
2576
- /**
2577
- * Validate and parse a formula string.
2578
- *
2579
- * @param string $formula Formula to parse
2580
- *
2581
- * @return array
2582
- */
2583
- public function parseFormula($formula)
2584
- {
2585
- // Basic validation that this is indeed a formula
2586
- // We return an empty array if not
2587
- $formula = trim($formula);
2588
- if ((!isset($formula[0])) || ($formula[0] != '=')) {
2589
- return [];
2590
- }
2591
- $formula = ltrim(substr($formula, 1));
2592
- if (!isset($formula[0])) {
2593
- return [];
2594
- }
2595
-
2596
- // Parse the formula and return the token stack
2597
- return $this->_parseFormula($formula);
2598
- }
2599
-
2600
- /**
2601
- * Calculate the value of a formula.
2602
- *
2603
- * @param string $formula Formula to parse
2604
- * @param string $cellID Address of the cell to calculate
2605
- * @param Cell $pCell Cell to calculate
2606
- *
2607
- * @throws Exception
2608
- *
2609
- * @return mixed
2610
- */
2611
- public function calculateFormula($formula, $cellID = null, Cell $pCell = null)
2612
- {
2613
- // Initialise the logging settings
2614
- $this->formulaError = null;
2615
- $this->debugLog->clearLog();
2616
- $this->cyclicReferenceStack->clear();
2617
-
2618
- if ($this->spreadsheet !== null && $cellID === null && $pCell === null) {
2619
- $cellID = 'A1';
2620
- $pCell = $this->spreadsheet->getActiveSheet()->getCell($cellID);
2621
- } else {
2622
- // Disable calculation cacheing because it only applies to cell calculations, not straight formulae
2623
- // But don't actually flush any cache
2624
- $resetCache = $this->getCalculationCacheEnabled();
2625
- $this->calculationCacheEnabled = false;
2626
- }
2627
-
2628
- // Execute the calculation
2629
- try {
2630
- $result = self::unwrapResult($this->_calculateFormulaValue($formula, $cellID, $pCell));
2631
- } catch (\Exception $e) {
2632
- throw new Exception($e->getMessage());
2633
- }
2634
-
2635
- if ($this->spreadsheet === null) {
2636
- // Reset calculation cacheing to its previous state
2637
- $this->calculationCacheEnabled = $resetCache;
2638
- }
2639
-
2640
- return $result;
2641
- }
2642
-
2643
- /**
2644
- * @param string $cellReference
2645
- * @param mixed $cellValue
2646
- *
2647
- * @return bool
2648
- */
2649
- public function getValueFromCache($cellReference, &$cellValue)
2650
- {
2651
- // Is calculation cacheing enabled?
2652
- // Is the value present in calculation cache?
2653
- $this->debugLog->writeDebugLog('Testing cache value for cell ', $cellReference);
2654
- if (($this->calculationCacheEnabled) && (isset($this->calculationCache[$cellReference]))) {
2655
- $this->debugLog->writeDebugLog('Retrieving value for cell ', $cellReference, ' from cache');
2656
- // Return the cached result
2657
- $cellValue = $this->calculationCache[$cellReference];
2658
-
2659
- return true;
2660
- }
2661
-
2662
- return false;
2663
- }
2664
-
2665
- /**
2666
- * @param string $cellReference
2667
- * @param mixed $cellValue
2668
- */
2669
- public function saveValueToCache($cellReference, $cellValue)
2670
- {
2671
- if ($this->calculationCacheEnabled) {
2672
- $this->calculationCache[$cellReference] = $cellValue;
2673
- }
2674
- }
2675
-
2676
- /**
2677
- * Parse a cell formula and calculate its value.
2678
- *
2679
- * @param string $formula The formula to parse and calculate
2680
- * @param string $cellID The ID (e.g. A3) of the cell that we are calculating
2681
- * @param Cell $pCell Cell to calculate
2682
- *
2683
- * @throws Exception
2684
- *
2685
- * @return mixed
2686
- */
2687
- public function _calculateFormulaValue($formula, $cellID = null, Cell $pCell = null)
2688
- {
2689
- $cellValue = null;
2690
-
2691
- // Basic validation that this is indeed a formula
2692
- // We simply return the cell value if not
2693
- $formula = trim($formula);
2694
- if ($formula[0] != '=') {
2695
- return self::wrapResult($formula);
2696
- }
2697
- $formula = ltrim(substr($formula, 1));
2698
- if (!isset($formula[0])) {
2699
- return self::wrapResult($formula);
2700
- }
2701
-
2702
- $pCellParent = ($pCell !== null) ? $pCell->getWorksheet() : null;
2703
- $wsTitle = ($pCellParent !== null) ? $pCellParent->getTitle() : "\x00Wrk";
2704
- $wsCellReference = $wsTitle . '!' . $cellID;
2705
-
2706
- if (($cellID !== null) && ($this->getValueFromCache($wsCellReference, $cellValue))) {
2707
- return $cellValue;
2708
- }
2709
-
2710
- if (($wsTitle[0] !== "\x00") && ($this->cyclicReferenceStack->onStack($wsCellReference))) {
2711
- if ($this->cyclicFormulaCount <= 0) {
2712
- $this->cyclicFormulaCell = '';
2713
-
2714
- return $this->raiseFormulaError('Cyclic Reference in Formula');
2715
- } elseif ($this->cyclicFormulaCell === $wsCellReference) {
2716
- ++$this->cyclicFormulaCounter;
2717
- if ($this->cyclicFormulaCounter >= $this->cyclicFormulaCount) {
2718
- $this->cyclicFormulaCell = '';
2719
-
2720
- return $cellValue;
2721
- }
2722
- } elseif ($this->cyclicFormulaCell == '') {
2723
- if ($this->cyclicFormulaCounter >= $this->cyclicFormulaCount) {
2724
- return $cellValue;
2725
- }
2726
- $this->cyclicFormulaCell = $wsCellReference;
2727
- }
2728
- }
2729
-
2730
- // Parse the formula onto the token stack and calculate the value
2731
- $this->cyclicReferenceStack->push($wsCellReference);
2732
- $cellValue = $this->processTokenStack($this->_parseFormula($formula, $pCell), $cellID, $pCell);
2733
- $this->cyclicReferenceStack->pop();
2734
-
2735
- // Save to calculation cache
2736
- if ($cellID !== null) {
2737
- $this->saveValueToCache($wsCellReference, $cellValue);
2738
- }
2739
-
2740
- // Return the calculated value
2741
- return $cellValue;
2742
- }
2743
-
2744
- /**
2745
- * Ensure that paired matrix operands are both matrices and of the same size.
2746
- *
2747
- * @param mixed &$operand1 First matrix operand
2748
- * @param mixed &$operand2 Second matrix operand
2749
- * @param int $resize Flag indicating whether the matrices should be resized to match
2750
- * and (if so), whether the smaller dimension should grow or the
2751
- * larger should shrink.
2752
- * 0 = no resize
2753
- * 1 = shrink to fit
2754
- * 2 = extend to fit
2755
- *
2756
- * @return array
2757
- */
2758
- private static function checkMatrixOperands(&$operand1, &$operand2, $resize = 1)
2759
- {
2760
- // Examine each of the two operands, and turn them into an array if they aren't one already
2761
- // Note that this function should only be called if one or both of the operand is already an array
2762
- if (!is_array($operand1)) {
2763
- list($matrixRows, $matrixColumns) = self::getMatrixDimensions($operand2);
2764
- $operand1 = array_fill(0, $matrixRows, array_fill(0, $matrixColumns, $operand1));
2765
- $resize = 0;
2766
- } elseif (!is_array($operand2)) {
2767
- list($matrixRows, $matrixColumns) = self::getMatrixDimensions($operand1);
2768
- $operand2 = array_fill(0, $matrixRows, array_fill(0, $matrixColumns, $operand2));
2769
- $resize = 0;
2770
- }
2771
-
2772
- list($matrix1Rows, $matrix1Columns) = self::getMatrixDimensions($operand1);
2773
- list($matrix2Rows, $matrix2Columns) = self::getMatrixDimensions($operand2);
2774
- if (($matrix1Rows == $matrix2Columns) && ($matrix2Rows == $matrix1Columns)) {
2775
- $resize = 1;
2776
- }
2777
-
2778
- if ($resize == 2) {
2779
- // Given two matrices of (potentially) unequal size, convert the smaller in each dimension to match the larger
2780
- self::resizeMatricesExtend($operand1, $operand2, $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns);
2781
- } elseif ($resize == 1) {
2782
- // Given two matrices of (potentially) unequal size, convert the larger in each dimension to match the smaller
2783
- self::resizeMatricesShrink($operand1, $operand2, $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns);
2784
- }
2785
-
2786
- return [$matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns];
2787
- }
2788
-
2789
- /**
2790
- * Read the dimensions of a matrix, and re-index it with straight numeric keys starting from row 0, column 0.
2791
- *
2792
- * @param array &$matrix matrix operand
2793
- *
2794
- * @return int[] An array comprising the number of rows, and number of columns
2795
- */
2796
- public static function getMatrixDimensions(array &$matrix)
2797
- {
2798
- $matrixRows = count($matrix);
2799
- $matrixColumns = 0;
2800
- foreach ($matrix as $rowKey => $rowValue) {
2801
- if (!is_array($rowValue)) {
2802
- $matrix[$rowKey] = [$rowValue];
2803
- $matrixColumns = max(1, $matrixColumns);
2804
- } else {
2805
- $matrix[$rowKey] = array_values($rowValue);
2806
- $matrixColumns = max(count($rowValue), $matrixColumns);
2807
- }
2808
- }
2809
- $matrix = array_values($matrix);
2810
-
2811
- return [$matrixRows, $matrixColumns];
2812
- }
2813
-
2814
- /**
2815
- * Ensure that paired matrix operands are both matrices of the same size.
2816
- *
2817
- * @param mixed &$matrix1 First matrix operand
2818
- * @param mixed &$matrix2 Second matrix operand
2819
- * @param int $matrix1Rows Row size of first matrix operand
2820
- * @param int $matrix1Columns Column size of first matrix operand
2821
- * @param int $matrix2Rows Row size of second matrix operand
2822
- * @param int $matrix2Columns Column size of second matrix operand
2823
- */
2824
- private static function resizeMatricesShrink(&$matrix1, &$matrix2, $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns)
2825
- {
2826
- if (($matrix2Columns < $matrix1Columns) || ($matrix2Rows < $matrix1Rows)) {
2827
- if ($matrix2Rows < $matrix1Rows) {
2828
- for ($i = $matrix2Rows; $i < $matrix1Rows; ++$i) {
2829
- unset($matrix1[$i]);
2830
- }
2831
- }
2832
- if ($matrix2Columns < $matrix1Columns) {
2833
- for ($i = 0; $i < $matrix1Rows; ++$i) {
2834
- for ($j = $matrix2Columns; $j < $matrix1Columns; ++$j) {
2835
- unset($matrix1[$i][$j]);
2836
- }
2837
- }
2838
- }
2839
- }
2840
-
2841
- if (($matrix1Columns < $matrix2Columns) || ($matrix1Rows < $matrix2Rows)) {
2842
- if ($matrix1Rows < $matrix2Rows) {
2843
- for ($i = $matrix1Rows; $i < $matrix2Rows; ++$i) {
2844
- unset($matrix2[$i]);
2845
- }
2846
- }
2847
- if ($matrix1Columns < $matrix2Columns) {
2848
- for ($i = 0; $i < $matrix2Rows; ++$i) {
2849
- for ($j = $matrix1Columns; $j < $matrix2Columns; ++$j) {
2850
- unset($matrix2[$i][$j]);
2851
- }
2852
- }
2853
- }
2854
- }
2855
- }
2856
-
2857
- /**
2858
- * Ensure that paired matrix operands are both matrices of the same size.
2859
- *
2860
- * @param mixed &$matrix1 First matrix operand
2861
- * @param mixed &$matrix2 Second matrix operand
2862
- * @param int $matrix1Rows Row size of first matrix operand
2863
- * @param int $matrix1Columns Column size of first matrix operand
2864
- * @param int $matrix2Rows Row size of second matrix operand
2865
- * @param int $matrix2Columns Column size of second matrix operand
2866
- */
2867
- private static function resizeMatricesExtend(&$matrix1, &$matrix2, $matrix1Rows, $matrix1Columns, $matrix2Rows, $matrix2Columns)
2868
- {
2869
- if (($matrix2Columns < $matrix1Columns) || ($matrix2Rows < $matrix1Rows)) {
2870
- if ($matrix2Columns < $matrix1Columns) {
2871
- for ($i = 0; $i < $matrix2Rows; ++$i) {
2872
- $x = $matrix2[$i][$matrix2Columns - 1];
2873
- for ($j = $matrix2Columns; $j < $matrix1Columns; ++$j) {
2874
- $matrix2[$i][$j] = $x;
2875
- }
2876
- }
2877
- }
2878
- if ($matrix2Rows < $matrix1Rows) {
2879
- $x = $matrix2[$matrix2Rows - 1];
2880
- for ($i = 0; $i < $matrix1Rows; ++$i) {
2881
- $matrix2[$i] = $x;
2882
- }
2883
- }
2884
- }
2885
-
2886
- if (($matrix1Columns < $matrix2Columns) || ($matrix1Rows < $matrix2Rows)) {
2887
- if ($matrix1Columns < $matrix2Columns) {
2888
- for ($i = 0; $i < $matrix1Rows; ++$i) {
2889
- $x = $matrix1[$i][$matrix1Columns - 1];
2890
- for ($j = $matrix1Columns; $j < $matrix2Columns; ++$j) {
2891
- $matrix1[$i][$j] = $x;
2892
- }
2893
- }
2894
- }
2895
- if ($matrix1Rows < $matrix2Rows) {
2896
- $x = $matrix1[$matrix1Rows - 1];
2897
- for ($i = 0; $i < $matrix2Rows; ++$i) {
2898
- $matrix1[$i] = $x;
2899
- }
2900
- }
2901
- }
2902
- }
2903
-
2904
- /**
2905
- * Format details of an operand for display in the log (based on operand type).
2906
- *
2907
- * @param mixed $value First matrix operand
2908
- *
2909
- * @return mixed
2910
- */
2911
- private function showValue($value)
2912
- {
2913
- if ($this->debugLog->getWriteDebugLog()) {
2914
- $testArray = Functions::flattenArray($value);
2915
- if (count($testArray) == 1) {
2916
- $value = array_pop($testArray);
2917
- }
2918
-
2919
- if (is_array($value)) {
2920
- $returnMatrix = [];
2921
- $pad = $rpad = ', ';
2922
-