Merge branch 'master' of https://git.code.sf.net/p/frontaccounting/git
[fa-stable.git] / reporting / includes / unicode_data2.php
1 <?php
2 //============================================================+
3 // File name   : unicode_data.php
4 // Begin       : 2008-01-01
5 // Last Update : 2008-07-21
6 // License     : GNU LGPL (http://www.gnu.org/copyleft/lesser.html)
7 //      ----------------------------------------------------------------------------
8 //  Copyright (C) 2002-2008  Nicola Asuni - Tecnick.com S.r.l.
9 //
10 //      This program is free software: you can redistribute it and/or modify
11 //      it under the terms of the GNU Lesser General Public License as published by
12 //      the Free Software Foundation, either version 2.1 of the License, or
13 //      (at your option) any later version.
14 //
15 //      This program is distributed in the hope that it will be useful,
16 //      but WITHOUT ANY WARRANTY; without even the implied warranty of
17 //      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 //      GNU Lesser General Public License for more details.
19 //
20 //      You should have received a copy of the GNU Lesser General Public License
21 //      along with this program.  If not, see <http://www.gnu.org/licenses/>.
22 //
23 //      See LICENSE.TXT file for more information.
24 //  ----------------------------------------------------------------------------
25 //
26 // Description : Unicode Include file for TCPDF.
27 //
28 // Author: Nicola Asuni
29 //
30 // (c) Copyright:
31 //               Nicola Asuni
32 //               Tecnick.com s.r.l.
33 //               Via Della Pace, 11
34 //               09044 Quartucciu (CA)
35 //               ITALY
36 //               www.tecnick.com
37 //               info@tecnick.com
38 //============================================================+
39 // THANKS TO
40 // Efthimios Mavrogeorgiadis
41 // Saleh AlMatrafe
42
43 /**
44  * Unicode Include file for TCPDF.
45  * @author Nicola Asuni
46  * @copyright 2004-2008 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com
47  * @package com.tecnick.tcpdf
48  * @link http://www.tcpdf.org
49  * @license http://www.gnu.org/copyleft/lesser.html LGPL
50  * @since 2.1.000 (2008-01-08)
51 */
52
53 /**
54 * Left-to-Right Mark
55 */
56 define("K_LRM", 8206);
57 /**
58 * Right-to-Left Mark
59 */
60 define("K_RLM", 8207);
61 /**
62 * Left-to-Right Embedding
63 */
64 define("K_LRE", 8234);
65 /**
66 * Right-to-Left Embedding
67 */
68 define("K_RLE", 8235);
69 /**
70 * Pop Directional Format
71 */
72 define("K_PDF", 8236);
73 /**
74 * Left-to-Right Override
75 */
76 define("K_LRO", 8237);
77 /**
78 * Right-to-Left Override
79 */
80 define("K_RLO", 8238);
81
82 /*
83  * Pattern to test RTL (Righ-To-Left) strings using regular expressions.
84  */
85 if (!defined("K_RE_PATTERN_RTL"))
86 define("K_RE_PATTERN_RTL", "/(
87           \xD6\xBE                                                                                                                                                                                      # R
88         | \xD7[\x80\x83\x86\x90-\xAA\xB0-\xB4]                                                                  # R
89         | \xDF[\x80-\xAA\xB4\xB5\xBA]                                                                                                           # R
90         | \xE2\x80\x8F                                                                                                                                                                  # R
91         | \xEF\xAC[\x9D\x9F\xA0-\xA8\xAA-\xB6\xB8-\xBC\xBE]                     # R
92         | \xEF\xAD[\x80\x81\x83\x84\x86-\x8F]                                                                           # R
93         | \xF0\x90\xA0[\x80-\x85\x88\x8A-\xB5\xB7\xB8\xBC\xBF]  # R
94         | \xF0\x90\xA4[\x80-\x99]                                                                                                                               # R
95         | \xF0\x90\xA8[\x80\x90-\x93\x95-\x97\x99-\xB3]                                 # R
96         | \xF0\x90\xA9[\x80-\x87\x90-\x98]                                                                                      # R
97         | \xE2\x80[\xAB\xAE]                                                                                                                                            # RLE & RLO
98         )/x");
99 /*
100  * Pattern to test Arabic strings using regular expressions.
101  * source: http://www.w3.org/International/questions/qa-forms-utf-8
102  */
103 if (!defined("K_RE_PATTERN_ARABIC"))
104 define("K_RE_PATTERN_ARABIC", "/(
105                           \xD8[\x80-\x83\x8B\x8D\x9B\x9E\x9F\xA1-\xBA]  # AL
106                         | \xD9[\x80-\x8A\xAD-\xAF\xB1-\xBF]                                                     # AL
107                         | \xDA[\x80-\xBF]                                                                                                                               # AL
108                         | \xDB[\x80-\x95\x9D\xA5\xA6\xAE\xAF\xBA-\xBF]  # AL
109                         | \xDC[\x80-\x8D\x90\x92-\xAF]                                                                  # AL
110                         | \xDD[\x8D-\xAD]                                                                                                                               # AL
111                         | \xDE[\x80-\xA5\xB1]                                                                                                           # AL
112                         | \xEF\xAD[\x90-\xBF]                                                                                                           # AL
113                         | \xEF\xAE[\x80-\xB1]                                                                                                           # AL
114                         | \xEF\xAF[\x93-\xBF]                                                                                                           # AL
115                         | \xEF[\xB0-\xB3][\x80-\xBF]                                                                            # AL
116                         | \xEF\xB4[\x80-\xBD]                                                                                                           # AL
117                         | \xEF\xB5[\x90-\xBF]                                                                                                           # AL
118                         | \xEF\xB6[\x80-\x8F\x92-\xBF]                                                                  # AL
119                         | \xEF\xB7[\x80-\x87\xB0-\xBC]                                                                  # AL
120                         | \xEF\xB9[\xB0-\xB4\xB6-\xBF]                                                                  # AL
121                         | \xEF\xBA[\x80-\xBF]                                                                                                           # AL
122                         | \xEF\xBB[\x80-\xBC]                                                                                                           # AL
123                         | \xD9[\xA0-\xA9\xAB\xAC]                                                                                               # AN
124                         )/x");
125 /**
126  * Array of unicode types
127  */
128 $unicode = array(
129         0                       =>      'BN',
130         1                       =>      'BN',
131         2                       =>      'BN',
132         3                       =>      'BN',
133         4                       =>      'BN',
134         5                       =>      'BN',
135         6                       =>      'BN',
136         7                       =>      'BN',
137         8                       =>      'BN',
138         9                       =>      'S',
139         10              =>      'B',
140         11              =>      'S',
141         12              =>      'WS',
142         13              =>      'B',
143         14              =>      'BN',
144         15              =>      'BN',
145         16              =>      'BN',
146         17              =>      'BN',
147         18              =>      'BN',
148         19              =>      'BN',
149         20              =>      'BN',
150         21              =>      'BN',
151         22              =>      'BN',
152         23              =>      'BN',
153         24              =>      'BN',
154         25              =>      'BN',
155         26              =>      'BN',
156         27              =>      'BN',
157         28              =>      'B',
158         29              =>      'B',
159         30              =>      'B',
160         31              =>      'S',
161         32              =>      'WS',
162         33              =>      'ON',
163         34              =>      'ON',
164         35              =>      'ET',
165         36              =>      'ET',
166         37              =>      'ET',
167         38              =>      'ON',
168         39              =>      'ON',
169         40              =>      'ON',
170         41              =>      'ON',
171         42              =>      'ON',
172         43              =>      'ES',
173         44              =>      'CS',
174         45              =>      'ES',
175         46              =>      'CS',
176         47              =>      'CS',
177         48              =>      'EN',
178         49              =>      'EN',
179         50              =>      'EN',
180         51              =>      'EN',
181         52              =>      'EN',
182         53              =>      'EN',
183         54              =>      'EN',
184         55              =>      'EN',
185         56              =>      'EN',
186         57              =>      'EN',
187         58              =>      'CS',
188         59              =>      'ON',
189         60              =>      'ON',
190         61              =>      'ON',
191         62              =>      'ON',
192         63              =>      'ON',
193         64              =>      'ON',
194         65              =>      'L',
195         66              =>      'L',
196         67              =>      'L',
197         68              =>      'L',
198         69              =>      'L',
199         70              =>      'L',
200         71              =>      'L',
201         72              =>      'L',
202         73              =>      'L',
203         74              =>      'L',
204         75              =>      'L',
205         76              =>      'L',
206         77              =>      'L',
207         78              =>      'L',
208         79              =>      'L',
209         80              =>      'L',
210         81              =>      'L',
211         82              =>      'L',
212         83              =>      'L',
213         84              =>      'L',
214         85              =>      'L',
215         86              =>      'L',
216         87              =>      'L',
217         88              =>      'L',
218         89              =>      'L',
219         90              =>      'L',
220         91              =>      'ON',
221         92              =>      'ON',
222         93              =>      'ON',
223         94              =>      'ON',
224         95              =>      'ON',
225         96              =>      'ON',
226         97              =>      'L',
227         98              =>      'L',
228         99              =>      'L',
229         100             =>      'L',
230         101             =>      'L',
231         102             =>      'L',
232         103             =>      'L',
233         104             =>      'L',
234         105             =>      'L',
235         106             =>      'L',
236         107             =>      'L',
237         108             =>      'L',
238         109             =>      'L',
239         110             =>      'L',
240         111             =>      'L',
241         112             =>      'L',
242         113             =>      'L',
243         114             =>      'L',
244         115             =>      'L',
245         116             =>      'L',
246         117             =>      'L',
247         118             =>      'L',
248         119             =>      'L',
249         120             =>      'L',
250         121             =>      'L',
251         122             =>      'L',
252         123             =>      'ON',
253         124             =>      'ON',
254         125             =>      'ON',
255         126             =>      'ON',
256         127             =>      'BN',
257         128             =>      'BN',
258         129             =>      'BN',
259         130             =>      'BN',
260         131             =>      'BN',
261         132             =>      'BN',
262         133             =>      'B',
263         134             =>      'BN',
264         135             =>      'BN',
265         136             =>      'BN',
266         137             =>      'BN',
267         138             =>      'BN',
268         139             =>      'BN',
269         140             =>      'BN',
270         141             =>      'BN',
271         142             =>      'BN',
272         143             =>      'BN',
273         144             =>      'BN',
274         145             =>      'BN',
275         146             =>      'BN',
276         147             =>      'BN',
277         148             =>      'BN',
278         149             =>      'BN',
279         150             =>      'BN',
280         151             =>      'BN',
281         152             =>      'BN',
282         153             =>      'BN',
283         154             =>      'BN',
284         155             =>      'BN',
285         156             =>      'BN',
286         157             =>      'BN',
287         158             =>      'BN',
288         159             =>      'BN',
289         160             =>      'CS',
290         161             =>      'ON',
291         162             =>      'ET',
292         163             =>      'ET',
293         164             =>      'ET',
294         165             =>      'ET',
295         166             =>      'ON',
296         167             =>      'ON',
297         168             =>      'ON',
298         169             =>      'ON',
299         170             =>      'L',
300         171             =>      'ON',
301         172             =>      'ON',
302         173             =>      'BN',
303         174             =>      'ON',
304         175             =>      'ON',
305         176             =>      'ET',
306         177             =>      'ET',
307         178             =>      'EN',
308         179             =>      'EN',
309         180             =>      'ON',
310         181             =>      'L',
311         182             =>      'ON',
312         183             =>      'ON',
313         184             =>      'ON',
314         185             =>      'EN',
315         186             =>      'L',
316         187             =>      'ON',
317         188             =>      'ON',
318         189             =>      'ON',
319         190             =>      'ON',
320         191             =>      'ON',
321         192             =>      'L',
322         193             =>      'L',
323         194             =>      'L',
324         195             =>      'L',
325         196             =>      'L',
326         197             =>      'L',
327         198             =>      'L',
328         199             =>      'L',
329         200             =>      'L',
330         201             =>      'L',
331         202             =>      'L',
332         203             =>      'L',
333         204             =>      'L',
334         205             =>      'L',
335         206             =>      'L',
336         207             =>      'L',
337         208             =>      'L',
338         209             =>      'L',
339         210             =>      'L',
340         211             =>      'L',
341         212             =>      'L',
342         213             =>      'L',
343         214             =>      'L',
344         215             =>      'ON',
345         216             =>      'L',
346         217             =>      'L',
347         218             =>      'L',
348         219             =>      'L',
349         220             =>      'L',
350         221             =>      'L',
351         222             =>      'L',
352         223             =>      'L',
353         224             =>      'L',
354         225             =>      'L',
355         226             =>      'L',
356         227             =>      'L',
357         228             =>      'L',
358         229             =>      'L',
359         230             =>      'L',
360         231             =>      'L',
361         232             =>      'L',
362         233             =>      'L',
363         234             =>      'L',
364         235             =>      'L',
365         236             =>      'L',
366         237             =>      'L',
367         238             =>      'L',
368         239             =>      'L',
369         240             =>      'L',
370         241             =>      'L',
371         242             =>      'L',
372         243             =>      'L',
373         244             =>      'L',
374         245             =>      'L',
375         246             =>      'L',
376         247             =>      'ON',
377         248             =>      'L',
378         249             =>      'L',
379         250             =>      'L',
380         251             =>      'L',
381         252             =>      'L',
382         253             =>      'L',
383         254             =>      'L',
384         255             =>      'L',
385         256             =>      'L',
386         257             =>      'L',
387         258             =>      'L',
388         259             =>      'L',
389         260             =>      'L',
390         261             =>      'L',
391         262             =>      'L',
392         263             =>      'L',
393         264             =>      'L',
394         265             =>      'L',
395         266             =>      'L',
396         267             =>      'L',
397         268             =>      'L',
398         269             =>      'L',
399         270             =>      'L',
400         271             =>      'L',
401         272             =>      'L',
402         273             =>      'L',
403         274             =>      'L',
404         275             =>      'L',
405         276             =>      'L',
406         277             =>      'L',
407         278             =>      'L',
408         279             =>      'L',
409         280             =>      'L',
410         281             =>      'L',
411         282             =>      'L',
412         283             =>      'L',
413         284             =>      'L',
414         285             =>      'L',
415         286             =>      'L',
416         287             =>      'L',
417         288             =>      'L',
418         289             =>      'L',
419         290             =>      'L',
420         291             =>      'L',
421         292             =>      'L',
422         293             =>      'L',
423         294             =>      'L',
424         295             =>      'L',
425         296             =>      'L',
426         297             =>      'L',
427         298             =>      'L',
428         299             =>      'L',
429         300             =>      'L',
430         301             =>      'L',
431         302             =>      'L',
432         303             =>      'L',
433         304             =>      'L',
434         305             =>      'L',
435         306             =>      'L',
436         307             =>      'L',
437         308             =>      'L',
438         309             =>      'L',
439         310             =>      'L',
440         311             =>      'L',
441         312             =>      'L',
442         313             =>      'L',
443         314             =>      'L',
444         315             =>      'L',
445         316             =>      'L',
446         317             =>      'L',
447         318             =>      'L',
448         319             =>      'L',
449         320             =>      'L',
450         321             =>      'L',
451         322             =>      'L',
452         323             =>      'L',
453         324             =>      'L',
454         325             =>      'L',
455         326             =>      'L',
456         327             =>      'L',
457         328             =>      'L',
458         329             =>      'L',
459         330             =>      'L',
460         331             =>      'L',
461         332             =>      'L',
462         333             =>      'L',
463         334             =>      'L',
464         335             =>      'L',
465         336             =>      'L',
466         337             =>      'L',
467         338             =>      'L',
468         339             =>      'L',
469         340             =>      'L',
470         341             =>      'L',
471         342             =>      'L',
472         343             =>      'L',
473         344             =>      'L',
474         345             =>      'L',
475         346             =>      'L',
476         347             =>      'L',
477         348             =>      'L',
478         349             =>      'L',
479         350             =>      'L',
480         351             =>      'L',
481         352             =>      'L',
482         353             =>      'L',
483         354             =>      'L',
484         355             =>      'L',
485         356             =>      'L',
486         357             =>      'L',
487         358             =>      'L',
488         359             =>      'L',
489         360             =>      'L',
490         361             =>      'L',
491         362             =>      'L',
492         363             =>      'L',
493         364             =>      'L',
494         365             =>      'L',
495         366             =>      'L',
496         367             =>      'L',
497         368             =>      'L',
498         369             =>      'L',
499         370             =>      'L',
500         371             =>      'L',
501         372             =>      'L',
502         373             =>      'L',
503         374             =>      'L',
504         375             =>      'L',
505         376             =>      'L',
506         377             =>      'L',
507         378             =>      'L',
508         379             =>      'L',
509         380             =>      'L',
510         381             =>      'L',
511         382             =>      'L',
512         383             =>      'L',
513         384             =>      'L',
514         385             =>      'L',
515         386             =>      'L',
516         387             =>      'L',
517         388             =>      'L',
518         389             =>      'L',
519         390             =>      'L',
520         391             =>      'L',
521         392             =>      'L',
522         393             =>      'L',
523         394             =>      'L',
524         395             =>      'L',
525         396             =>      'L',
526         397             =>      'L',
527         398             =>      'L',
528         399             =>      'L',
529         400             =>      'L',
530         401             =>      'L',
531         402             =>      'L',
532         403             =>      'L',
533         404             =>      'L',
534         405             =>      'L',
535         406             =>      'L',
536         407             =>      'L',
537         408             =>      'L',
538         409             =>      'L',
539         410             =>      'L',
540         411             =>      'L',
541         412             =>      'L',
542         413             =>      'L',
543         414             =>      'L',
544         415             =>      'L',
545         416             =>      'L',
546         417             =>      'L',
547         418             =>      'L',
548         419             =>      'L',
549         420             =>      'L',
550         421             =>      'L',
551         422             =>      'L',
552         423             =>      'L',
553         424             =>      'L',
554         425             =>      'L',
555         426             =>      'L',
556         427             =>      'L',
557         428             =>      'L',
558         429             =>      'L',
559         430             =>      'L',
560         431             =>      'L',
561         432             =>      'L',
562         433             =>      'L',
563         434             =>      'L',
564         435             =>      'L',
565         436             =>      'L',
566         437             =>      'L',
567         438             =>      'L',
568         439             =>      'L',
569         440             =>      'L',
570         441             =>      'L',
571         442             =>      'L',
572         443             =>      'L',
573         444             =>      'L',
574         445             =>      'L',
575         446             =>      'L',
576         447             =>      'L',
577         448             =>      'L',
578         449             =>      'L',
579         450             =>      'L',
580         451             =>      'L',
581         452             =>      'L',
582         453             =>      'L',
583         454             =>      'L',
584         455             =>      'L',
585         456             =>      'L',
586         457             =>      'L',
587         458             =>      'L',
588         459             =>      'L',
589         460             =>      'L',
590         461             =>      'L',
591         462             =>      'L',
592         463             =>      'L',
593         464             =>      'L',
594         465             =>      'L',
595         466             =>      'L',
596         467             =>      'L',
597         468             =>      'L',
598         469             =>      'L',
599         470             =>      'L',
600         471             =>      'L',
601         472             =>      'L',
602         473             =>      'L',
603         474             =>      'L',
604         475             =>      'L',
605         476             =>      'L',
606         477             =>      'L',
607         478             =>      'L',
608         479             =>      'L',
609         480             =>      'L',
610         481             =>      'L',
611         482             =>      'L',
612         483             =>      'L',
613         484             =>      'L',
614         485             =>      'L',
615         486             =>      'L',
616         487             =>      'L',
617         488             =>      'L',
618         489             =>      'L',
619         490             =>      'L',
620         491             =>      'L',
621         492             =>      'L',
622         493             =>      'L',
623         494             =>      'L',
624         495             =>      'L',
625         496             =>      'L',
626         497             =>      'L',
627         498             =>      'L',
628         499             =>      'L',
629         500             =>      'L',
630         501             =>      'L',
631         502             =>      'L',
632         503             =>      'L',
633         504             =>      'L',
634         505             =>      'L',
635         506             =>      'L',
636         507             =>      'L',
637         508             =>      'L',
638         509             =>      'L',
639         510             =>      'L',
640         511             =>      'L',
641         512             =>      'L',
642         513             =>      'L',
643         514             =>      'L',
644         515             =>      'L',
645         516             =>      'L',
646         517             =>      'L',
647         518             =>      'L',
648         519             =>      'L',
649         520             =>      'L',
650         521             =>      'L',
651         522             =>      'L',
652         523             =>      'L',
653         524             =>      'L',
654         525             =>      'L',
655         526             =>      'L',
656         527             =>      'L',
657         528             =>      'L',
658         529             =>      'L',
659         530             =>      'L',
660         531             =>      'L',
661         532             =>      'L',
662         533             =>      'L',
663         534             =>      'L',
664         535             =>      'L',
665         536             =>      'L',
666         537             =>      'L',
667         538             =>      'L',
668         539             =>      'L',
669         540             =>      'L',
670         541             =>      'L',
671         542             =>      'L',
672         543             =>      'L',
673         544             =>      'L',
674         545             =>      'L',
675         546             =>      'L',
676         547             =>      'L',
677         548             =>      'L',
678         549             =>      'L',
679         550             =>      'L',
680         551             =>      'L',
681         552             =>      'L',
682         553             =>      'L',
683         554             =>      'L',
684         555             =>      'L',
685         556             =>      'L',
686         557             =>      'L',
687         558             =>      'L',
688         559             =>      'L',
689         560             =>      'L',
690         561             =>      'L',
691         562             =>      'L',
692         563             =>      'L',
693         564             =>      'L',
694         565             =>      'L',
695         566             =>      'L',
696         567             =>      'L',
697         568             =>      'L',
698         569             =>      'L',
699         570             =>      'L',
700         571             =>      'L',
701         572             =>      'L',
702         573             =>      'L',
703         574             =>      'L',
704         575             =>      'L',
705         576             =>      'L',
706         577             =>      'L',
707         578             =>      'L',
708         579             =>      'L',
709         580             =>      'L',
710         581             =>      'L',
711         582             =>      'L',
712         583             =>      'L',
713         584             =>      'L',
714         585             =>      'L',
715         586             =>      'L',
716         587             =>      'L',
717         588             =>      'L',
718         589             =>      'L',
719         590             =>      'L',
720         591             =>      'L',
721         592             =>      'L',
722         593             =>      'L',
723         594             =>      'L',
724         595             =>      'L',
725         596             =>      'L',
726         597             =>      'L',
727         598             =>      'L',
728         599             =>      'L',
729         600             =>      'L',
730         601             =>      'L',
731         602             =>      'L',
732         603             =>      'L',
733         604             =>      'L',
734         605             =>      'L',
735         606             =>      'L',
736         607             =>      'L',
737         608             =>      'L',
738         609             =>      'L',
739         610             =>      'L',
740         611             =>      'L',
741         612             =>      'L',
742         613             =>      'L',
743         614             =>      'L',
744         615             =>      'L',
745         616             =>      'L',
746         617             =>      'L',
747         618             =>      'L',
748         619             =>      'L',
749         620             =>      'L',
750         621             =>      'L',
751         622             =>      'L',
752         623             =>      'L',
753         624             =>      'L',
754         625             =>      'L',
755         626             =>      'L',
756         627             =>      'L',
757         628             =>      'L',
758         629             =>      'L',
759         630             =>      'L',
760         631             =>      'L',
761         632             =>      'L',
762         633             =>      'L',
763         634             =>      'L',
764         635             =>      'L',
765         636             =>      'L',
766         637             =>      'L',
767         638             =>      'L',
768         639             =>      'L',
769         640             =>      'L',
770         641             =>      'L',
771         642             =>      'L',
772         643             =>      'L',
773         644             =>      'L',
774         645             =>      'L',
775         646             =>      'L',
776         647             =>      'L',
777         648             =>      'L',
778         649             =>      'L',
779         650             =>      'L',
780         651             =>      'L',
781         652             =>      'L',
782         653             =>      'L',
783         654             =>      'L',
784         655             =>      'L',
785         656             =>      'L',
786         657             =>      'L',
787         658             =>      'L',
788         659             =>      'L',
789         660             =>      'L',
790         661             =>      'L',
791         662             =>      'L',
792         663             =>      'L',
793         664             =>      'L',
794         665             =>      'L',
795         666             =>      'L',
796         667             =>      'L',
797         668             =>      'L',
798         669             =>      'L',
799         670             =>      'L',
800         671             =>      'L',
801         672             =>      'L',
802         673             =>      'L',
803         674             =>      'L',
804         675             =>      'L',
805         676             =>      'L',
806         677             =>      'L',
807         678             =>      'L',
808         679             =>      'L',
809         680             =>      'L',
810         681             =>      'L',
811         682             =>      'L',
812         683             =>      'L',
813         684             =>      'L',
814         685             =>      'L',
815         686             =>      'L',
816         687             =>      'L',
817         688             =>      'L',
818         689             =>      'L',
819         690             =>      'L',
820         691             =>      'L',
821         692             =>      'L',
822         693             =>      'L',
823         694             =>      'L',
824         695             =>      'L',
825         696             =>      'L',
826         697             =>      'ON',
827         698             =>      'ON',
828         699             =>      'L',
829         700             =>      'L',
830         701             =>      'L',
831         702             =>      'L',
832         703             =>      'L',
833         704             =>      'L',
834         705             =>      'L',
835         706             =>      'ON',
836         707             =>      'ON',
837         708             =>      'ON',
838         709             =>      'ON',
839         710             =>      'ON',
840         711             =>      'ON',
841         712             =>      'ON',
842         713             =>      'ON',
843         714             =>      'ON',
844         715             =>      'ON',
845         716             =>      'ON',
846         717             =>      'ON',
847         718             =>      'ON',
848         719             =>      'ON',
849         720             =>      'L',
850         721             =>      'L',
851         722             =>      'ON',
852         723             =>      'ON',
853         724             =>      'ON',
854         725             =>      'ON',
855         726             =>      'ON',
856         727             =>      'ON',
857         728             =>      'ON',
858         729             =>      'ON',
859         730             =>      'ON',
860         731             =>      'ON',
861         732             =>      'ON',
862         733             =>      'ON',
863         734             =>      'ON',
864         735             =>      'ON',
865         736             =>      'L',
866         737             =>      'L',
867         738             =>      'L',
868         739             =>      'L',
869         740             =>      'L',
870         741             =>      'ON',
871         742             =>      'ON',
872         743             =>      'ON',
873         744             =>      'ON',
874         745             =>      'ON',
875         746             =>      'ON',
876         747             =>      'ON',
877         748             =>      'ON',
878         749             =>      'ON',
879         750             =>      'L',
880         751             =>      'ON',
881         752             =>      'ON',
882         753             =>      'ON',
883         754             =>      'ON',
884         755             =>      'ON',
885         756             =>      'ON',
886         757             =>      'ON',
887         758             =>      'ON',
888         759             =>      'ON',
889         760             =>      'ON',
890         761             =>      'ON',
891         762             =>      'ON',
892         763             =>      'ON',
893         764             =>      'ON',
894         765             =>      'ON',
895         766             =>      'ON',
896         767             =>      'ON',
897         768             =>      'NSM',
898         769             =>      'NSM',
899         770             =>      'NSM',
900         771             =>      'NSM',
901         772             =>      'NSM',
902         773             =>      'NSM',
903         774             =>      'NSM',
904         775             =>      'NSM',
905         776             =>      'NSM',
906         777             =>      'NSM',
907         778             =>      'NSM',
908         779             =>      'NSM',
909         780             =>      'NSM',
910         781             =>      'NSM',
911         782             =>      'NSM',
912         783             =>      'NSM',
913         784             =>      'NSM',
914         785             =>      'NSM',
915         786             =>      'NSM',
916         787             =>      'NSM',
917         788             =>      'NSM',
918         789             =>      'NSM',
919         790             =>      'NSM',
920         791             =>      'NSM',
921         792             =>      'NSM',
922         793             =>      'NSM',
923         794             =>      'NSM',
924         795             =>      'NSM',
925         796             =>      'NSM',
926         797             =>      'NSM',
927         798             =>      'NSM',
928         799             =>      'NSM',
929         800             =>      'NSM',
930         801             =>      'NSM',
931         802             =>      'NSM',
932         803             =>      'NSM',
933         804             =>      'NSM',
934         805             =>      'NSM',
935         806             =>      'NSM',
936         807             =>      'NSM',
937         808             =>      'NSM',
938         809             =>      'NSM',
939         810             =>      'NSM',
940         811             =>      'NSM',
941         812             =>      'NSM',
942         813             =>      'NSM',
943         814             =>      'NSM',
944         815             =>      'NSM',
945         816             =>      'NSM',
946         817             =>      'NSM',
947         818             =>      'NSM',
948         819             =>      'NSM',
949         820             =>      'NSM',
950         821             =>      'NSM',
951         822             =>      'NSM',
952         823             =>      'NSM',
953         824             =>      'NSM',
954         825             =>      'NSM',
955         826             =>      'NSM',
956         827             =>      'NSM',
957         828             =>      'NSM',
958         829             =>      'NSM',
959         830             =>      'NSM',
960         831             =>      'NSM',
961         832             =>      'NSM',
962         833             =>      'NSM',
963         834             =>      'NSM',
964         835             =>      'NSM',
965         836             =>      'NSM',
966         837             =>      'NSM',
967         838             =>      'NSM',
968         839             =>      'NSM',
969         840             =>      'NSM',
970         841             =>      'NSM',
971         842             =>      'NSM',
972         843             =>      'NSM',
973         844             =>      'NSM',
974         845             =>      'NSM',
975         846             =>      'NSM',
976         847             =>      'NSM',
977         848             =>      'NSM',
978         849             =>      'NSM',
979         850             =>      'NSM',
980         851             =>      'NSM',
981         852             =>      'NSM',
982         853             =>      'NSM',
983         854             =>      'NSM',
984         855             =>      'NSM',
985         856             =>      'NSM',
986         857             =>      'NSM',
987         858             =>      'NSM',
988         859             =>      'NSM',
989         860             =>      'NSM',
990         861             =>      'NSM',
991         862             =>      'NSM',
992         863             =>      'NSM',
993         864             =>      'NSM',
994         865             =>      'NSM',
995         866             =>      'NSM',
996         867             =>      'NSM',
997         868             =>      'NSM',
998         869             =>      'NSM',
999         870             =>      'NSM',
1000         871             =>      'NSM',
1001         872             =>      'NSM',
1002         873             =>      'NSM',
1003         874             =>      'NSM',
1004         875             =>      'NSM',
1005         876             =>      'NSM',
1006         877             =>      'NSM',
1007         878             =>      'NSM',
1008         879             =>      'NSM',
1009         884             =>      'ON',
1010         885             =>      'ON',
1011         890             =>      'L',
1012         891             =>      'L',
1013         892             =>      'L',
1014         893             =>      'L',
1015         894             =>      'ON',
1016         900             =>      'ON',
1017         901             =>      'ON',
1018         902             =>      'L',
1019         903             =>      'ON',
1020         904             =>      'L',
1021         905             =>      'L',
1022         906             =>      'L',
1023         908             =>      'L',
1024         910             =>      'L',
1025         911             =>      'L',
1026         912             =>      'L',
1027         913             =>      'L',
1028         914             =>      'L',
1029         915             =>      'L',
1030         916             =>      'L',
1031         917             =>      'L',
1032         918             =>      'L',
1033         919             =>      'L',
1034         920             =>      'L',
1035         921             =>      'L',
1036         922             =>      'L',
1037         923             =>      'L',
1038         924             =>      'L',
1039         925             =>      'L',
1040         926             =>      'L',
1041         927             =>      'L',
1042         928             =>      'L',
1043         929             =>      'L',
1044         931             =>      'L',
1045         932             =>      'L',
1046         933             =>      'L',
1047         934             =>      'L',
1048         935             =>      'L',
1049         936             =>      'L',
1050         937             =>      'L',
1051         938             =>      'L',
1052         939             =>      'L',
1053         940             =>      'L',
1054         941             =>      'L',
1055         942             =>      'L',
1056         943             =>      'L',
1057         944             =>      'L',
1058         945             =>      'L',
1059         946             =>      'L',
1060         947             =>      'L',
1061         948             =>      'L',
1062         949             =>      'L',
1063         950             =>      'L',
1064         951             =>      'L',
1065         952             =>      'L',
1066         953             =>      'L',
1067         954             =>      'L',
1068         955             =>      'L',
1069         956             =>      'L',
1070         957             =>      'L',
1071         958             =>      'L',
1072         959             =>      'L',
1073         960             =>      'L',
1074         961             =>      'L',
1075         962             =>      'L',
1076         963             =>      'L',
1077         964             =>      'L',
1078         965             =>      'L',
1079         966             =>      'L',
1080         967             =>      'L',
1081         968             =>      'L',
1082         969             =>      'L',
1083         970             =>      'L',
1084         971             =>      'L',
1085         972             =>      'L',
1086         973             =>      'L',
1087         974             =>      'L',
1088         976             =>      'L',
1089         977             =>      'L',
1090         978             =>      'L',
1091         979             =>      'L',
1092         980             =>      'L',
1093         981             =>      'L',
1094         982             =>      'L',
1095         983             =>      'L',
1096         984             =>      'L',
1097         985             =>      'L',
1098         986             =>      'L',
1099         987             =>      'L',
1100         988             =>      'L',
1101         989             =>      'L',
1102         990             =>      'L',
1103         991             =>      'L',
1104         992             =>      'L',
1105         993             =>      'L',
1106         994             =>      'L',
1107         995             =>      'L',
1108         996             =>      'L',
1109         997             =>      'L',
1110         998             =>      'L',
1111         999             =>      'L',
1112         1000            =>      'L',
1113         1001            =>      'L',
1114         1002            =>      'L',
1115         1003            =>      'L',
1116         1004            =>      'L',
1117         1005            =>      'L',
1118         1006            =>      'L',
1119         1007            =>      'L',
1120         1008            =>      'L',
1121         1009            =>      'L',
1122         1010            =>      'L',
1123         1011            =>      'L',
1124         1012            =>      'L',
1125         1013            =>      'L',
1126         1014            =>      'ON',
1127         1015            =>      'L',
1128         1016            =>      'L',
1129         1017            =>      'L',
1130         1018            =>      'L',
1131         1019            =>      'L',
1132         1020            =>      'L',
1133         1021            =>      'L',
1134         1022            =>      'L',
1135         1023            =>      'L',
1136         1024            =>      'L',
1137         1025            =>      'L',
1138         1026            =>      'L',
1139         1027            =>      'L',
1140         1028            =>      'L',
1141         1029            =>      'L',
1142         1030            =>      'L',
1143         1031            =>      'L',
1144         1032            =>      'L',
1145         1033            =>      'L',
1146         1034            =>      'L',
1147         1035            =>      'L',
1148         1036            =>      'L',
1149         1037            =>      'L',
1150         1038            =>      'L',
1151         1039            =>      'L',
1152         1040            =>      'L',
1153         1041            =>      'L',
1154         1042            =>      'L',
1155         1043            =>      'L',
1156         1044            =>      'L',
1157         1045            =>      'L',
1158         1046            =>      'L',
1159         1047            =>      'L',
1160         1048            =>      'L',
1161         1049            =>      'L',
1162         1050            =>      'L',
1163         1051            =>      'L',
1164         1052            =>      'L',
1165         1053            =>      'L',
1166         1054            =>      'L',
1167         1055            =>      'L',
1168         1056            =>      'L',
1169         1057            =>      'L',
1170         1058            =>      'L',
1171         1059            =>      'L',
1172         1060            =>      'L',
1173         1061            =>      'L',
1174         1062            =>      'L',
1175         1063            =>      'L',
1176         1064            =>      'L',
1177         1065            =>      'L',
1178         1066            =>      'L',
1179         1067            =>      'L',
1180         1068            =>      'L',
1181         1069            =>      'L',
1182         1070            =>      'L',
1183         1071            =>      'L',
1184         1072            =>      'L',
1185         1073            =>      'L',
1186         1074            =>      'L',
1187         1075            =>      'L',
1188         1076            =>      'L',
1189         1077            =>      'L',
1190         1078            =>      'L',
1191         1079            =>      'L',
1192         1080            =>      'L',
1193         1081            =>      'L',
1194         1082            =>      'L',
1195         1083            =>      'L',
1196         1084            =>      'L',
1197         1085            =>      'L',
1198         1086            =>      'L',
1199         1087            =>      'L',
1200         1088            =>      'L',
1201         1089            =>      'L',
1202         1090            =>      'L',
1203         1091            =>      'L',
1204         1092            =>      'L',
1205         1093            =>      'L',
1206         1094            =>      'L',
1207         1095            =>      'L',
1208         1096            =>      'L',
1209         1097            =>      'L',
1210         1098            =>      'L',
1211         1099            =>      'L',
1212         1100            =>      'L',
1213         1101            =>      'L',
1214         1102            =>      'L',
1215         1103            =>      'L',
1216         1104            =>      'L',
1217         1105            =>      'L',
1218         1106            =>      'L',
1219         1107            =>      'L',
1220         1108            =>      'L',
1221         1109            =>      'L',
1222         1110            =>      'L',
1223         1111            =>      'L',
1224         1112            =>      'L',
1225         1113            =>      'L',
1226         1114            =>      'L',
1227         1115            =>      'L',
1228         1116            =>      'L',
1229         1117            =>      'L',
1230         1118            =>      'L',
1231         1119            =>      'L',
1232         1120            =>      'L',
1233         1121            =>      'L',
1234         1122            =>      'L',
1235         1123            =>      'L',
1236         1124            =>      'L',
1237         1125            =>      'L',
1238         1126            =>      'L',
1239         1127            =>      'L',
1240         1128            =>      'L',
1241         1129            =>      'L',
1242         1130            =>      'L',
1243         1131            =>      'L',
1244         1132            =>      'L',
1245         1133            =>      'L',
1246         1134            =>      'L',
1247         1135            =>      'L',
1248         1136            =>      'L',
1249         1137            =>      'L',
1250         1138            =>      'L',
1251         1139            =>      'L',
1252         1140            =>      'L',
1253         1141            =>      'L',
1254         1142            =>      'L',
1255         1143            =>      'L',
1256         1144            =>      'L',
1257         1145            =>      'L',
1258         1146            =>      'L',
1259         1147            =>      'L',
1260         1148            =>      'L',
1261         1149            =>      'L',
1262         1150            =>      'L',
1263         1151            =>      'L',
1264         1152            =>      'L',
1265         1153            =>      'L',
1266         1154            =>      'L',
1267         1155            =>      'NSM',
1268         1156            =>      'NSM',
1269         1157            =>      'NSM',
1270         1158            =>      'NSM',
1271         1160            =>      'NSM',
1272         1161            =>      'NSM',
1273         1162            =>      'L',
1274         1163            =>      'L',
1275         1164            =>      'L',
1276         1165            =>      'L',
1277         1166            =>      'L',
1278         1167            =>      'L',
1279         1168            =>      'L',
1280         1169            =>      'L',
1281         1170            =>      'L',
1282         1171            =>      'L',
1283         1172            =>      'L',
1284         1173            =>      'L',
1285         1174            =>      'L',
1286         1175            =>      'L',
1287         1176            =>      'L',
1288         1177            =>      'L',
1289         1178            =>      'L',
1290         1179            =>      'L',
1291         1180            =>      'L',
1292         1181            =>      'L',
1293         1182            =>      'L',
1294         1183            =>      'L',
1295         1184            =>      'L',
1296         1185            =>      'L',
1297         1186            =>      'L',
1298         1187            =>      'L',
1299         1188            =>      'L',
1300         1189            =>      'L',
1301         1190            =>      'L',
1302         1191            =>      'L',
1303         1192            =>      'L',
1304         1193            =>      'L',
1305         1194            =>      'L',
1306         1195            =>      'L',
1307         1196            =>      'L',
1308         1197            =>      'L',
1309         1198            =>      'L',
1310         1199            =>      'L',
1311         1200            =>      'L',
1312         1201            =>      'L',
1313         1202            =>      'L',
1314         1203            =>      'L',
1315         1204            =>      'L',
1316         1205            =>      'L',
1317         1206            =>      'L',
1318         1207            =>      'L',
1319         1208            =>      'L',
1320         1209            =>      'L',
1321         1210            =>      'L',
1322         1211            =>      'L',
1323         1212            =>      'L',
1324         1213            =>      'L',
1325         1214            =>      'L',
1326         1215            =>      'L',
1327         1216            =>      'L',
1328         1217            =>      'L',
1329         1218            =>      'L',
1330         1219            =>      'L',
1331         1220            =>      'L',
1332         1221            =>      'L',
1333         1222            =>      'L',
1334         1223            =>      'L',
1335         1224            =>      'L',
1336         1225            =>      'L',
1337         1226            =>      'L',
1338         1227            =>      'L',
1339         1228            =>      'L',
1340         1229            =>      'L',
1341         1230            =>      'L',
1342         1231            =>      'L',
1343         1232            =>      'L',
1344         1233            =>      'L',
1345         1234            =>      'L',
1346         1235            =>      'L',
1347         1236            =>      'L',
1348         1237            =>      'L',
1349         1238            =>      'L',
1350         1239            =>      'L',
1351         1240            =>      'L',
1352         1241            =>      'L',
1353         1242            =>      'L',
1354         1243            =>      'L',
1355         1244            =>      'L',
1356         1245            =>      'L',
1357         1246            =>      'L',
1358         1247            =>      'L',
1359         1248            =>      'L',
1360         1249            =>      'L',
1361         1250            =>      'L',
1362         1251            =>      'L',
1363         1252            =>      'L',
1364         1253            =>      'L',
1365         1254            =>      'L',
1366         1255            =>      'L',
1367         1256            =>      'L',
1368         1257            =>      'L',
1369         1258            =>      'L',
1370         1259            =>      'L',
1371         1260            =>      'L',
1372         1261            =>      'L',
1373         1262            =>      'L',
1374         1263            =>      'L',
1375         1264            =>      'L',
1376         1265            =>      'L',
1377         1266            =>      'L',
1378         1267            =>      'L',
1379         1268            =>      'L',
1380         1269            =>      'L',
1381         1270            =>      'L',
1382         1271            =>      'L',
1383         1272            =>      'L',
1384         1273            =>      'L',
1385         1274            =>      'L',
1386         1275            =>      'L',
1387         1276            =>      'L',
1388         1277            =>      'L',
1389         1278            =>      'L',
1390         1279            =>      'L',
1391         1280            =>      'L',
1392         1281            =>      'L',
1393         1282            =>      'L',
1394         1283            =>      'L',
1395         1284            =>      'L',
1396         1285            =>      'L',
1397         1286            =>      'L',
1398         1287            =>      'L',
1399         1288            =>      'L',
1400         1289            =>      'L',
1401         1290            =>      'L',
1402         1291            =>      'L',
1403         1292            =>      'L',
1404         1293            =>      'L',
1405         1294            =>      'L',
1406         1295            =>      'L',
1407         1296            =>      'L',
1408         1297            =>      'L',
1409         1298            =>      'L',
1410         1299            =>      'L',
1411         1329            =>      'L',
1412         1330            =>      'L',
1413         1331            =>      'L',
1414         1332            =>      'L',
1415         1333            =>      'L',
1416         1334            =>      'L',
1417         1335            =>      'L',
1418         1336            =>      'L',
1419         1337            =>      'L',
1420         1338            =>      'L',
1421         1339            =>      'L',
1422         1340            =>      'L',
1423         1341            =>      'L',
1424         1342            =>      'L',
1425         1343            =>      'L',
1426         1344            =>      'L',
1427         1345            =>      'L',
1428         1346            =>      'L',
1429         1347            =>      'L',
1430         1348            =>      'L',
1431         1349            =>      'L',
1432         1350            =>      'L',
1433         1351            =>      'L',
1434         1352            =>      'L',
1435         1353            =>      'L',
1436         1354            =>      'L',
1437         1355            =>      'L',
1438         1356            =>      'L',
1439         1357            =>      'L',
1440         1358            =>      'L',
1441         1359            =>      'L',
1442         1360            =>      'L',
1443         1361            =>      'L',
1444         1362            =>      'L',
1445         1363            =>      'L',
1446         1364            =>      'L',
1447         1365            =>      'L',
1448         1366            =>      'L',
1449         1369            =>      'L',
1450         1370            =>      'L',
1451         1371            =>      'L',
1452         1372            =>      'L',
1453         1373            =>      'L',
1454         1374            =>      'L',
1455         1375            =>      'L',
1456         1377            =>      'L',
1457         1378            =>      'L',
1458         1379            =>      'L',
1459         1380            =>      'L',
1460         1381            =>      'L',
1461         1382            =>      'L',
1462         1383            =>      'L',
1463         1384            =>      'L',
1464         1385            =>      'L',
1465         1386            =>      'L',
1466         1387            =>      'L',
1467         1388            =>      'L',
1468         1389            =>      'L',
1469         1390            =>      'L',
1470         1391            =>      'L',
1471         1392            =>      'L',
1472         1393            =>      'L',
1473         1394            =>      'L',
1474         1395            =>      'L',
1475         1396            =>      'L',
1476         1397            =>      'L',
1477         1398            =>      'L',
1478         1399            =>      'L',
1479         1400            =>      'L',
1480         1401            =>      'L',
1481         1402            =>      'L',
1482         1403            =>      'L',
1483         1404            =>      'L',
1484         1405            =>      'L',
1485         1406            =>      'L',
1486         1407            =>      'L',
1487         1408            =>      'L',
1488         1409            =>      'L',
1489         1410            =>      'L',
1490         1411            =>      'L',
1491         1412            =>      'L',
1492         1413            =>      'L',
1493         1414            =>      'L',
1494         1415            =>      'L',
1495         1417            =>      'L',
1496         1418            =>      'ON',
1497         1425            =>      'NSM',
1498         1426            =>      'NSM',
1499         1427            =>      'NSM',
1500         1428            =>      'NSM',
1501         1429            =>      'NSM',
1502         1430            =>      'NSM',
1503         1431            =>      'NSM',
1504         1432            =>      'NSM',
1505         1433            =>      'NSM',
1506         1434            =>      'NSM',
1507         1435            =>      'NSM',
1508         1436            =>      'NSM',
1509         1437            =>      'NSM',
1510         1438            =>      'NSM',
1511         1439            =>      'NSM',
1512         1440            =>      'NSM',
1513         1441            =>      'NSM',
1514         1442            =>      'NSM',
1515         1443            =>      'NSM',
1516         1444            =>      'NSM',
1517         1445            =>      'NSM',
1518         1446            =>      'NSM',
1519         1447            =>      'NSM',
1520         1448            =>      'NSM',
1521         1449            =>      'NSM',
1522         1450            =>      'NSM',
1523         1451            =>      'NSM',
1524         1452            =>      'NSM',
1525         1453            =>      'NSM',
1526         1454            =>      'NSM',
1527         1455            =>      'NSM',
1528         1456            =>      'NSM',
1529         1457            =>      'NSM',
1530         1458            =>      'NSM',
1531         1459            =>      'NSM',
1532         1460            =>      'NSM',
1533         1461            =>      'NSM',
1534         1462            =>      'NSM',
1535         1463            =>      'NSM',
1536         1464            =>      'NSM',
1537         1465            =>      'NSM',
1538         1466            =>      'NSM',
1539         1467            =>      'NSM',
1540         1468            =>      'NSM',
1541         1469            =>      'NSM',
1542         1470            =>      'R',
1543         1471            =>      'NSM',
1544         1472            =>      'R',
1545         1473            =>      'NSM',
1546         1474            =>      'NSM',
1547         1475            =>      'R',
1548         1476            =>      'NSM',
1549         1477            =>      'NSM',
1550         1478            =>      'R',
1551         1479            =>      'NSM',
1552         1488            =>      'R',
1553         1489            =>      'R',
1554         1490            =>      'R',
1555         1491            =>      'R',
1556         1492            =>      'R',
1557         1493            =>      'R',
1558         1494            =>      'R',
1559         1495            =>      'R',
1560         1496            =>      'R',
1561         1497            =>      'R',
1562         1498            =>      'R',
1563         1499            =>      'R',
1564         1500            =>      'R',
1565         1501            =>      'R',
1566         1502            =>      'R',
1567         1503            =>      'R',
1568         1504            =>      'R',
1569         1505            =>      'R',
1570         1506            =>      'R',
1571         1507            =>      'R',
1572         1508            =>      'R',
1573         1509            =>      'R',
1574         1510            =>      'R',
1575         1511            =>      'R',
1576         1512            =>      'R',
1577         1513            =>      'R',
1578         1514            =>      'R',
1579         1520            =>      'R',
1580         1521            =>      'R',
1581         1522            =>      'R',
1582         1523            =>      'R',
1583         1524            =>      'R',
1584         1536            =>      'AL',
1585         1537            =>      'AL',
1586         1538            =>      'AL',
1587         1539            =>      'AL',
1588         1547            =>      'AL',
1589         1548            =>      'CS',
1590         1549            =>      'AL',
1591         1550            =>      'ON',
1592         1551            =>      'ON',
1593         1552            =>      'NSM',
1594         1553            =>      'NSM',
1595         1554            =>      'NSM',
1596         1555            =>      'NSM',
1597         1556            =>      'NSM',
1598         1557            =>      'NSM',
1599         1563            =>      'AL',
1600         1566            =>      'AL',
1601         1567            =>      'AL',
1602         1569            =>      'AL',
1603         1570            =>      'AL',
1604         1571            =>      'AL',
1605         1572            =>      'AL',
1606         1573            =>      'AL',
1607         1574            =>      'AL',
1608         1575            =>      'AL',
1609         1576            =>      'AL',
1610         1577            =>      'AL',
1611         1578            =>      'AL',
1612         1579            =>      'AL',
1613         1580            =>      'AL',
1614         1581            =>      'AL',
1615         1582            =>      'AL',
1616         1583            =>      'AL',
1617         1584            =>      'AL',
1618         1585            =>      'AL',
1619         1586            =>      'AL',
1620         1587            =>      'AL',
1621         1588            =>      'AL',
1622         1589            =>      'AL',
1623         1590            =>      'AL',
1624         1591            =>      'AL',
1625         1592            =>      'AL',
1626         1593            =>      'AL',
1627         1594            =>      'AL',
1628         1600            =>      'AL',
1629         1601            =>      'AL',
1630         1602            =>      'AL',
1631         1603            =>      'AL',
1632         1604            =>      'AL',
1633         1605            =>      'AL',
1634         1606            =>      'AL',
1635         1607            =>      'AL',
1636         1608            =>      'AL',
1637         1609            =>      'AL',
1638         1610            =>      'AL',
1639         1611            =>      'NSM',
1640         1612            =>      'NSM',
1641         1613            =>      'NSM',
1642         1614            =>      'NSM',
1643         1615            =>      'NSM',
1644         1616            =>      'NSM',
1645         1617            =>      'NSM',
1646         1618            =>      'NSM',
1647         1619            =>      'NSM',
1648         1620            =>      'NSM',
1649         1621            =>      'NSM',
1650         1622            =>      'NSM',
1651         1623            =>      'NSM',
1652         1624            =>      'NSM',
1653         1625            =>      'NSM',
1654         1626            =>      'NSM',
1655         1627            =>      'NSM',
1656         1628            =>      'NSM',
1657         1629            =>      'NSM',
1658         1630            =>      'NSM',
1659         1632            =>      'AN',
1660         1633            =>      'AN',
1661         1634            =>      'AN',
1662         1635            =>      'AN',
1663         1636            =>      'AN',
1664         1637            =>      'AN',
1665         1638            =>      'AN',
1666         1639            =>      'AN',
1667         1640            =>      'AN',
1668         1641            =>      'AN',
1669         1642            =>      'ET',
1670         1643            =>      'AN',
1671         1644            =>      'AN',
1672         1645            =>      'AL',
1673         1646            =>      'AL',
1674         1647            =>      'AL',
1675         1648            =>      'NSM',
1676         1649            =>      'AL',
1677         1650            =>      'AL',
1678         1651            =>      'AL',
1679         1652            =>      'AL',
1680         1653            =>      'AL',
1681         1654            =>      'AL',
1682         1655            =>      'AL',
1683         1656            =>      'AL',
1684         1657            =>      'AL',
1685         1658            =>      'AL',
1686         1659            =>      'AL',
1687         1660            =>      'AL',
1688         1661            =>      'AL',
1689         1662            =>      'AL',
1690         1663            =>      'AL',
1691         1664            =>      'AL',
1692         1665            =>      'AL',
1693         1666            =>      'AL',
1694         1667            =>      'AL',
1695         1668            =>      'AL',
1696         1669            =>      'AL',
1697         1670            =>      'AL',
1698         1671            =>      'AL',
1699         1672            =>      'AL',
1700         1673            =>      'AL',
1701         1674            =>      'AL',
1702         1675            =>      'AL',
1703         1676            =>      'AL',
1704         1677            =>      'AL',
1705         1678            =>      'AL',
1706         1679            =>      'AL',
1707         1680            =>      'AL',
1708         1681            =>      'AL',
1709         1682            =>      'AL',
1710         1683            =>      'AL',
1711         1684            =>      'AL',
1712         1685            =>      'AL',
1713         1686            =>      'AL',
1714         1687            =>      'AL',
1715         1688            =>      'AL',
1716         1689            =>      'AL',
1717         1690            =>      'AL',
1718         1691            =>      'AL',
1719         1692            =>      'AL',
1720         1693            =>      'AL',
1721         1694            =>      'AL',
1722         1695            =>      'AL',
1723         1696            =>      'AL',
1724         1697            =>      'AL',
1725         1698            =>      'AL',
1726         1699            =>      'AL',
1727         1700            =>      'AL',
1728         1701            =>      'AL',
1729         1702            =>      'AL',
1730         1703            =>      'AL',
1731         1704            =>      'AL',
1732         1705            =>      'AL',
1733         1706            =>      'AL',
1734         1707            =>      'AL',
1735         1708            =>      'AL',
1736         1709            =>      'AL',
1737         1710            =>      'AL',
1738         1711            =>      'AL',
1739         1712            =>      'AL',
1740         1713            =>      'AL',
1741         1714            =>      'AL',
1742         1715            =>      'AL',
1743         1716            =>      'AL',
1744         1717            =>      'AL',
1745         1718            =>      'AL',
1746         1719            =>      'AL',
1747         1720            =>      'AL',
1748         1721            =>      'AL',
1749         1722            =>      'AL',
1750         1723            =>      'AL',
1751         1724            =>      'AL',
1752         1725            =>      'AL',
1753         1726            =>      'AL',
1754         1727            =>      'AL',
1755         1728            =>      'AL',
1756         1729            =>      'AL',
1757         1730            =>      'AL',
1758         1731            =>      'AL',
1759         1732            =>      'AL',
1760         1733            =>      'AL',
1761         1734            =>      'AL',
1762         1735            =>      'AL',
1763         1736            =>      'AL',
1764         1737            =>      'AL',
1765         1738            =>      'AL',
1766         1739            =>      'AL',
1767         1740            =>      'AL',
1768         1741            =>      'AL',
1769         1742            =>      'AL',
1770         1743            =>      'AL',
1771         1744            =>      'AL',
1772         1745            =>      'AL',
1773         1746            =>      'AL',
1774         1747            =>      'AL',
1775         1748            =>      'AL',
1776         1749            =>      'AL',
1777         1750            =>      'NSM',
1778         1751            =>      'NSM',
1779         1752            =>      'NSM',
1780         1753            =>      'NSM',
1781         1754            =>      'NSM',
1782         1755            =>      'NSM',
1783         1756            =>      'NSM',
1784         1757            =>      'AL',
1785         1758            =>      'NSM',
1786         1759            =>      'NSM',
1787         1760            =>      'NSM',
1788         1761            =>      'NSM',
1789         1762            =>      'NSM',
1790         1763            =>      'NSM',
1791         1764            =>      'NSM',
1792         1765            =>      'AL',
1793         1766            =>      'AL',
1794         1767            =>      'NSM',
1795         1768            =>      'NSM',
1796         1769            =>      'ON',
1797         1770            =>      'NSM',
1798         1771            =>      'NSM',
1799         1772            =>      'NSM',
1800         1773            =>      'NSM',
1801         1774            =>      'AL',
1802         1775            =>      'AL',
1803         1776            =>      'EN',
1804         1777            =>      'EN',
1805         1778            =>      'EN',
1806         1779            =>      'EN',
1807         1780            =>      'EN',
1808         1781            =>      'EN',
1809         1782            =>      'EN',
1810         1783            =>      'EN',
1811         1784            =>      'EN',
1812         1785            =>      'EN',
1813         1786            =>      'AL',
1814         1787            =>      'AL',
1815         1788            =>      'AL',
1816         1789            =>      'AL',
1817         1790            =>      'AL',
1818         1791            =>      'AL',
1819         1792            =>      'AL',
1820         1793            =>      'AL',
1821         1794            =>      'AL',
1822         1795            =>      'AL',
1823         1796            =>      'AL',
1824         1797            =>      'AL',
1825         1798            =>      'AL',
1826         1799            =>      'AL',
1827         1800            =>      'AL',
1828         1801            =>      'AL',
1829         1802            =>      'AL',
1830         1803            =>      'AL',
1831         1804            =>      'AL',
1832         1805            =>      'AL',
1833         1807            =>      'BN',
1834         1808            =>      'AL',
1835         1809            =>      'NSM',
1836         1810            =>      'AL',
1837         1811            =>      'AL',
1838         1812            =>      'AL',
1839         1813            =>      'AL',
1840         1814            =>      'AL',
1841         1815            =>      'AL',
1842         1816            =>      'AL',
1843         1817            =>      'AL',
1844         1818            =>      'AL',
1845         1819            =>      'AL',
1846         1820            =>      'AL',
1847         1821            =>      'AL',
1848         1822            =>      'AL',
1849         1823            =>      'AL',
1850         1824            =>      'AL',
1851         1825            =>      'AL',
1852         1826            =>      'AL',
1853         1827            =>      'AL',
1854         1828            =>      'AL',
1855         1829            =>      'AL',
1856         1830            =>      'AL',
1857         1831            =>      'AL',
1858         1832            =>      'AL',
1859         1833            =>      'AL',
1860         1834            =>      'AL',
1861         1835            =>      'AL',
1862         1836            =>      'AL',
1863         1837            =>      'AL',
1864         1838            =>      'AL',
1865         1839            =>      'AL',
1866         1840            =>      'NSM',
1867         1841            =>      'NSM',
1868         1842            =>      'NSM',
1869         1843            =>      'NSM',
1870         1844            =>      'NSM',
1871         1845            =>      'NSM',
1872         1846            =>      'NSM',
1873         1847            =>      'NSM',
1874         1848            =>      'NSM',
1875         1849            =>      'NSM',
1876         1850            =>      'NSM',
1877         1851            =>      'NSM',
1878         1852            =>      'NSM',
1879         1853            =>      'NSM',
1880         1854            =>      'NSM',
1881         1855            =>      'NSM',
1882         1856            =>      'NSM',
1883         1857            =>      'NSM',
1884         1858            =>      'NSM',
1885         1859            =>      'NSM',
1886         1860            =>      'NSM',
1887         1861            =>      'NSM',
1888         1862            =>      'NSM',
1889         1863            =>      'NSM',
1890         1864            =>      'NSM',
1891         1865            =>      'NSM',
1892         1866            =>      'NSM',
1893         1869            =>      'AL',
1894         1870            =>      'AL',
1895         1871            =>      'AL',
1896         1872            =>      'AL',
1897         1873            =>      'AL',
1898         1874            =>      'AL',
1899         1875            =>      'AL',
1900         1876            =>      'AL',
1901         1877            =>      'AL',
1902         1878            =>      'AL',
1903         1879            =>      'AL',
1904         1880            =>      'AL',
1905         1881            =>      'AL',
1906         1882            =>      'AL',
1907         1883            =>      'AL',
1908         1884            =>      'AL',
1909         1885            =>      'AL',
1910         1886            =>      'AL',
1911         1887            =>      'AL',
1912         1888            =>      'AL',
1913         1889            =>      'AL',
1914         1890            =>      'AL',
1915         1891            =>      'AL',
1916         1892            =>      'AL',
1917         1893            =>      'AL',
1918         1894            =>      'AL',
1919         1895            =>      'AL',
1920         1896            =>      'AL',
1921         1897            =>      'AL',
1922         1898            =>      'AL',
1923         1899            =>      'AL',
1924         1900            =>      'AL',
1925         1901            =>      'AL',
1926         1920            =>      'AL',
1927         1921            =>      'AL',
1928         1922            =>      'AL',
1929         1923            =>      'AL',
1930         1924            =>      'AL',
1931         1925            =>      'AL',
1932         1926            =>      'AL',
1933         1927            =>      'AL',
1934         1928            =>      'AL',
1935         1929            =>      'AL',
1936         1930            =>      'AL',
1937         1931            =>      'AL',
1938         1932            =>      'AL',
1939         1933            =>      'AL',
1940         1934            =>      'AL',
1941         1935            =>      'AL',
1942         1936            =>      'AL',
1943         1937            =>      'AL',
1944         1938            =>      'AL',
1945         1939            =>      'AL',
1946         1940            =>      'AL',
1947         1941            =>      'AL',
1948         1942            =>      'AL',
1949         1943            =>      'AL',
1950         1944            =>      'AL',
1951         1945            =>      'AL',
1952         1946            =>      'AL',
1953         1947            =>      'AL',
1954         1948            =>      'AL',
1955         1949            =>      'AL',
1956         1950            =>      'AL',
1957         1951            =>      'AL',
1958         1952            =>      'AL',
1959         1953            =>      'AL',
1960         1954            =>      'AL',
1961         1955            =>      'AL',
1962         1956            =>      'AL',
1963         1957            =>      'AL',
1964         1958            =>      'NSM',
1965         1959            =>      'NSM',
1966         1960            =>      'NSM',
1967         1961            =>      'NSM',
1968         1962            =>      'NSM',
1969         1963            =>      'NSM',
1970         1964            =>      'NSM',
1971         1965            =>      'NSM',
1972         1966            =>      'NSM',
1973         1967            =>      'NSM',
1974         1968            =>      'NSM',
1975         1969            =>      'AL',
1976         1984            =>      'R',
1977         1985            =>      'R',
1978         1986            =>      'R',
1979         1987            =>      'R',
1980         1988            =>      'R',
1981         1989            =>      'R',
1982         1990            =>      'R',
1983         1991            =>      'R',
1984         1992            =>      'R',
1985         1993            =>      'R',
1986         1994            =>      'R',
1987         1995            =>      'R',
1988         1996            =>      'R',
1989         1997            =>      'R',
1990         1998            =>      'R',
1991         1999            =>      'R',
1992         2000            =>      'R',
1993         2001            =>      'R',
1994         2002            =>      'R',
1995         2003            =>      'R',
1996         2004            =>      'R',
1997         2005            =>      'R',
1998         2006            =>      'R',
1999         2007            =>      'R',
2000         2008            =>      'R',
2001         2009            =>      'R',
2002         2010            =>      'R',
2003         2011            =>      'R',
2004         2012            =>      'R',
2005         2013            =>      'R',
2006         2014            =>      'R',
2007         2015            =>      'R',
2008         2016            =>      'R',
2009         2017            =>      'R',
2010         2018            =>      'R',
2011         2019            =>      'R',
2012         2020            =>      'R',
2013         2021            =>      'R',
2014         2022            =>      'R',
2015         2023            =>      'R',
2016         2024            =>      'R',
2017         2025            =>      'R',
2018         2026            =>      'R',
2019         2036            =>      'R',
2020         2037            =>      'R',
2021         2042            =>      'R',
2022         8207            =>      'R',
2023         65136           =>      'AL',
2024         65137           =>      'AL',
2025         65138           =>      'AL',
2026         65139           =>      'AL',
2027         65140           =>      'AL',
2028         65142           =>      'AL',
2029         65143           =>      'AL',
2030         65144           =>      'AL',
2031         65145           =>      'AL',
2032         65146           =>      'AL',
2033         65147           =>      'AL',
2034         65148           =>      'AL',
2035         65149           =>      'AL',
2036         65150           =>      'AL',
2037         65151           =>      'AL',
2038         65152           =>      'AL',
2039         65153           =>      'AL',
2040         65154           =>      'AL',
2041         65155           =>      'AL',
2042         65156           =>      'AL',
2043         65157           =>      'AL',
2044         65158           =>      'AL',
2045         65159           =>      'AL',
2046         65160           =>      'AL',
2047         65161           =>      'AL',
2048         65162           =>      'AL',
2049         65163           =>      'AL',
2050         65164           =>      'AL',
2051         65165           =>      'AL',
2052         65166           =>      'AL',
2053         65167           =>      'AL',
2054         65168           =>      'AL',
2055         65169           =>      'AL',
2056         65170           =>      'AL',
2057         65171           =>      'AL',
2058         65172           =>      'AL',
2059         65173           =>      'AL',
2060         65174           =>      'AL',
2061         65175           =>      'AL',
2062         65176           =>      'AL',
2063         65177           =>      'AL',
2064         65178           =>      'AL',
2065         65179           =>      'AL',
2066         65180           =>      'AL',
2067         65181           =>      'AL',
2068         65182           =>      'AL',
2069         65183           =>      'AL',
2070         65184           =>      'AL',
2071         65185           =>      'AL',
2072         65186           =>      'AL',
2073         65187           =>      'AL',
2074         65188           =>      'AL',
2075         65189           =>      'AL',
2076         65190           =>      'AL',
2077         65191           =>      'AL',
2078         65192           =>      'AL',
2079         65193           =>      'AL',
2080         65194           =>      'AL',
2081         65195           =>      'AL',
2082         65196           =>      'AL',
2083         65197           =>      'AL',
2084         65198           =>      'AL',
2085         65199           =>      'AL',
2086         65200           =>      'AL',
2087         65201           =>      'AL',
2088         65202           =>      'AL',
2089         65203           =>      'AL',
2090         65204           =>      'AL',
2091         65205           =>      'AL',
2092         65206           =>      'AL',
2093         65207           =>      'AL',
2094         65208           =>      'AL',
2095         65209           =>      'AL',
2096         65210           =>      'AL',
2097         65211           =>      'AL',
2098         65212           =>      'AL',
2099         65213           =>      'AL',
2100         65214           =>      'AL',
2101         65215           =>      'AL',
2102         65216           =>      'AL',
2103         65217           =>      'AL',
2104         65218           =>      'AL',
2105         65219           =>      'AL',
2106         65220           =>      'AL',
2107         65221           =>      'AL',
2108         65222           =>      'AL',
2109         65223           =>      'AL',
2110         65224           =>      'AL',
2111         65225           =>      'AL',
2112         65226           =>      'AL',
2113         65227           =>      'AL',
2114         65228           =>      'AL',
2115         65229           =>      'AL',
2116         65230           =>      'AL',
2117         65231           =>      'AL',
2118         65232           =>      'AL',
2119         65233           =>      'AL',
2120         65234           =>      'AL',
2121         65235           =>      'AL',
2122         65236           =>      'AL',
2123         65237           =>      'AL',
2124         65238           =>      'AL',
2125         65239           =>      'AL',
2126         65240           =>      'AL',
2127         65241           =>      'AL',
2128         65242           =>      'AL',
2129         65243           =>      'AL',
2130         65244           =>      'AL',
2131         65245           =>      'AL',
2132         65246           =>      'AL',
2133         65247           =>      'AL',
2134         65248           =>      'AL',
2135         65249           =>      'AL',
2136         65250           =>      'AL',
2137         65251           =>      'AL',
2138         65252           =>      'AL',
2139         65253           =>      'AL',
2140         65254           =>      'AL',
2141         65255           =>      'AL',
2142         65256           =>      'AL',
2143         65257           =>      'AL',
2144         65258           =>      'AL',
2145         65259           =>      'AL',
2146         65260           =>      'AL',
2147         65261           =>      'AL',
2148         65262           =>      'AL',
2149         65263           =>      'AL',
2150         65264           =>      'AL',
2151         65265           =>      'AL',
2152         65266           =>      'AL',
2153         65267           =>      'AL',
2154         65268           =>      'AL',
2155         65269           =>      'AL',
2156         65270           =>      'AL',
2157         65271           =>      'AL',
2158         65272           =>      'AL',
2159         65273           =>      'AL',
2160         65274           =>      'AL',
2161         65275           =>      'AL',
2162         65276           =>      'AL',
2163         67584           =>      'R',
2164         67585           =>      'R',
2165         67586           =>      'R',
2166         67587           =>      'R',
2167         67588           =>      'R',
2168         67589           =>      'R',
2169         67592           =>      'R',
2170         67594           =>      'R',
2171         67595           =>      'R',
2172         67596           =>      'R',
2173         67597           =>      'R',
2174         67598           =>      'R',
2175         67599           =>      'R',
2176         67600           =>      'R',
2177         67601           =>      'R',
2178         67602           =>      'R',
2179         67603           =>      'R',
2180         67604           =>      'R',
2181         67605           =>      'R',
2182         67606           =>      'R',
2183         67607           =>      'R',
2184         67608           =>      'R',
2185         67609           =>      'R',
2186         67610           =>      'R',
2187         67611           =>      'R',
2188         67612           =>      'R',
2189         67613           =>      'R',
2190         67614           =>      'R',
2191         67615           =>      'R',
2192         67616           =>      'R',
2193         67617           =>      'R',
2194         67618           =>      'R',
2195         67619           =>      'R',
2196         67620           =>      'R',
2197         67621           =>      'R',
2198         67622           =>      'R',
2199         67623           =>      'R',
2200         67624           =>      'R',
2201         67625           =>      'R',
2202         67626           =>      'R',
2203         67627           =>      'R',
2204         67628           =>      'R',
2205         67629           =>      'R',
2206         67630           =>      'R',
2207         67631           =>      'R',
2208         67632           =>      'R',
2209         67633           =>      'R',
2210         67634           =>      'R',
2211         67635           =>      'R',
2212         67636           =>      'R',
2213         67637           =>      'R',
2214         67639           =>      'R',
2215         67640           =>      'R',
2216         67644           =>      'R',
2217         67647           =>      'R',
2218         67840           =>      'R',
2219         67841           =>      'R',
2220         67842           =>      'R',
2221         67843           =>      'R',
2222         67844           =>      'R',
2223         67845           =>      'R',
2224         67846           =>      'R',
2225         67847           =>      'R',
2226         67848           =>      'R',
2227         67849           =>      'R',
2228         67850           =>      'R',
2229         67851           =>      'R',
2230         67852           =>      'R',
2231         67853           =>      'R',
2232         67854           =>      'R',
2233         67855           =>      'R',
2234         67856           =>      'R',
2235         67857           =>      'R',
2236         67858           =>      'R',
2237         67859           =>      'R',
2238         67860           =>      'R',
2239         67861           =>      'R',
2240         67862           =>      'R',
2241         67863           =>      'R',
2242         67864           =>      'R',
2243         67865           =>      'R',
2244         68096           =>      'R',
2245         68112           =>      'R',
2246         68113           =>      'R',
2247         68114           =>      'R',
2248         68115           =>      'R',
2249         68117           =>      'R',
2250         68118           =>      'R',
2251         68119           =>      'R',
2252         68121           =>      'R',
2253         68122           =>      'R',
2254         68123           =>      'R',
2255         68124           =>      'R',
2256         68125           =>      'R',
2257         68126           =>      'R',
2258         68127           =>      'R',
2259         68128           =>      'R',
2260         68129           =>      'R',
2261         68130           =>      'R',
2262         68131           =>      'R',
2263         68132           =>      'R',
2264         68133           =>      'R',
2265         68134           =>      'R',
2266         68135           =>      'R',
2267         68136           =>      'R',
2268         68137           =>      'R',
2269         68138           =>      'R',
2270         68139           =>      'R',
2271         68140           =>      'R',
2272         68141           =>      'R',
2273         68142           =>      'R',
2274         68143           =>      'R',
2275         68144           =>      'R',
2276         68145           =>      'R',
2277         68146           =>      'R',
2278         68147           =>      'R',
2279         68160           =>      'R',
2280         68161           =>      'R',
2281         68162           =>      'R',
2282         68163           =>      'R',
2283         68164           =>      'R',
2284         68165           =>      'R',
2285         68166           =>      'R',
2286         68167           =>      'R',
2287         68176           =>      'R',
2288         68177           =>      'R',
2289         68178           =>      'R',
2290         68179           =>      'R',
2291         68180           =>      'R',
2292         68181           =>      'R',
2293         68182           =>      'R',
2294         68183           =>      'R',
2295         68184           =>      'R'
2296 );
2297
2298
2299 /**
2300  * Mirror unicode characters.
2301  * For information on bidi mirroring, see UAX #9: Bidirectional Algorithm,
2302  * at http://www.unicode.org/unicode/reports/tr9/
2303  */
2304 $unicode_mirror = array(
2305 0x0028 => 0x0029,
2306 0x0029 => 0x0028,
2307 0x003C => 0x003E,
2308 0x003E => 0x003C,
2309 0x005B => 0x005D,
2310 0x005D => 0x005B,
2311 0x007B => 0x007D,
2312 0x007D => 0x007B,
2313 0x00AB => 0x00BB,
2314 0x00BB => 0x00AB,
2315 0x0F3A => 0x0F3B,
2316 0x0F3B => 0x0F3A,
2317 0x0F3C => 0x0F3D,
2318 0x0F3D => 0x0F3C,
2319 0x169B => 0x169C,
2320 0x169C => 0x169B,
2321 0x2018 => 0x2019,
2322 0x2019 => 0x2018,
2323 0x201C => 0x201D,
2324 0x201D => 0x201C,
2325 0x2039 => 0x203A,
2326 0x203A => 0x2039,
2327 0x2045 => 0x2046,
2328 0x2046 => 0x2045,
2329 0x207D => 0x207E,
2330 0x207E => 0x207D,
2331 0x208D => 0x208E,
2332 0x208E => 0x208D,
2333 0x2208 => 0x220B,
2334 0x2209 => 0x220C,
2335 0x220A => 0x220D,
2336 0x220B => 0x2208,
2337 0x220C => 0x2209,
2338 0x220D => 0x220A,
2339 0x2215 => 0x29F5,
2340 0x223C => 0x223D,
2341 0x223D => 0x223C,
2342 0x2243 => 0x22CD,
2343 0x2252 => 0x2253,
2344 0x2253 => 0x2252,
2345 0x2254 => 0x2255,
2346 0x2255 => 0x2254,
2347 0x2264 => 0x2265,
2348 0x2265 => 0x2264,
2349 0x2266 => 0x2267,
2350 0x2267 => 0x2266,
2351 0x2268 => 0x2269,
2352 0x2269 => 0x2268,
2353 0x226A => 0x226B,
2354 0x226B => 0x226A,
2355 0x226E => 0x226F,
2356 0x226F => 0x226E,
2357 0x2270 => 0x2271,
2358 0x2271 => 0x2270,
2359 0x2272 => 0x2273,
2360 0x2273 => 0x2272,
2361 0x2274 => 0x2275,
2362 0x2275 => 0x2274,
2363 0x2276 => 0x2277,
2364 0x2277 => 0x2276,
2365 0x2278 => 0x2279,
2366 0x2279 => 0x2278,
2367 0x227A => 0x227B,
2368 0x227B => 0x227A,
2369 0x227C => 0x227D,
2370 0x227D => 0x227C,
2371 0x227E => 0x227F,
2372 0x227F => 0x227E,
2373 0x2280 => 0x2281,
2374 0x2281 => 0x2280,
2375 0x2282 => 0x2283,
2376 0x2283 => 0x2282,
2377 0x2284 => 0x2285,
2378 0x2285 => 0x2284,
2379 0x2286 => 0x2287,
2380 0x2287 => 0x2286,
2381 0x2288 => 0x2289,
2382 0x2289 => 0x2288,
2383 0x228A => 0x228B,
2384 0x228B => 0x228A,
2385 0x228F => 0x2290,
2386 0x2290 => 0x228F,
2387 0x2291 => 0x2292,
2388 0x2292 => 0x2291,
2389 0x2298 => 0x29B8,
2390 0x22A2 => 0x22A3,
2391 0x22A3 => 0x22A2,
2392 0x22A6 => 0x2ADE,
2393 0x22A8 => 0x2AE4,
2394 0x22A9 => 0x2AE3,
2395 0x22AB => 0x2AE5,
2396 0x22B0 => 0x22B1,
2397 0x22B1 => 0x22B0,
2398 0x22B2 => 0x22B3,
2399 0x22B3 => 0x22B2,
2400 0x22B4 => 0x22B5,
2401 0x22B5 => 0x22B4,
2402 0x22B6 => 0x22B7,
2403 0x22B7 => 0x22B6,
2404 0x22C9 => 0x22CA,
2405 0x22CA => 0x22C9,
2406 0x22CB => 0x22CC,
2407 0x22CC => 0x22CB,
2408 0x22CD => 0x2243,
2409 0x22D0 => 0x22D1,
2410 0x22D1 => 0x22D0,
2411 0x22D6 => 0x22D7,
2412 0x22D7 => 0x22D6,
2413 0x22D8 => 0x22D9,
2414 0x22D9 => 0x22D8,
2415 0x22DA => 0x22DB,
2416 0x22DB => 0x22DA,
2417 0x22DC => 0x22DD,
2418 0x22DD => 0x22DC,
2419 0x22DE => 0x22DF,
2420 0x22DF => 0x22DE,
2421 0x22E0 => 0x22E1,
2422 0x22E1 => 0x22E0,
2423 0x22E2 => 0x22E3,
2424 0x22E3 => 0x22E2,
2425 0x22E4 => 0x22E5,
2426 0x22E5 => 0x22E4,
2427 0x22E6 => 0x22E7,
2428 0x22E7 => 0x22E6,
2429 0x22E8 => 0x22E9,
2430 0x22E9 => 0x22E8,
2431 0x22EA => 0x22EB,
2432 0x22EB => 0x22EA,
2433 0x22EC => 0x22ED,
2434 0x22ED => 0x22EC,
2435 0x22F0 => 0x22F1,
2436 0x22F1 => 0x22F0,
2437 0x22F2 => 0x22FA,
2438 0x22F3 => 0x22FB,
2439 0x22F4 => 0x22FC,
2440 0x22F6 => 0x22FD,
2441 0x22F7 => 0x22FE,
2442 0x22FA => 0x22F2,
2443 0x22FB => 0x22F3,
2444 0x22FC => 0x22F4,
2445 0x22FD => 0x22F6,
2446 0x22FE => 0x22F7,
2447 0x2308 => 0x2309,
2448 0x2309 => 0x2308,
2449 0x230A => 0x230B,
2450 0x230B => 0x230A,
2451 0x2329 => 0x232A,
2452 0x232A => 0x2329,
2453 0x2768 => 0x2769,
2454 0x2769 => 0x2768,
2455 0x276A => 0x276B,
2456 0x276B => 0x276A,
2457 0x276C => 0x276D,
2458 0x276D => 0x276C,
2459 0x276E => 0x276F,
2460 0x276F => 0x276E,
2461 0x2770 => 0x2771,
2462 0x2771 => 0x2770,
2463 0x2772 => 0x2773,
2464 0x2773 => 0x2772,
2465 0x2774 => 0x2775,
2466 0x2775 => 0x2774,
2467 0x27C3 => 0x27C4,
2468 0x27C4 => 0x27C3,
2469 0x27C5 => 0x27C6,
2470 0x27C6 => 0x27C5,
2471 0x27D5 => 0x27D6,
2472 0x27D6 => 0x27D5,
2473 0x27DD => 0x27DE,
2474 0x27DE => 0x27DD,
2475 0x27E2 => 0x27E3,
2476 0x27E3 => 0x27E2,
2477 0x27E4 => 0x27E5,
2478 0x27E5 => 0x27E4,
2479 0x27E6 => 0x27E7,
2480 0x27E7 => 0x27E6,
2481 0x27E8 => 0x27E9,
2482 0x27E9 => 0x27E8,
2483 0x27EA => 0x27EB,
2484 0x27EB => 0x27EA,
2485 0x2983 => 0x2984,
2486 0x2984 => 0x2983,
2487 0x2985 => 0x2986,
2488 0x2986 => 0x2985,
2489 0x2987 => 0x2988,
2490 0x2988 => 0x2987,
2491 0x2989 => 0x298A,
2492 0x298A => 0x2989,
2493 0x298B => 0x298C,
2494 0x298C => 0x298B,
2495 0x298D => 0x2990,
2496 0x298E => 0x298F,
2497 0x298F => 0x298E,
2498 0x2990 => 0x298D,
2499 0x2991 => 0x2992,
2500 0x2992 => 0x2991,
2501 0x2993 => 0x2994,
2502 0x2994 => 0x2993,
2503 0x2995 => 0x2996,
2504 0x2996 => 0x2995,
2505 0x2997 => 0x2998,
2506 0x2998 => 0x2997,
2507 0x29B8 => 0x2298,
2508 0x29C0 => 0x29C1,
2509 0x29C1 => 0x29C0,
2510 0x29C4 => 0x29C5,
2511 0x29C5 => 0x29C4,
2512 0x29CF => 0x29D0,
2513 0x29D0 => 0x29CF,
2514 0x29D1 => 0x29D2,
2515 0x29D2 => 0x29D1,
2516 0x29D4 => 0x29D5,
2517 0x29D5 => 0x29D4,
2518 0x29D8 => 0x29D9,
2519 0x29D9 => 0x29D8,
2520 0x29DA => 0x29DB,
2521 0x29DB => 0x29DA,
2522 0x29F5 => 0x2215,
2523 0x29F8 => 0x29F9,
2524 0x29F9 => 0x29F8,
2525 0x29FC => 0x29FD,
2526 0x29FD => 0x29FC,
2527 0x2A2B => 0x2A2C,
2528 0x2A2C => 0x2A2B,
2529 0x2A2D => 0x2A2E,
2530 0x2A2E => 0x2A2D,
2531 0x2A34 => 0x2A35,
2532 0x2A35 => 0x2A34,
2533 0x2A3C => 0x2A3D,
2534 0x2A3D => 0x2A3C,
2535 0x2A64 => 0x2A65,
2536 0x2A65 => 0x2A64,
2537 0x2A79 => 0x2A7A,
2538 0x2A7A => 0x2A79,
2539 0x2A7D => 0x2A7E,
2540 0x2A7E => 0x2A7D,
2541 0x2A7F => 0x2A80,
2542 0x2A80 => 0x2A7F,
2543 0x2A81 => 0x2A82,
2544 0x2A82 => 0x2A81,
2545 0x2A83 => 0x2A84,
2546 0x2A84 => 0x2A83,
2547 0x2A8B => 0x2A8C,
2548 0x2A8C => 0x2A8B,
2549 0x2A91 => 0x2A92,
2550 0x2A92 => 0x2A91,
2551 0x2A93 => 0x2A94,
2552 0x2A94 => 0x2A93,
2553 0x2A95 => 0x2A96,
2554 0x2A96 => 0x2A95,
2555 0x2A97 => 0x2A98,
2556 0x2A98 => 0x2A97,
2557 0x2A99 => 0x2A9A,
2558 0x2A9A => 0x2A99,
2559 0x2A9B => 0x2A9C,
2560 0x2A9C => 0x2A9B,
2561 0x2AA1 => 0x2AA2,
2562 0x2AA2 => 0x2AA1,
2563 0x2AA6 => 0x2AA7,
2564 0x2AA7 => 0x2AA6,
2565 0x2AA8 => 0x2AA9,
2566 0x2AA9 => 0x2AA8,
2567 0x2AAA => 0x2AAB,
2568 0x2AAB => 0x2AAA,
2569 0x2AAC => 0x2AAD,
2570 0x2AAD => 0x2AAC,
2571 0x2AAF => 0x2AB0,
2572 0x2AB0 => 0x2AAF,
2573 0x2AB3 => 0x2AB4,
2574 0x2AB4 => 0x2AB3,
2575 0x2ABB => 0x2ABC,
2576 0x2ABC => 0x2ABB,
2577 0x2ABD => 0x2ABE,
2578 0x2ABE => 0x2ABD,
2579 0x2ABF => 0x2AC0,
2580 0x2AC0 => 0x2ABF,
2581 0x2AC1 => 0x2AC2,
2582 0x2AC2 => 0x2AC1,
2583 0x2AC3 => 0x2AC4,
2584 0x2AC4 => 0x2AC3,
2585 0x2AC5 => 0x2AC6,
2586 0x2AC6 => 0x2AC5,
2587 0x2ACD => 0x2ACE,
2588 0x2ACE => 0x2ACD,
2589 0x2ACF => 0x2AD0,
2590 0x2AD0 => 0x2ACF,
2591 0x2AD1 => 0x2AD2,
2592 0x2AD2 => 0x2AD1,
2593 0x2AD3 => 0x2AD4,
2594 0x2AD4 => 0x2AD3,
2595 0x2AD5 => 0x2AD6,
2596 0x2AD6 => 0x2AD5,
2597 0x2ADE => 0x22A6,
2598 0x2AE3 => 0x22A9,
2599 0x2AE4 => 0x22A8,
2600 0x2AE5 => 0x22AB,
2601 0x2AEC => 0x2AED,
2602 0x2AED => 0x2AEC,
2603 0x2AF7 => 0x2AF8,
2604 0x2AF8 => 0x2AF7,
2605 0x2AF9 => 0x2AFA,
2606 0x2AFA => 0x2AF9,
2607 0x2E02 => 0x2E03,
2608 0x2E03 => 0x2E02,
2609 0x2E04 => 0x2E05,
2610 0x2E05 => 0x2E04,
2611 0x2E09 => 0x2E0A,
2612 0x2E0A => 0x2E09,
2613 0x2E0C => 0x2E0D,
2614 0x2E0D => 0x2E0C,
2615 0x2E1C => 0x2E1D,
2616 0x2E1D => 0x2E1C,
2617 0x3008 => 0x3009,
2618 0x3009 => 0x3008,
2619 0x300A => 0x300B,
2620 0x300B => 0x300A,
2621 0x300C => 0x300D,
2622 0x300D => 0x300C,
2623 0x300E => 0x300F,
2624 0x300F => 0x300E,
2625 0x3010 => 0x3011,
2626 0x3011 => 0x3010,
2627 0x3014 => 0x3015,
2628 0x3015 => 0x3014,
2629 0x3016 => 0x3017,
2630 0x3017 => 0x3016,
2631 0x3018 => 0x3019,
2632 0x3019 => 0x3018,
2633 0x301A => 0x301B,
2634 0x301B => 0x301A,
2635 0x301D => 0x301E,
2636 0x301E => 0x301D,
2637 0xFE59 => 0xFE5A,
2638 0xFE5A => 0xFE59,
2639 0xFE5B => 0xFE5C,
2640 0xFE5C => 0xFE5B,
2641 0xFE5D => 0xFE5E,
2642 0xFE5E => 0xFE5D,
2643 0xFE64 => 0xFE65,
2644 0xFE65 => 0xFE64,
2645 0xFF08 => 0xFF09,
2646 0xFF09 => 0xFF08,
2647 0xFF1C => 0xFF1E,
2648 0xFF1E => 0xFF1C,
2649 0xFF3B => 0xFF3D,
2650 0xFF3D => 0xFF3B,
2651 0xFF5B => 0xFF5D,
2652 0xFF5D => 0xFF5B,
2653 0xFF5F => 0xFF60,
2654 0xFF60 => 0xFF5F,
2655 0xFF62 => 0xFF63,
2656 0xFF63 => 0xFF62);
2657
2658 /**
2659  * Arabic shape subtitutions
2660  * char code => isolated, final, initial, medial
2661  */
2662 $unicode_arlet = array(
2663         1569    =>      array(65152),
2664         1570    =>      array(65153, 65154, 65153, 65154),
2665         1571    =>      array(65155, 65156, 65155, 65156),
2666         1572    =>      array(65157, 65158),
2667         1573    =>      array(65159, 65160, 65159, 65160),
2668         1574    =>      array(65161, 65162, 65163, 65164),
2669         1575    =>      array(65165, 65166, 65165, 65166),
2670         1576    =>      array(65167, 65168, 65169, 65170),
2671         1577    =>      array(65171, 65172),
2672         1578    =>      array(65173, 65174, 65175, 65176),
2673         1579    =>      array(65177, 65178, 65179, 65180),
2674         1580    =>      array(65181, 65182, 65183, 65184),
2675         1581    =>      array(65185, 65186, 65187, 65188),
2676         1582    =>      array(65189, 65190, 65191, 65192),
2677         1583    =>      array(65193, 65194, 65193, 65194),
2678         1584    =>      array(65195, 65196, 65195, 65196),
2679         1585    =>      array(65197, 65198, 65197, 65198),
2680         1586    =>      array(65199, 65200, 65199, 65200),
2681         1587    =>      array(65201, 65202, 65203, 65204),
2682         1588    =>      array(65205, 65206, 65207, 65208),
2683         1589    =>      array(65209, 65210, 65211, 65212),
2684         1590    =>      array(65213, 65214, 65215, 65216),
2685         1591    =>      array(65217, 65218, 65219, 65220),
2686         1592    =>      array(65221, 65222, 65223, 65224),
2687         1593    =>      array(65225, 65226, 65227, 65228),
2688         1594    =>      array(65229, 65230, 65231, 65232),
2689         1601    =>      array(65233, 65234, 65235, 65236),
2690         1602    =>      array(65237, 65238, 65239, 65240),
2691         1603    =>      array(65241, 65242, 65243, 65244),
2692         1604    =>      array(65245, 65246, 65247, 65248),
2693         1605    =>      array(65249, 65250, 65251, 65252),
2694         1606    =>      array(65253, 65254, 65255, 65256),
2695         1607    =>      array(65257, 65258, 65259, 65260),
2696         1608    =>      array(65261, 65262, 65261, 65262),
2697         1609    =>      array(65263, 65264, 64488, 64489),
2698         1610    =>      array(65265, 65266, 65267, 65268),
2699         1649    =>      array(64336, 64337),
2700         1655    =>      array(64477),
2701         1657    =>      array(64358, 64359, 64360, 64361),
2702         1658    =>      array(64350, 64351, 64352, 64353),
2703         1659    =>      array(64338, 64339, 64340, 64341),
2704         1662    =>      array(64342, 64343, 64344, 64345),
2705         1663    =>      array(64354, 64355, 64356, 64357),
2706         1664    =>      array(64346, 64347, 64348, 64349),
2707         1667    =>      array(64374, 64375, 64376, 64377),
2708         1668    =>      array(64370, 64371, 64372, 64373),
2709         1670    =>      array(64378, 64379, 64380, 64381),
2710         1671    =>      array(64382, 64383, 64384, 64385),
2711         1672    =>      array(64392, 64393),
2712         1676    =>      array(64388, 64389),
2713         1677    =>      array(64386, 64387),
2714         1678    =>      array(64390, 64391),
2715         1681    =>      array(64396, 64397),
2716         1688    =>      array(64394, 64395, 64394, 64395),
2717         1700    =>      array(64362, 64363, 64364, 64365),
2718         1702    =>      array(64366, 64367, 64368, 64369),
2719         1705    =>      array(64398, 64399, 64400, 64401),
2720         1709    =>      array(64467, 64468, 64469, 64470),
2721         1711    =>      array(64402, 64403, 64404, 64405),
2722         1713    =>      array(64410, 64411, 64412, 64413),
2723         1715    =>      array(64406, 64407, 64408, 64409),
2724         1722    =>      array(64414, 64415),
2725         1723    =>      array(64416, 64417, 64418, 64419),
2726         1726    =>      array(64426, 64427, 64428, 64429),
2727         1728    =>      array(64420, 64421),
2728         1729    =>      array(64422, 64423, 64424, 64425),
2729         1733    =>      array(64480, 64481),
2730         1734    =>      array(64473, 64474),
2731         1735    =>      array(64471, 64472),
2732         1736    =>      array(64475, 64476),
2733         1737    =>      array(64482, 64483),
2734         1739    =>      array(64478, 64479),
2735         1740    =>      array(64508, 64509, 64510, 64511),
2736         1744    =>      array(64484, 64485, 64486, 64487),
2737         1746    =>      array(64430, 64431),
2738         1747    =>      array(64432, 64433)
2739 );
2740
2741 /**
2742  * Arabic laa letter
2743  * char code => isolated, final, initial, medial
2744  */
2745 $laa_array = array (
2746         1570  => array(65269, 65270, 65269, 65270),
2747         1571  => array(65271, 65272, 65271, 65272),
2748         1573  => array(65273, 65274, 65273, 65274),
2749         1575  => array(65275, 65276, 65275, 65276)
2750 );
2751
2752 /**
2753  * Array of character substitutions for sequences of two diacritics symbols starting with SHADDA (0651 HEX, 1617 DEC).
2754  * Combining characters that can occur with Shadda (U0651) are placed in UE586-UE594.
2755  * Putting the combining mark and shadda in the same glyph allows us to avoid the two marks overlapping each other in an illegible manner.
2756  * second NSM char code => substitution char
2757  */
2758 $diacritics = array (
2759         1612 => 64606, // Shadda + Dammatan
2760         1613 => 64607, // Shadda + Kasratan
2761         1614 => 64608, // Shadda + Fatha
2762         1615 => 64609, // Shadda + Damma
2763         1616 => 64610  // Shadda + Kasra
2764 );
2765
2766 //============================================================+
2767 // END OF FILE
2768 //============================================================+