-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMdCIcons.js
executable file
·475 lines (441 loc) · 51 KB
/
MdCIcons.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
var MdCIcons = (function () {
lineheight = 24; spacing = 2;
// svgbase = "https://quest.ms.mff.cuni.cz/teitok-dev/teitok/jsesh/gards/";
svgbase = "https://raw.githubusercontent.com/rosmord/JavaScriptSesh/master/images/glyphs/";
mdcclass = "token-glyphs";
mdcatt = "title";
textheight = 94;
debug = false;
useunicode = true;
csslink = "";
gardlist = {}; pushed = {};
elmlist = [];
toloads = {};
svgsrc = document.createElement('div');
svgsrc.setAttribute("id", "svgsrc");
svgsrc.style.opacity = 0;
gnrcnt = 1;
phon2gard = { "mSa": "A12", "xr": "A15", "Xrd": "A17", "sr": "A21", "mniw": "A33", "qiz": "A38", "iry": "A47", "Sps": "A50", "Spsi": "A51", "x": "J1", "mAa": "J11", "gs": "J13", "im": "J13", "M": "J15", "sA": "J17", "apr": "J20", "wDa": "J21", "nD": "J27", "qd": "J28", "Xkr": "J30", "Hp": "J5", "qn": "J8", "msi": "B3", "mAat": "C10", "HH": "C11", "DHwty": "C3", "Xnmw": "C4", "inpw": "C6", "stX": "C7", "mnw": "C8", "tp": "D1", "wDAt": "D10", "R": "D153", "fnD": "D19", "Hr": "D2", "r": "D21", "rA": "D21", "spt": "D24", "spty": "D25", "mnD": "D27", "kA": "D28", "Sny": "D3", "aHA": "D34", "a": "D36", "ir": "D4", "Dsr": "D45", "d": "D46", "Dba": "D50", "mt": "D52", "gH": "D56", "gHs": "D56", "rd": "D56", "sbq": "D56", "b": "D58", "ab": "D59", "wab": "D60", "sAH": "D61", "rmi": "D9", "zAb": "E17", "mAi": "E22", "l": "E23", "rw": "E23", "Aby": "E24", "wn": "E34", "zzmt": "E6", "wsr": "F12", "wp": "F13", "db": "F16", "Hw": "F18", "bH": "F18", "ns": "F20", "DrD": "F21", "idn": "F21", "msDr": "F21", "sDm": "F21", "kfA": "F22", "pH": "F22", "xpS": "F23", "wHm": "F25", "Xn": "F26", "sti": "F29", "Sd": "F30", "ms": "F31", "X": "F32", "sd": "F33", "ib": "F34", "nfr": "F35", "zmA": "F36", "imAx": "F39", "HAt": "F4", "Aw": "F40", "spr": "F42", "isw": "F44", "iwa": "F44", "pXr": "F46", "qAb": "F46", "SsA": "F5", "A": "G1", "mwt": "G14", "nbty": "G16", "m": "G17", "mm": "G18", "AA": "G2", "nH": "G21", "Db": "G22", "rxyt": "G23", "Ax": "G25", "dSr": "G27", "gm": "G28", "bA": "G29", "baHi": "G32", "aq": "G35", "wr": "G36", "nDs": "G37", "gb": "G38", "zA": "G39", "tyw": "G4", "pA": "G40", "xn": "G41", "wSA": "G42", "w": "G43", "ww": "G44", "mAw": "G46", "TA": "G47", "snD": "G54", "pq": "H2", "wSm": "H2", "pAq": "H3", "nr": "H4", "Sw": "H6", "aSA": "I1", "D": "I10", "DD": "I11", "Styw": "I2", "mzH": "I3", "sbk": "I4", "sAq": "I5", "km": "I6", "Hfn": "I8", "f": "I9", "in": "K1", "ad": "K3", "XA": "K4", "bz": "K5", "nSmt": "K6", "xpr": "L1", "bit": "L2", "srqt": "L7", "iAm": "M1", "wdn": "M11", "xA": "M12", "1000": "M12", "wAD": "M13", "HA": "M16", "i": "M17", "ii": "M18", "Hn": "M2", "sxt": "M20", "sm": "M21", "nn": "M22A", "sw": "M23", "rsw": "M24", "Sma": "M26", "nDm": "M29", "xt": "M3", "bnr": "M30", "bdt": "M34", "Dr": "M36", "rnp": "M4", "iz": "M40", "tr": "M6", "SA": "M8", "zSn": "M9", "pt": "N1", "Abd": "N11", "iaH": "N11", "dwA": "N14", "sbA": "N14", "dwAt": "N15", "tA": "N16", "iw": "N18", "wDb": "N20", "spAt": "N24", "xAst": "N25", "Dw": "N26", "Axt": "N27", "xa": "N28", "q": "N29", "iAt": "N30", "n": "N35", "mw": "N35A", "S": "N37", "iAdt": "N4", "idt": "N4", "Sm": "N40", "id": "N41", "hrw": "N5", "ra": "N5", "zw": "N5", "Hnmmt": "N8", "pzD": "N9", "pr": "O1", "aH": "O11", "wsxt": "O15", "kAr": "O18", "zH": "O22", "txn": "O25", "iwn": "O28", "aA": "O29", "zxnt": "O30", "z": "O34", "zb": "O35", "inb": "O36", "qnbt": "O38A", "h": "O4", "Szp": "O42", "ipt": "O45", "nxn": "O47", "niwt": "O49", "zp": "O50", "Snwt": "O51", "Hwt": "O6", "wHa": "P4", "TAw": "P5", "nfw": "P5", "aHa": "P6", "xrw": "P8", "st": "Q1", "wz": "Q2", "p": "Q3", "qrsw": "Q6", "xAt": "R1", "xAwt": "R1", "Dd": "R11", "dd": "R11", "imnt": "R14", "iAb": "R15", "wx": "R16", "xm": "R22", "Htp": "R4", "kAp": "R5", "kp": "R5", "snTr": "R7", "nTr": "R8", "nTrw": "R8A", "bd": "R9", "HDt": "S1", "mDH": "S10", "wsx": "S11", "nbw": "S12", "THn": "S15", "tHn": "S15", "mnit": "S18", "sDAw": "S19", "xtm": "S20", "sT": "S22", "dmD": "S23", "Tz": "S24", "Sndyt": "S26", "mnxt": "S27", "s": "S29", "N": "S3", "dSrt": "S3", "sf": "S30", "siA": "S32", "Tb": "S33", "anx": "S34", "Swt": "S35", "xw": "S37", "HqA": "S38", "awt": "S39", "wAs": "S40", "Dam": "S41", "abA": "S42", "sxm": "S42", "xrp": "S42", "md": "S43", "Ams": "S44", "nxxw": "S45", "K": "S56", "sxmty": "S6", "xprS": "S7", "Atf": "S8", "Swty": "S9", "pD": "T10", "sXr": "T11", "zin": "T11", "zwn": "T11", "Ai": "T12", "Ar": "T12", "rwD": "T12", "rwd": "T12", "rs": "T13", "qmA": "T14", "wrrt": "T17", "Sms": "T18", "qs": "T19", "wa": "T21", "sn": "T22", "iH": "T24", "DbA": "T25", "Xr": "T28", "nmt": "T29", "HD": "T3", "sSm": "T31", "nm": "T34", "HDD": "T6", "pd": "T9", "mA": "U1", "it": "U10", "HqAt": "U11", "Sna": "U13", "hb": "U13", "tm": "U15", "biA": "U16", "grg": "U17", "stp": "U21", "mnx": "U22", "Ab": "U23", "Hmt": "U24", "wbA": "U26", "DA": "U28", "rtH": "U31", "zmn": "U32", "ti": "U33", "xsf": "U34", "Hm": "U36", "mxAt": "U38", "mr": "U6", "100": "V1", "arq": "V12", "T": "V13", "iTi": "V15", "TmA": "V19", "XAr": "V19", "mDt": "V19", "sTA": "V2", "10": "V20", "mD": "V20", "mH": "V22", "wD": "V24", "aD": "V26", "H": "V28", "sk": "V29", "wAH": "V29", "sTAw": "V3", "nb": "V30", "k": "V31", "msn": "V32", "sSr": "V33", "idr": "V37", "wA": "V4", "snT": "V5", "sS": "V6", "Sn": "V7", "iab": "W10", "g": "W11", "nzt": "W11", "Hz": "W14", "xnt": "W17", "mi": "W19", "bAs": "W2", "Hnqt": "W22", "nw": "W24", "ini": "W25", "Hb": "W3", "Xnm": "W9", "t": "X1", "di": "X8", "rdi": "X8", "mDAt": "Y1", "mnhd": "Y3", "zS": "Y3", "mn": "Y5", "ibA": "Y6", "zSSt": "Y8", "imi": "Z11", "y": "Z4", "W": "Z7" };
gard2unicode = { "A1": "𓀀", "A2": "𓀁", "A3": "𓀂", "A4": "𓀃", "A5": "𓀄", "A5A": "𓀅", "A6": "𓀆", "A6A": "𓀇", "A6B": "𓀈", "A7": "𓀉", "A8": "𓀊", "A9": "𓀋", "A10": "𓀌", "A11": "𓀍", "A12": "𓀎", "A13": "𓀏", "A14": "𓀐", "A14A": "𓀑", "A15": "𓀒", "A16": "𓀓", "A17": "𓀔", "A17A": "𓀕", "A18": "𓀖", "A19": "𓀗", "A20": "𓀘", "A21": "𓀙", "A22": "𓀚", "A23": "𓀛", "A24": "𓀜", "A25": "𓀝", "A26": "𓀞", "A27": "𓀟", "A28": "𓀠", "A29": "𓀡", "A30": "𓀢", "A31": "𓀣", "A32": "𓀤", "A32A": "𓀥", "A33": "𓀦", "A34": "𓀧", "A35": "𓀨", "A36": "𓀩", "A37": "𓀪", "A38": "𓀫", "A39": "𓀬", "A40": "𓀭", "A40A": "𓀮", "A41": "𓀯", "A42": "𓀰", "A42A": "𓀱", "A43": "𓀲", "A43A": "𓀳", "A44": "𓀴", "A45": "𓀵", "A45A": "𓀶", "A46": "𓀷", "A47": "𓀸", "A48": "𓀹", "A49": "𓀺", "A50": "𓀻", "A51": "𓀼", "A52": "𓀽", "A53": "𓀾", "A54": "𓀿", "A55": "𓁀", "A56": "𓁁", "A57": "𓁂", "A58": "𓁃", "A59": "𓁄", "A60": "𓁅", "A61": "𓁆", "A62": "𓁇", "A63": "𓁈", "A64": "𓁉", "A65": "𓁊", "A66": "𓁋", "A67": "𓁌", "A68": "𓁍", "A69": "𓁎", "A70": "𓁏", "B1": "𓁐", "B2": "𓁑", "B3": "𓁒", "B4": "𓁓", "B5": "𓁔", "B5A": "𓁕", "B6": "𓁖", "B7": "𓁗", "B8": "𓁘", "B9": "𓁙", "C1": "𓁚", "C2": "𓁛", "C2A": "𓁜", "C2B": "𓁝", "C2C": "𓁞", "C3": "𓁟", "C4": "𓁠", "C5": "𓁡", "C6": "𓁢", "C7": "𓁣", "C8": "𓁤", "C9": "𓁥", "C10": "𓁦", "C10A": "𓁧", "C11": "𓁨", "C12": "𓁩", "C13": "𓁪", "C14": "𓁫", "C15": "𓁬", "C16": "𓁭", "C17": "𓁮", "C18": "𓁯", "C19": "𓁰", "C20": "𓁱", "C21": "𓁲", "C22": "𓁳", "C23": "𓁴", "C24": "𓁵", "D1": "𓁶", "D2": "𓁷", "D3": "𓁸", "D4": "𓁹", "D5": "𓁺", "D6": "𓁻", "D7": "𓁼", "D8": "𓁽", "D8A": "𓁾", "D9": "𓁿", "D10": "𓂀", "D11": "𓂁", "D12": "𓂂", "D13": "𓂃", "D14": "𓂄", "D15": "𓂅", "D16": "𓂆", "D17": "𓂇", "D18": "𓂈", "D19": "𓂉", "D20": "𓂊", "D21": "𓂋", "D22": "𓂌", "D23": "𓂍", "D24": "𓂎", "D25": "𓂏", "D26": "𓂐", "D27": "𓂑", "D27A": "𓂒", "D28": "𓂓", "D29": "𓂔", "D30": "𓂕", "D31": "𓂖", "D31A": "𓂗", "D32": "𓂘", "D33": "𓂙", "D34": "𓂚", "D34A": "𓂛", "D35": "𓂜", "D36": "𓂝", "D37": "𓂞", "D38": "𓂟", "D39": "𓂠", "D40": "𓂡", "D41": "𓂢", "D42": "𓂣", "D43": "𓂤", "D44": "𓂥", "D45": "𓂦", "D46": "𓂧", "D46A": "𓂨", "D47": "𓂩", "D48": "𓂪", "D48A": "𓂫", "D49": "𓂬", "D50": "𓂭", "D50A": "𓂮", "D50B": "𓂯", "D50C": "𓂰", "D50D": "𓂱", "D50E": "𓂲", "D50F": "𓂳", "D50G": "𓂴", "D50H": "𓂵", "D50I": "𓂶", "D51": "𓂷", "D52": "𓂸", "D52A": "𓂹", "D53": "𓂺", "D54": "𓂻", "D54A": "𓂼", "D55": "𓂽", "D56": "𓂾", "D57": "𓂿", "D58": "𓃀", "D59": "𓃁", "D60": "𓃂", "D61": "𓃃", "D62": "𓃄", "D63": "𓃅", "D64": "𓃆", "D65": "𓃇", "D66": "𓃈", "D67": "𓃉", "D67A": "𓃊", "D67B": "𓃋", "D67C": "𓃌", "D67D": "𓃍", "D67E": "𓃎", "D67F": "𓃏", "D67G": "𓃐", "D67H": "𓃑", "E1": "𓃒", "E2": "𓃓", "E3": "𓃔", "E4": "𓃕", "E5": "𓃖", "E6": "𓃗", "E7": "𓃘", "E8": "𓃙", "E8A": "𓃚", "E9": "𓃛", "E9A": "𓃜", "E10": "𓃝", "E11": "𓃞", "E12": "𓃟", "E13": "𓃠", "E14": "𓃡", "E15": "𓃢", "E16": "𓃣", "E16A": "𓃤", "E17": "𓃥", "E17A": "𓃦", "E18": "𓃧", "E19": "𓃨", "E20": "𓃩", "E20A": "𓃪", "E21": "𓃫", "E22": "𓃬", "E23": "𓃭", "E24": "𓃮", "E25": "𓃯", "E26": "𓃰", "E27": "𓃱", "E28": "𓃲", "E28A": "𓃳", "E29": "𓃴", "E30": "𓃵", "E31": "𓃶", "E32": "𓃷", "E33": "𓃸", "E34": "𓃹", "E34A": "𓃺", "E36": "𓃻", "E37": "𓃼", "E38": "𓃽", "F1": "𓃾", "F1A": "𓃿", "F2": "𓄀", "F3": "𓄁", "F4": "𓄂", "F5": "𓄃", "F6": "𓄄", "F7": "𓄅", "F8": "𓄆", "F9": "𓄇", "F10": "𓄈", "F11": "𓄉", "F12": "𓄊", "F13": "𓄋", "F13A": "𓄌", "F14": "𓄍", "F15": "𓄎", "F16": "𓄏", "F17": "𓄐", "F18": "𓄑", "F19": "𓄒", "F20": "𓄓", "F21": "𓄔", "F21A": "𓄕", "F22": "𓄖", "F23": "𓄗", "F24": "𓄘", "F25": "𓄙", "F26": "𓄚", "F27": "𓄛", "F28": "𓄜", "F29": "𓄝", "F30": "𓄞", "F31": "𓄟", "F31A": "𓄠", "F32": "𓄡", "F33": "𓄢", "F34": "𓄣", "F35": "𓄤", "F36": "𓄥", "F37": "𓄦", "F37A": "𓄧", "F38": "𓄨", "F38A": "𓄩", "F39": "𓄪", "F40": "𓄫", "F41": "𓄬", "F42": "𓄭", "F43": "𓄮", "F44": "𓄯", "F45": "𓄰", "F45A": "𓄱", "F46": "𓄲", "F46A": "𓄳", "F47": "𓄴", "F47A": "𓄵", "F48": "𓄶", "F49": "𓄷", "F50": "𓄸", "F51": "𓄹", "F51A": "𓄺", "F51B": "𓄻", "F51C": "𓄼", "F52": "𓄽", "F53": "𓄾", "G1": "𓄿", "G2": "𓅀", "G3": "𓅁", "G4": "𓅂", "G5": "𓅃", "G6": "𓅄", "G6A": "𓅅", "G7": "𓅆", "G7A": "𓅇", "G7B": "𓅈", "G8": "𓅉", "G9": "𓅊", "G10": "𓅋", "G11": "𓅌", "G11A": "𓅍", "G12": "𓅎", "G13": "𓅏", "G14": "𓅐", "G15": "𓅑", "G16": "𓅒", "G17": "𓅓", "G18": "𓅔", "G19": "𓅕", "G20": "𓅖", "G20A": "𓅗", "G21": "𓅘", "G22": "𓅙", "G23": "𓅚", "G24": "𓅛", "G25": "𓅜", "G26": "𓅝", "G26A": "𓅞", "G27": "𓅟", "G28": "𓅠", "G29": "𓅡", "G30": "𓅢", "G31": "𓅣", "G32": "𓅤", "G33": "𓅥", "G34": "𓅦", "G35": "𓅧", "G36": "𓅨", "G36A": "𓅩", "G37": "𓅪", "G37A": "𓅫", "G38": "𓅬", "G39": "𓅭", "G40": "𓅮", "G41": "𓅯", "G42": "𓅰", "G43": "𓅱", "G43A": "𓅲", "G44": "𓅳", "G45": "𓅴", "G45A": "𓅵", "G46": "𓅶", "G47": "𓅷", "G48": "𓅸", "G49": "𓅹", "G50": "𓅺", "G51": "𓅻", "G52": "𓅼", "G53": "𓅽", "G54": "𓅾", "H1": "𓅿", "H2": "𓆀", "H3": "𓆁", "H4": "𓆂", "H5": "𓆃", "H6": "𓆄", "H6A": "𓆅", "H7": "𓆆", "H8": "𓆇", "I1": "𓆈", "I2": "𓆉", "I3": "𓆊", "I4": "𓆋", "I5": "𓆌", "I5A": "𓆍", "I6": "𓆎", "I7": "𓆏", "I8": "𓆐", "I9": "𓆑", "I9A": "𓆒", "I10": "𓆓", "I10A": "𓆔", "I11": "𓆕", "I11A": "𓆖", "I12": "𓆗", "I13": "𓆘", "I14": "𓆙", "I15": "𓆚", "K1": "𓆛", "K2": "𓆜", "K3": "𓆝", "K4": "𓆞", "K5": "𓆟", "K6": "𓆠", "K7": "𓆡", "K8": "𓆢", "L1": "𓆣", "L2": "𓆤", "L2A": "𓆥", "L3": "𓆦", "L4": "𓆧", "L5": "𓆨", "L6": "𓆩", "L6A": "𓆪", "L7": "𓆫", "L8": "𓆬", "M1": "𓆭", "M1A": "𓆮", "M1B": "𓆯", "M2": "𓆰", "M3": "𓆱", "M3A": "𓆲", "M4": "𓆳", "M5": "𓆴", "M6": "𓆵", "M7": "𓆶", "M8": "𓆷", "M9": "𓆸", "M10": "𓆹", "M10A": "𓆺", "M11": "𓆻", "M12": "𓆼", "M12A": "𓆽", "M12B": "𓆾", "M12C": "𓆿", "M12D": "𓇀", "M12E": "𓇁", "M12F": "𓇂", "M12G": "𓇃", "M12H": "𓇄", "M13": "𓇅", "M14": "𓇆", "M15": "𓇇", "M15A": "𓇈", "M16": "𓇉", "M16A": "𓇊", "M17": "𓇋", "M17A": "𓇌", "M18": "𓇍", "M19": "𓇎", "M20": "𓇏", "M21": "𓇐", "M22": "𓇑", "M22A": "𓇒", "M23": "𓇓", "M24": "𓇔", "M24A": "𓇕", "M25": "𓇖", "M26": "𓇗", "M27": "𓇘", "M28": "𓇙", "M28A": "𓇚", "M29": "𓇛", "M30": "𓇜", "M31": "𓇝", "M31A": "𓇞", "M32": "𓇟", "M33": "𓇠", "M33A": "𓇡", "M33B": "𓇢", "M34": "𓇣", "M35": "𓇤", "M36": "𓇥", "M37": "𓇦", "M38": "𓇧", "M39": "𓇨", "M40": "𓇩", "M40A": "𓇪", "M41": "𓇫", "M42": "𓇬", "M43": "𓇭", "M44": "𓇮", "N1": "𓇯", "N2": "𓇰", "N3": "𓇱", "N4": "𓇲", "N5": "𓇳", "N6": "𓇴", "N7": "𓇵", "N8": "𓇶", "N9": "𓇷", "N10": "𓇸", "N11": "𓇹", "N12": "𓇺", "N13": "𓇻", "N14": "𓇼", "N15": "𓇽", "N16": "𓇾", "N17": "𓇿", "N18": "𓈀", "N18A": "𓈁", "N18B": "𓈂", "N19": "𓈃", "N20": "𓈄", "N21": "𓈅", "N22": "𓈆", "N23": "𓈇", "N24": "𓈈", "N25": "𓈉", "N25A": "𓈊", "N26": "𓈋", "N27": "𓈌", "N28": "𓈍", "N29": "𓈎", "N30": "𓈏", "N31": "𓈐", "N32": "𓈑", "N33": "𓈒", "N33A": "𓈓", "N34": "𓈔", "N34A": "𓈕", "N35": "𓈖", "N35A": "𓈗", "N36": "𓈘", "N37": "𓈙", "N37A": "𓈚", "N38": "𓈛", "N39": "𓈜", "N40": "𓈝", "N41": "𓈞", "N42": "𓈟", "NL5a": "𓈥", "NL18": "𓈳", "O1": "𓉐", "O2": "𓉒", "O3": "𓉓", "O4": "𓉔", "O5": "𓉕", "O5A": "𓉖", "O6": "𓉗", "O6A": "𓉘", "O6B": "𓉙", "O6C": "𓉚", "O6D": "𓉛", "O6E": "𓉜", "O6F": "𓉝", "O7": "𓉞", "O8": "𓉟", "O9": "𓉠", "O10": "𓉡", "O10A": "𓉢", "O10B": "𓉣", "O10C": "𓉤", "O11": "𓉥", "O12": "𓉦", "O13": "𓉧", "O14": "𓉨", "O15": "𓉩", "O16": "𓉪", "O17": "𓉫", "O18": "𓉬", "O19": "𓉭", "O19A": "𓉮", "O20": "𓉯", "O20A": "𓉰", "O21": "𓉱", "O22": "𓉲", "O23": "𓉳", "O24": "𓉴", "O24A": "𓉵", "O25": "𓉶", "O25A": "𓉷", "O26": "𓉸", "O27": "𓉹", "O28": "𓉺", "O29": "𓉻", "O29A": "𓉼", "O30": "𓉽", "O30A": "𓉾", "O31": "𓉿", "O32": "𓊀", "O33": "𓊁", "O33A": "𓊂", "O34": "𓊃", "O35": "𓊄", "O36": "𓊅", "O36A": "𓊆", "O36B": "𓊇", "O36C": "𓊈", "O36D": "𓊉", "O37": "𓊊", "O38": "𓊋", "O39": "𓊌", "O40": "𓊍", "O41": "𓊎", "O42": "𓊏", "O43": "𓊐", "O44": "𓊑", "O45": "𓊒", "O46": "𓊓", "O47": "𓊔", "O48": "𓊕", "O49": "𓊖", "O50": "𓊗", "O50A": "𓊘", "O50B": "𓊙", "O51": "𓊚", "P1": "𓊛", "P1A": "𓊜", "P2": "𓊝", "P3": "𓊞", "P3A": "𓊟", "P4": "𓊠", "P5": "𓊡", "P6": "𓊢", "P7": "𓊣", "P8": "𓊤", "P9": "𓊥", "P10": "𓊦", "P11": "𓊧", "Q1": "𓊨", "Q2": "𓊩", "Q3": "𓊪", "Q4": "𓊫", "Q5": "𓊬", "Q6": "𓊭", "Q7": "𓊮", "R1": "𓊯", "R2": "𓊰", "R2A": "𓊱", "R3": "𓊲", "R3A": "𓊳", "R3B": "𓊴", "R4": "𓊵", "R5": "𓊶", "R6": "𓊷", "R7": "𓊸", "R8": "𓊹", "R9": "𓊺", "R10": "𓊻", "R10A": "𓊼", "R11": "𓊽", "R12": "𓊾", "R13": "𓊿", "R14": "𓋀", "R15": "𓋁", "R16": "𓋂", "R16A": "𓋃", "R17": "𓋄", "R18": "𓋅", "R19": "𓋆", "R20": "𓋇", "R21": "𓋈", "R22": "𓋉", "R23": "𓋊", "R24": "𓋋", "R25": "𓋌", "R26": "𓋍", "R27": "𓋎", "R28": "𓋏", "R29": "𓋐", "S1": "𓋑", "S2": "𓋒", "S2A": "𓋓", "S3": "𓋔", "S4": "𓋕", "S5": "𓋖", "S6": "𓋗", "S6A": "𓋘", "S7": "𓋙", "S8": "𓋚", "S9": "𓋛", "S10": "𓋜", "S11": "𓋝", "S12": "𓋞", "S13": "𓋟", "S14": "𓋠", "S14A": "𓋡", "S14B": "𓋢", "S15": "𓋣", "S16": "𓋤", "S17": "𓋥", "S17A": "𓋦", "S18": "𓋧", "S19": "𓋨", "S20": "𓋩", "S21": "𓋪", "S22": "𓋫", "S23": "𓋬", "S24": "𓋭", "S25": "𓋮", "S26": "𓋯", "S26A": "𓋰", "S26B": "𓋱", "S27": "𓋲", "S28": "𓋳", "S29": "𓋴", "S30": "𓋵", "S31": "𓋶", "S32": "𓋷", "S33": "𓋸", "S34": "𓋹", "S35": "𓋺", "S35A": "𓋻", "S36": "𓋼", "S37": "𓋽", "S38": "𓋾", "S39": "𓋿", "S40": "𓌀", "S41": "𓌁", "S42": "𓌂", "S43": "𓌃", "S44": "𓌄", "S45": "𓌅", "S46": "𓌆", "T1": "𓌇", "T2": "𓌈", "T3": "𓌉", "T3A": "𓌊", "T4": "𓌋", "T5": "𓌌", "T6": "𓌍", "T7": "𓌎", "T7A": "𓌏", "T8": "𓌐", "T8A": "𓌑", "T9": "𓌒", "T9A": "𓌓", "T10": "𓌔", "T11": "𓌕", "T11A": "𓌖", "T12": "𓌗", "T13": "𓌘", "T14": "𓌙", "T15": "𓌚", "T16": "𓌛", "T16A": "𓌜", "T17": "𓌝", "T18": "𓌞", "T19": "𓌟", "T20": "𓌠", "T21": "𓌡", "T22": "𓌢", "T23": "𓌣", "T24": "𓌤", "T25": "𓌥", "T26": "𓌦", "T27": "𓌧", "T28": "𓌨", "T29": "𓌩", "T30": "𓌪", "T31": "𓌫", "T32": "𓌬", "T32A": "𓌭", "T33": "𓌮", "T33A": "𓌯", "T34": "𓌰", "T35": "𓌱", "T36": "𓌲", "U1": "𓌳", "U2": "𓌴", "U3": "𓌵", "U4": "𓌶", "U5": "𓌷", "U6": "𓌸", "U6A": "𓌹", "U6B": "𓌺", "U7": "𓌻", "U8": "𓌼", "U9": "𓌽", "U10": "𓌾", "U11": "𓌿", "U12": "𓍀", "U13": "𓍁", "U14": "𓍂", "U15": "𓍃", "U16": "𓍄", "U17": "𓍅", "U18": "𓍆", "U19": "𓍇", "U20": "𓍈", "U21": "𓍉", "U22": "𓍊", "U23": "𓍋", "U23A": "𓍌", "U24": "𓍍", "U25": "𓍎", "U26": "𓍏", "U27": "𓍐", "U28": "𓍑", "U29": "𓍒", "U29A": "𓍓", "U30": "𓍔", "U31": "𓍕", "U32": "𓍖", "U32A": "𓍗", "U33": "𓍘", "U34": "𓍙", "U35": "𓍚", "U36": "𓍛", "U37": "𓍜", "U38": "𓍝", "U39": "𓍞", "U40": "𓍟", "U41": "𓍠", "U42": "𓍡", "V1": "𓍢", "V1A": "𓍣", "V1B": "𓍤", "V1C": "𓍥", "V1D": "𓍦", "V1E": "𓍧", "V1F": "𓍨", "V1G": "𓍩", "V1H": "𓍪", "V1I": "𓍫", "V2": "𓍬", "V2A": "𓍭", "V3": "𓍮", "V4": "𓍯", "V5": "𓍰", "V6": "𓍱", "V7": "𓍲", "V7A": "𓍳", "V7B": "𓍴", "V8": "𓍵", "V9": "𓍶", "V10": "𓍷", "V11": "𓍸", "V11A": "𓍹", "V11B": "𓍺", "V11C": "𓍻", "V12": "𓍼", "V12A": "𓍽", "V12B": "𓍾", "V13": "𓍿", "V14": "𓎀", "V15": "𓎁", "V16": "𓎂", "V17": "𓎃", "V18": "𓎄", "V19": "𓎅", "V20": "𓎆", "V20A": "𓎇", "V20B": "𓎈", "V20C": "𓎉", "V20D": "𓎊", "V20E": "𓎋", "V20F": "𓎌", "V20G": "𓎍", "V20H": "𓎎", "V20I": "𓎏", "V20J": "𓎐", "V20K": "𓎑", "V20L": "𓎒", "V21": "𓎓", "V22": "𓎔", "V23": "𓎕", "V23A": "𓎖", "V24": "𓎗", "V25": "𓎘", "V26": "𓎙", "V27": "𓎚", "V28": "𓎛", "V28A": "𓎜", "V29": "𓎝", "V29A": "𓎞", "V30": "𓎟", "V30A": "𓎠", "V31": "𓎡", "V31A": "𓎢", "V32": "𓎣", "V33": "𓎤", "V33A": "𓎥", "V34": "𓎦", "V35": "𓎧", "V36": "𓎨", "V37": "𓎩", "V37A": "𓎪", "V38": "𓎫", "V39": "𓎬", "V40": "𓎭", "V40A": "𓎮", "W1": "𓎯", "W2": "𓎰", "W3": "𓎱", "W3A": "𓎲", "W4": "𓎳", "W5": "𓎴", "W6": "𓎵", "W7": "𓎶", "W8": "𓎷", "W9": "𓎸", "W9A": "𓎹", "W10": "𓎺", "W10A": "𓎻", "W11": "𓎼", "W12": "𓎽", "W13": "𓎾", "W14": "𓎿", "W14A": "𓏀", "W15": "𓏁", "W16": "𓏂", "W17": "𓏃", "W17A": "𓏄", "W18": "𓏅", "W18A": "𓏆", "W19": "𓏇", "W20": "𓏈", "W21": "𓏉", "W22": "𓏊", "W23": "𓏋", "W24": "𓏌", "W24A": "𓏍", "W25": "𓏎", "X1": "𓏏", "X2": "𓏐", "X3": "𓏑", "X4": "𓏒", "X4A": "𓏓", "X4B": "𓏔", "X5": "𓏕", "X6": "𓏖", "X6A": "𓏗", "X7": "𓏘", "X8": "𓏙", "X8A": "𓏚", "Y1": "𓏛", "Y1A": "𓏜", "Y2": "𓏝", "Y3": "𓏞", "Y4": "𓏟", "Y5": "𓏠", "Y6": "𓏡", "Y7": "𓏢", "Y8": "𓏣", "Z1": "𓏤", "Z2": "𓏥", "Z2A": "𓏦", "Z2B": "𓏧", "Z2C": "𓏨", "Z2D": "𓏩", "Z3": "𓏪", "Z3A": "𓏫", "Z3B": "𓏬", "Z4": "𓏭", "Z4A": "𓏮", "Z5": "𓏯", "Z5A": "𓏰", "Z6": "𓏱", "Z7": "𓏲", "Z8": "𓏳", "Z9": "𓏴", "Z10": "𓏵", "Z11": "𓏶", "Z12": "𓏷", "Z13": "𓏸", "Z14": "𓏹", "Z15": "𓏺", "Z15A": "𓏻", "Z15B": "𓏼", "Z15C": "𓏽", "Z15D": "𓏾", "Z15E": "𓏿", "Z15F": "𓐀", "Z15G": "𓐁", "Z15H": "𓐂", "Z15I": "𓐃", "Z16": "𓐄", "Z16A": "𓐅", "Z16B": "𓐆", "Z16C": "𓐇", "Z16D": "𓐈", "Z16E": "𓐉", "Z16F": "𓐊", "Z16G": "𓐋", "Z16H": "𓐌", "Aa1": "𓐍", "Aa2": "𓐎", "Aa3": "𓐏", "Aa4": "𓐐", "Aa5": "𓐑", "Aa6": "𓐒", "Aa7": "𓐓", "Aa7A": "𓐔", "Aa7B": "𓐕", "Aa8": "𓐖", "Aa9": "𓐗", "Aa10": "𓐘", "Aa11": "𓐙", "Aa12": "𓐚", "Aa13": "𓐛", "Aa14": "𓐜", "Aa15": "𓐝", "Aa16": "𓐞", "Aa17": "𓐟", "Aa18": "𓐠", "Aa19": "𓐡", "Aa20": "𓐢", "Aa21": "𓐣", "Aa22": "𓐤", "Aa23": "𓐥", "Aa24": "𓐦", "Aa25": "𓐧", "Aa26": "𓐨", "Aa27": "𓐩", "Aa28": "𓐪", "Aa29": "𓐫", "Aa30": "𓐬", "Aa31": "𓐭", "Aa32": "𓐮"}
gard2hex = { "A1": "13000", "A2": "13001", "A3": "13002", "A4": "13003", "A5": "13004", "A5A": "13005", "A6": "13006", "A6A": "13007", "A6B": "13008", "A7": "13009", "A8": "1300A", "A9": "1300B", "A10": "1300C", "A11": "1300D", "A12": "1300E", "A13": "1300F", "A14": "13010", "A14A": "13011", "A15": "13012", "A16": "13013", "A17": "13014", "A17A": "13015", "A18": "13016", "A19": "13017", "A20": "13018", "A21": "13019", "A22": "1301A", "A23": "1301B", "A24": "1301C", "A25": "1301D", "A26": "1301E", "A27": "1301F", "A28": "13020", "A29": "13021", "A30": "13022", "A31": "13023", "A32": "13024", "A32A": "13025", "A33": "13026", "A34": "13027", "A35": "13028", "A36": "13029", "A37": "1302A", "A38": "1302B", "A39": "1302C", "A40": "1302D", "A40A": "1302E", "A41": "1302F", "A42": "13030", "A42A": "13031", "A43": "13032", "A43A": "13033", "A44": "13034", "A45": "13035", "A45A": "13036", "A46": "13037", "A47": "13038", "A48": "13039", "A49": "1303A", "A50": "1303B", "A51": "1303C", "A52": "1303D", "A53": "1303E", "A54": "1303F", "A55": "13040", "A56": "13041", "A57": "13042", "A58": "13043", "A59": "13044", "A60": "13045", "A61": "13046", "A62": "13047", "A63": "13048", "A64": "13049", "A65": "1304A", "A66": "1304B", "A67": "1304C", "A68": "1304D", "A69": "1304E", "A70": "1304F", "B1": "13050", "B2": "13051", "B3": "13052", "B4": "13053", "B5": "13054", "B5A": "13055", "B6": "13056", "B7": "13057", "B8": "13058", "B9": "13059", "C1": "1305A", "C2": "1305B", "C2A": "1305C", "C2B": "1305D", "C2C": "1305E", "C3": "1305F", "C4": "13060", "C5": "13061", "C6": "13062", "C7": "13063", "C8": "13064", "C9": "13065", "C10": "13066", "C10A": "13067", "C11": "13068", "C12": "13069", "C13": "1306A", "C14": "1306B", "C15": "1306C", "C16": "1306D", "C17": "1306E", "C18": "1306F", "C19": "13070", "C20": "13071", "C21": "13072", "C22": "13073", "C23": "13074", "C24": "13075", "D1": "13076", "D2": "13077", "D3": "13078", "D4": "13079", "D5": "1307A", "D6": "1307B", "D7": "1307C", "D8": "1307D", "D8A": "1307E", "D9": "1307F", "D10": "13080", "D11": "13081", "D12": "13082", "D13": "13083", "D14": "13084", "D15": "13085", "D16": "13086", "D17": "13087", "D18": "13088", "D19": "13089", "D20": "1308A", "D21": "1308B", "D22": "1308C", "D23": "1308D", "D24": "1308E", "D25": "1308F", "D26": "13090", "D27": "13091", "D27A": "13092", "D28": "13093", "D29": "13094", "D30": "13095", "D31": "13096", "D31A": "13097", "D32": "13098", "D33": "13099", "D34": "1309A", "D34A": "1309B", "D35": "1309C", "D36": "1309D", "D37": "1309E", "D38": "1309F", "D39": "130A0", "D40": "130A1", "D41": "130A2", "D42": "130A3", "D43": "130A4", "D44": "130A5", "D45": "130A6", "D46": "130A7", "D46A": "130A8", "D47": "130A9", "D48": "130AA", "D48A": "130AB", "D49": "130AC", "D50": "130AD", "D50A": "130AE", "D50B": "130AF", "D50C": "130B0", "D50D": "130B1", "D50E": "130B2", "D50F": "130B3", "D50G": "130B4", "D50H": "130B5", "D50I": "130B6", "D51": "130B7", "D52": "130B8", "D52A": "130B9", "D53": "130BA", "D54": "130BB", "D54A": "130BC", "D55": "130BD", "D56": "130BE", "D57": "130BF", "D58": "130C0", "D59": "130C1", "D60": "130C2", "D61": "130C3", "D62": "130C4", "D63": "130C5", "D64": "130C6", "D65": "130C7", "D66": "130C8", "D67": "130C9", "D67A": "130CA", "D67B": "130CB", "D67C": "130CC", "D67D": "130CD", "D67E": "130CE", "D67F": "130CF", "D67G": "130D0", "D67H": "130D1", "E1": "130D2", "E2": "130D3", "E3": "130D4", "E4": "130D5", "E5": "130D6", "E6": "130D7", "E7": "130D8", "E8": "130D9", "E8A": "130DA", "E9": "130DB", "E9A": "130DC", "E10": "130DD", "E11": "130DE", "E12": "130DF", "E13": "130E0", "E14": "130E1", "E15": "130E2", "E16": "130E3", "E16A": "130E4", "E17": "130E5", "E17A": "130E6", "E18": "130E7", "E19": "130E8", "E20": "130E9", "E20A": "130EA", "E21": "130EB", "E22": "130EC", "E23": "130ED", "E24": "130EE", "E25": "130EF", "E26": "130F0", "E27": "130F1", "E28": "130F2", "E28A": "130F3", "E29": "130F4", "E30": "130F5", "E31": "130F6", "E32": "130F7", "E33": "130F8", "E34": "130F9", "E34A": "130FA", "E36": "130FB", "E37": "130FC", "E38": "130FD", "F1": "130FE", "F1A": "130FF", "F2": "13100", "F3": "13101", "F4": "13102", "F5": "13103", "F6": "13104", "F7": "13105", "F8": "13106", "F9": "13107", "F10": "13108", "F11": "13109", "F12": "1310A", "F13": "1310B", "F13A": "1310C", "F14": "1310D", "F15": "1310E", "F16": "1310F", "F17": "13110", "F18": "13111", "F19": "13112", "F20": "13113", "F21": "13114", "F21A": "13115", "F22": "13116", "F23": "13117", "F24": "13118", "F25": "13119", "F26": "1311A", "F27": "1311B", "F28": "1311C", "F29": "1311D", "F30": "1311E", "F31": "1311F", "F31A": "13120", "F32": "13121", "F33": "13122", "F34": "13123", "F35": "13124", "F36": "13125", "F37": "13126", "F37A": "13127", "F38": "13128", "F38A": "13129", "F39": "1312A", "F40": "1312B", "F41": "1312C", "F42": "1312D", "F43": "1312E", "F44": "1312F", "F45": "13130", "F45A": "13131", "F46": "13132", "F46A": "13133", "F47": "13134", "F47A": "13135", "F48": "13136", "F49": "13137", "F50": "13138", "F51": "13139", "F51A": "1313A", "F51B": "1313B", "F51C": "1313C", "F52": "1313D", "F53": "1313E", "G1": "1313F", "G2": "13140", "G3": "13141", "G4": "13142", "G5": "13143", "G6": "13144", "G6A": "13145", "G7": "13146", "G7A": "13147", "G7B": "13148", "G8": "13149", "G9": "1314A", "G10": "1314B", "G11": "1314C", "G11A": "1314D", "G12": "1314E", "G13": "1314F", "G14": "13150", "G15": "13151", "G16": "13152", "G17": "13153", "G18": "13154", "G19": "13155", "G20": "13156", "G20A": "13157", "G21": "13158", "G22": "13159", "G23": "1315A", "G24": "1315B", "G25": "1315C", "G26": "1315D", "G26A": "1315E", "G27": "1315F", "G28": "13160", "G29": "13161", "G30": "13162", "G31": "13163", "G32": "13164", "G33": "13165", "G34": "13166", "G35": "13167", "G36": "13168", "G36A": "13169", "G37": "1316A", "G37A": "1316B", "G38": "1316C", "G39": "1316D", "G40": "1316E", "G41": "1316F", "G42": "13170", "G43": "13171", "G43A": "13172", "G44": "13173", "G45": "13174", "G45A": "13175", "G46": "13176", "G47": "13177", "G48": "13178", "G49": "13179", "G50": "1317A", "G51": "1317B", "G52": "1317C", "G53": "1317D", "G54": "1317E", "H1": "1317F", "H2": "13180", "H3": "13181", "H4": "13182", "H5": "13183", "H6": "13184", "H6A": "13185", "H7": "13186", "H8": "13187", "I1": "13188", "I2": "13189", "I3": "1318A", "I4": "1318B", "I5": "1318C", "I5A": "1318D", "I6": "1318E", "I7": "1318F", "I8": "13190", "I9": "13191", "I9A": "13192", "I10": "13193", "I10A": "13194", "I11": "13195", "I11A": "13196", "I12": "13197", "I13": "13198", "I14": "13199", "I15": "1319A", "K1": "1319B", "K2": "1319C", "K3": "1319D", "K4": "1319E", "K5": "1319F", "K6": "131A0", "K7": "131A1", "K8": "131A2", "L1": "131A3", "L2": "131A4", "L2A": "131A5", "L3": "131A6", "L4": "131A7", "L5": "131A8", "L6": "131A9", "L6A": "131AA", "L7": "131AB", "L8": "131AC", "M1": "131AD", "M1A": "131AE", "M1B": "131AF", "M2": "131B0", "M3": "131B1", "M3A": "131B2", "M4": "131B3", "M5": "131B4", "M6": "131B5", "M7": "131B6", "M8": "131B7", "M9": "131B8", "M10": "131B9", "M10A": "131BA", "M11": "131BB", "M12": "131BC", "M12A": "131BD", "M12B": "131BE", "M12C": "131BF", "M12D": "131C0", "M12E": "131C1", "M12F": "131C2", "M12G": "131C3", "M12H": "131C4", "M13": "131C5", "M14": "131C6", "M15": "131C7", "M15A": "131C8", "M16": "131C9", "M16A": "131CA", "M17": "131CB", "M17A": "131CC", "M18": "131CD", "M19": "131CE", "M20": "131CF", "M21": "131D0", "M22": "131D1", "M22A": "131D2", "M23": "131D3", "M24": "131D4", "M24A": "131D5", "M25": "131D6", "M26": "131D7", "M27": "131D8", "M28": "131D9", "M28A": "131DA", "M29": "131DB", "M30": "131DC", "M31": "131DD", "M31A": "131DE", "M32": "131DF", "M33": "131E0", "M33A": "131E1", "M33B": "131E2", "M34": "131E3", "M35": "131E4", "M36": "131E5", "M37": "131E6", "M38": "131E7", "M39": "131E8", "M40": "131E9", "M40A": "131EA", "M41": "131EB", "M42": "131EC", "M43": "131ED", "M44": "131EE", "N1": "131EF", "N2": "131F0", "N3": "131F1", "N4": "131F2", "N5": "131F3", "N6": "131F4", "N7": "131F5", "N8": "131F6", "N9": "131F7", "N10": "131F8", "N11": "131F9", "N12": "131FA", "N13": "131FB", "N14": "131FC", "N15": "131FD", "N16": "131FE", "N17": "131FF", "N18": "13200", "N18A": "13201", "N18B": "13202", "N19": "13203", "N20": "13204", "N21": "13205", "N22": "13206", "N23": "13207", "N24": "13208", "N25": "13209", "N25A": "1320A", "N26": "1320B", "N27": "1320C", "N28": "1320D", "N29": "1320E", "N30": "1320F", "N31": "13210", "N32": "13211", "N33": "13212", "N33A": "13213", "N34": "13214", "N34A": "13215", "N35": "13216", "N35A": "13217", "N36": "13218", "N37": "13219", "N37A": "1321A", "N38": "1321B", "N39": "1321C", "N40": "1321D", "N41": "1321E", "N42": "1321F", "NL5a": "13225", "NL18": "13233", "O1": "13250", "O2": "13252", "O3": "13253", "O4": "13254", "O5": "13255", "O5A": "13256", "O6": "13257", "O6A": "13258", "O6B": "13259", "O6C": "1325A", "O6D": "1325B", "O6E": "1325C", "O6F": "1325D", "O7": "1325E", "O8": "1325F", "O9": "13260", "O10": "13261", "O10A": "13262", "O10B": "13263", "O10C": "13264", "O11": "13265", "O12": "13266", "O13": "13267", "O14": "13268", "O15": "13269", "O16": "1326A", "O17": "1326B", "O18": "1326C", "O19": "1326D", "O19A": "1326E", "O20": "1326F", "O20A": "13270", "O21": "13271", "O22": "13272", "O23": "13273", "O24": "13274", "O24A": "13275", "O25": "13276", "O25A": "13277", "O26": "13278", "O27": "13279", "O28": "1327A", "O29": "1327B", "O29A": "1327C", "O30": "1327D", "O30A": "1327E", "O31": "1327F", "O32": "13280", "O33": "13281", "O33A": "13282", "O34": "13283", "O35": "13284", "O36": "13285", "O36A": "13286", "O36B": "13287", "O36C": "13288", "O36D": "13289", "O37": "1328A", "O38": "1328B", "O39": "1328C", "O40": "1328D", "O41": "1328E", "O42": "1328F", "O43": "13290", "O44": "13291", "O45": "13292", "O46": "13293", "O47": "13294", "O48": "13295", "O49": "13296", "O50": "13297", "O50A": "13298", "O50B": "13299", "O51": "1329A", "P1": "1329B", "P1A": "1329C", "P2": "1329D", "P3": "1329E", "P3A": "1329F", "P4": "132A0", "P5": "132A1", "P6": "132A2", "P7": "132A3", "P8": "132A4", "P9": "132A5", "P10": "132A6", "P11": "132A7", "Q1": "132A8", "Q2": "132A9", "Q3": "132AA", "Q4": "132AB", "Q5": "132AC", "Q6": "132AD", "Q7": "132AE", "R1": "132AF", "R2": "132B0", "R2A": "132B1", "R3": "132B2", "R3A": "132B3", "R3B": "132B4", "R4": "132B5", "R5": "132B6", "R6": "132B7", "R7": "132B8", "R8": "132B9", "R9": "132BA", "R10": "132BB", "R10A": "132BC", "R11": "132BD", "R12": "132BE", "R13": "132BF", "R14": "132C0", "R15": "132C1", "R16": "132C2", "R16A": "132C3", "R17": "132C4", "R18": "132C5", "R19": "132C6", "R20": "132C7", "R21": "132C8", "R22": "132C9", "R23": "132CA", "R24": "132CB", "R25": "132CC", "R26": "132CD", "R27": "132CE", "R28": "132CF", "R29": "132D0", "S1": "132D1", "S2": "132D2", "S2A": "132D3", "S3": "132D4", "S4": "132D5", "S5": "132D6", "S6": "132D7", "S6A": "132D8", "S7": "132D9", "S8": "132DA", "S9": "132DB", "S10": "132DC", "S11": "132DD", "S12": "132DE", "S13": "132DF", "S14": "132E0", "S14A": "132E1", "S14B": "132E2", "S15": "132E3", "S16": "132E4", "S17": "132E5", "S17A": "132E6", "S18": "132E7", "S19": "132E8", "S20": "132E9", "S21": "132EA", "S22": "132EB", "S23": "132EC", "S24": "132ED", "S25": "132EE", "S26": "132EF", "S26A": "132F0", "S26B": "132F1", "S27": "132F2", "S28": "132F3", "S29": "132F4", "S30": "132F5", "S31": "132F6", "S32": "132F7", "S33": "132F8", "S34": "132F9", "S35": "132FA", "S35A": "132FB", "S36": "132FC", "S37": "132FD", "S38": "132FE", "S39": "132FF", "S40": "13300", "S41": "13301", "S42": "13302", "S43": "13303", "S44": "13304", "S45": "13305", "S46": "13306", "T1": "13307", "T2": "13308", "T3": "13309", "T3A": "1330A", "T4": "1330B", "T5": "1330C", "T6": "1330D", "T7": "1330E", "T7A": "1330F", "T8": "13310", "T8A": "13311", "T9": "13312", "T9A": "13313", "T10": "13314", "T11": "13315", "T11A": "13316", "T12": "13317", "T13": "13318", "T14": "13319", "T15": "1331A", "T16": "1331B", "T16A": "1331C", "T17": "1331D", "T18": "1331E", "T19": "1331F", "T20": "13320", "T21": "13321", "T22": "13322", "T23": "13323", "T24": "13324", "T25": "13325", "T26": "13326", "T27": "13327", "T28": "13328", "T29": "13329", "T30": "1332A", "T31": "1332B", "T32": "1332C", "T32A": "1332D", "T33": "1332E", "T33A": "1332F", "T34": "13330", "T35": "13331", "T36": "13332", "U1": "13333", "U2": "13334", "U3": "13335", "U4": "13336", "U5": "13337", "U6": "13338", "U6A": "13339", "U6B": "1333A", "U7": "1333B", "U8": "1333C", "U9": "1333D", "U10": "1333E", "U11": "1333F", "U12": "13340", "U13": "13341", "U14": "13342", "U15": "13343", "U16": "13344", "U17": "13345", "U18": "13346", "U19": "13347", "U20": "13348", "U21": "13349", "U22": "1334A", "U23": "1334B", "U23A": "1334C", "U24": "1334D", "U25": "1334E", "U26": "1334F", "U27": "13350", "U28": "13351", "U29": "13352", "U29A": "13353", "U30": "13354", "U31": "13355", "U32": "13356", "U32A": "13357", "U33": "13358", "U34": "13359", "U35": "1335A", "U36": "1335B", "U37": "1335C", "U38": "1335D", "U39": "1335E", "U40": "1335F", "U41": "13360", "U42": "13361", "V1": "13362", "V1A": "13363", "V1B": "13364", "V1C": "13365", "V1D": "13366", "V1E": "13367", "V1F": "13368", "V1G": "13369", "V1H": "1336A", "V1I": "1336B", "V2": "1336C", "V2A": "1336D", "V3": "1336E", "V4": "1336F", "V5": "13370", "V6": "13371", "V7": "13372", "V7A": "13373", "V7B": "13374", "V8": "13375", "V9": "13376", "V10": "13377", "V11": "13378", "V11A": "13379", "V11B": "1337A", "V11C": "1337B", "V12": "1337C", "V12A": "1337D", "V12B": "1337E", "V13": "1337F", "V14": "13380", "V15": "13381", "V16": "13382", "V17": "13383", "V18": "13384", "V19": "13385", "V20": "13386", "V20A": "13387", "V20B": "13388", "V20C": "13389", "V20D": "1338A", "V20E": "1338B", "V20F": "1338C", "V20G": "1338D", "V20H": "1338E", "V20I": "1338F", "V20J": "13390", "V20K": "13391", "V20L": "13392", "V21": "13393", "V22": "13394", "V23": "13395", "V23A": "13396", "V24": "13397", "V25": "13398", "V26": "13399", "V27": "1339A", "V28": "1339B", "V28A": "1339C", "V29": "1339D", "V29A": "1339E", "V30": "1339F", "V30A": "133A0", "V31": "133A1", "V31A": "133A2", "V32": "133A3", "V33": "133A4", "V33A": "133A5", "V34": "133A6", "V35": "133A7", "V36": "133A8", "V37": "133A9", "V37A": "133AA", "V38": "133AB", "V39": "133AC", "V40": "133AD", "V40A": "133AE", "W1": "133AF", "W2": "133B0", "W3": "133B1", "W3A": "133B2", "W4": "133B3", "W5": "133B4", "W6": "133B5", "W7": "133B6", "W8": "133B7", "W9": "133B8", "W9A": "133B9", "W10": "133BA", "W10A": "133BB", "W11": "133BC", "W12": "133BD", "W13": "133BE", "W14": "133BF", "W14A": "133C0", "W15": "133C1", "W16": "133C2", "W17": "133C3", "W17A": "133C4", "W18": "133C5", "W18A": "133C6", "W19": "133C7", "W20": "133C8", "W21": "133C9", "W22": "133CA", "W23": "133CB", "W24": "133CC", "W24A": "133CD", "W25": "133CE", "X1": "133CF", "X2": "133D0", "X3": "133D1", "X4": "133D2", "X4A": "133D3", "X4B": "133D4", "X5": "133D5", "X6": "133D6", "X6A": "133D7", "X7": "133D8", "X8": "133D9", "X8A": "133DA", "Y1": "133DB", "Y1A": "133DC", "Y2": "133DD", "Y3": "133DE", "Y4": "133DF", "Y5": "133E0", "Y6": "133E1", "Y7": "133E2", "Y8": "133E3", "Z1": "133E4", "Z2": "133E5", "Z2A": "133E6", "Z2B": "133E7", "Z2C": "133E8", "Z2D": "133E9", "Z3": "133EA", "Z3A": "133EB", "Z3B": "133EC", "Z4": "133ED", "Z4A": "133EE", "Z5": "133EF", "Z5A": "133F0", "Z6": "133F1", "Z7": "133F2", "Z8": "133F3", "Z9": "133F4", "Z10": "133F5", "Z11": "133F6", "Z12": "133F7", "Z13": "133F8", "Z14": "133F9", "Z15": "133FA", "Z15A": "133FB", "Z15B": "133FC", "Z15C": "133FD", "Z15D": "133FE", "Z15E": "133FF", "Z15F": "13400", "Z15G": "13401", "Z15H": "13402", "Z15I": "13403", "Z16": "13404", "Z16A": "13405", "Z16B": "13406", "Z16C": "13407", "Z16D": "13408", "Z16E": "13409", "Z16F": "1340A", "Z16G": "1340B", "Z16H": "1340C", "Aa1": "1340D", "Aa2": "1340E", "Aa3": "1340F", "Aa4": "13410", "Aa5": "13411", "Aa6": "13412", "Aa7": "13413", "Aa7A": "13414", "Aa7B": "13415", "Aa8": "13416", "Aa9": "13417", "Aa10": "13418", "Aa11": "13419", "Aa12": "1341A", "Aa13": "1341B", "Aa14": "1341C", "Aa15": "1341D", "Aa16": "1341E", "Aa17": "1341F", "Aa18": "13420", "Aa19": "13421", "Aa20": "13422", "Aa21": "13423", "Aa22": "13424", "Aa23": "13425", "Aa24": "13426", "Aa25": "13427", "Aa26": "13428", "Aa27": "13429", "Aa28": "1342A", "Aa29": "1342B", "Aa30": "1342C", "Aa31": "1342D", "Aa32": "1342E" };
function display(options) {
document.body.appendChild(svgsrc);
if ( !options ) { options = {}; }
if ( options['svgurl'] ) {
svgbase = options['svgurl'];
};
if ( options['lineheight'] ) {
lineheight = parseFloat(options['lineheight']);
spacing = lineheight * 0.12;
};
if ( options['class'] ) {
mdcclass = options['class'];
};
if ( options['attr'] ) {
mdcatt = options['attr'];
};
if ( "unicode" in options ) {
if ( debug ) { console.log('Disabled Unicode'); };
useunicode = options['unicode'];
};
if ( "css" in options ) {
cssurl = options['css'];
csslink = "<link href=\""+cssurl+"\" type=\"text/css\" rel=\"stylesheet\" xmlns=\"http://www.w3.org/1999/xhtml\"/>";
gsvgtxt = "<svg xmlns=\"http://www.w3.org/2000/svg\" maxw=\""+(lineheight/2)+"\">"+csslink+"</svg>";
gsvgxml = addsvgxml(gsvgtxt, 'stylesheet');
if ( debug ) { console.log('Using CSS file from: ' + cssurl); };
};
if ( options['debug'] ) {
debug = true;
};
// Create an SVG for each token-glyph
elms = document.getElementsByClassName(mdcclass);
for (let i = 0; i < elms.length; i++) {
elm = elms[i];
makeglyph(elm, mdcatt);
}
// Create an SVG for gardiner number via Ajax
startAjaxCalls(Object.keys(toloads))
.then(function(results) {
positionsvgs();
})
.catch(function(error) {
console.error('Error:', error); // This should not happen
});
};
function makeglyph(elm, att) {
gard = elm.getAttribute(att);
newsvg = makesvg(gard);
newsvg.setAttribute('id', 'glyph-'+(gnrcnt+1));
gnrcnt++;
elm.appendChild(newsvg);
};
function positionsvgs() {
// Once loaded, put the elements of the glyphs in their proper position
elms = document.getElementsByClassName(mdcclass);
for (let i = 0; i < elms.length; i++) {
elm = elms[i];
svg = elm.getElementsByTagName('svg')[0];
poschilds(svg);
};
// Fully hide the SVG placeholder
if ( debug ) { svgsrc.style.opacity = 1; } else { svgsrc.style.display = "none"; };
};
function poschilds(svg) {
// Position the children within a group
var mdc = svg.getAttribute('mdc');
var cdir = svg.getAttribute('dir');
// cdir = "hor";
var children = svg.childNodes;
var lines = children.length;
var trx = 0;
var trv = 0; // try is taken
var clh = lineheight; // carat height
if ( cdir == "vrt" ) {
clh = lineheight/lines;
};
var maxw = spacing; // try is taken
for ( var i=0; i<children.length; i++ ) {
var child = children[i];
// Set the carat size to lineheight as a default
var chh = clh;
var chw = clh/lines;
var ratio = 1;
var moretrans = "";
if ( child.nodeName == 'g' ) {
// A group (horizontal/vertical)
ratio = (chh/lineheight)*0.95; // divide by number of rows with spacing
poschilds(child);
chw = parseFloat(child.getAttribute('chw').replace('px', '')) * ratio;
chh = parseFloat(child.getAttribute('chh').replace('px', '')) * ratio;
} else {
// A sign
gard = child.getAttribute('href').substr(1);
gardnr = child.getAttribute('mdc');
gardorg = document.getElementById(gard);
if ( gardorg ) {
gardnr = gardorg.getAttribute('mdc');
bbox = gardorg.getBoundingClientRect();
} else {
bbox = child.getBoundingClientRect();
};
ratio = (chh/bbox.height);
maxcw = clh;
if ( gardorg && gardorg.getAttribute('maxw') ) { maxcw = gardorg.getAttribute('maxw'); };
if( bbox.width*ratio > maxcw ) {
ratio = maxcw/bbox.width;
};
if ( ratio == 0 || !isFinite(ratio) ) {
ratio = 1;
};
chh = bbox.height*ratio;
chw = bbox.width*ratio;
}
if ( cdir == 'vrt' ) {
transform = 'translate('+trx+', '+trv+') scale('+(ratio)+')';
trv = trv + clh + spacing/lines;
if ( chw > maxw ) { maxw = chw; };
} else {
transform = 'translate('+trx+', '+trv+') scale('+(ratio)+')' + moretrans;
trx = trx + chw + spacing;
};
child.setAttribute('transform', transform);
child.setAttribute('chw', chw + "px");
child.setAttribute('chh', chh + "px");
};
if ( cdir == 'vrt' ) {
trx = trx + maxw + spacing;
};
svg.setAttribute("chw", ( trx - spacing ) + "px");
svg.setAttribute("chh", lineheight + 'px');
if ( svg.nodeName == 'svg') {
svg.setAttribute("width", ( trx ) + "px");
svg.setAttribute("height", lineheight + 'px');
};
};
function mdcparse(mdc) {
if ( mdc.includes('-') ) {
var parts = mdc.split('-');
var parse = [];
for ( var j=0; j<parts.length; j++ ) {
parse.push(mdcparse(parts[j]));
};
return {'type': 'hor', 'mdc': mdc, 'elms': parse};
} else if ( mdc.includes(':') ) {
var parts = mdc.split(':');
var parse = [];
for ( var j=0; j<parts.length; j++ ) {
parse.push(mdcparse(parts[j]));
};
return {'type': 'vrt', 'mdc': mdc, 'elms': parse};
} else if ( mdc.includes('*') ) {
var parts = mdc.split('*');
var parse = [];
for ( var j=0; j<parts.length; j++ ) {
parse.push(mdcparse(parts[j]));
};
return {'type': 'hor', 'mdc': mdc, 'elms': parse};
} else {
var basesign = mdc; var signtrans = "";
var sign = {'type': 'sign', 'mdc': mdc, 'sign': mdc, 'basesign': basesign};
if ( tmp = mdc.match(/(.*)([\\#].*)/) ) {
basesign = tmp[1]; signtrans = tmp[2];
sign['basesign'] = basesign;
};
if ( phon2gard[basesign] ) {
sign['sign'] = phon2gard[basesign] + signtrans;
sign['basesign'] = phon2gard[basesign];
};
if ( signtrans ) {
sign['mdctrans'] = signtrans;
};
if ( mdc.substr(-1) == "\\") {
sign['mdc'] = mdc.slice(0,-1);
sign['transform'] = 'mirror';
};
return sign;
};
return {};
};
function makesvg(mdc) {
parse = mdcparse(mdc);
newsvg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
newsvg.appendChild(makegrp(parse));
newsvg.setAttribute('mdc', mdc);
return newsvg;
};
function makegrp(parse) {
if ( parse['type'] == 'sign' ) {
var gard = parse['sign'];
var basegard = gard;
if ( parse['basesign'] ) { basegard = parse['basesign']; };
if ( gard2hex[basegard] && useunicode ) {
if ( !gardlist[basegard] ) {
unicode = "&#x"+gard2hex[basegard]+";";
gsvgtxt = "<svg xmlns=\"http://www.w3.org/2000/svg\" maxw=\""+(lineheight/2)+"\"><text y=\""+(textheight)+"px\" class=\"sign\" font-size=\""+textheight+"px\">"+unicode+"</text></svg>";
gardlist[basegard] = addsvgxml(gsvgtxt, "gnr-"+basegard);
};
if ( basegard != gard && !gardlist[gard] ) {
var tract = "";
if ( parse['mdctrans'] == "\\" ) {
bbox = gardlist[basegard].getBoundingClientRect();
tract = "scale(-1 1) translate(-"+bbox.width+" 0)";
} else if ( parse['mdctrans'] == "\\r2") {
// if ( gardnr.substr(-1) == "1" ) { count = 90; };
count = 180;
bbox = gardlist[basegard].getBoundingClientRect();
tract = "rotate("+count+" "+(bbox.width/2)+" "+(bbox.height/2)+")";
};
gsvgtxt = "<svg xmlns=\"http://www.w3.org/2000/svg\" maxw=\""+(lineheight/2)+"\"><use transform=\""+tract+"\" href=\"#gnr-"+basegard+"\"/></svg>";
gardlist[gard] = addsvgxml(gsvgtxt, "gnr-"+gard);
};
} else {
// defer to load SVG via Ajax
toloads[gard] = 1;
}
var sign = document.createElementNS('http://www.w3.org/2000/svg', 'use');
sign.setAttribute('href', "#gnr-"+gard);
return sign;
} else {
var group = document.createElementNS('http://www.w3.org/2000/svg', 'g');
group.setAttribute('dir', parse['type']);
group.setAttribute('mdc', parse['mdc']);
for ( var j=0; j<parse['elms'].length; j++ ) {
part = parse['elms'][j];
partsvg = makegrp(part);
group.appendChild(partsvg);
};
return group;
};
return -1;
};
function makeAjaxCall(gardnr) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
var maingard = gardnr;
var transform = "";
var phonnr = "";
if ( gardnr.substr(-1) == "\\" ) {
maingard = gardnr.slice(0,-1);
transform = "mirror";
} else if ( gardnr.substr(-3,2) == "\\r") {
maingard = gardnr.slice(0,-3);
transform = "rotate";
if ( gardnr.substr(-1) == "1" ) { count = 90; };
if ( gardnr.substr(-1) == "2" ) { count = 180; };
if ( gardnr.substr(-1) == "3" ) { count = 270; };
};
surl = svgbase + maingard + '.svg';
xhr.open('GET', surl, true);
xhr.onload = function() {
if (xhr.status >= 200 && xhr.status < 300) {
gsvgxml = this.responseXML.documentElement;
// gsvgxml.setAttribute('xmlns', "http://www.w3.org/2000/svg");
if ( gsvgxml.getAttribute('xmlns') != "http://www.w3.org/2000/svg") {
gsvgtxt = this.responseText.replace('<svg ', '<svg xmlns="http://www.w3.org/2000/svg" ');
parser = new DOMParser();
gsvgxml = parser.parseFromString(gsvgtxt, "text/xml").firstChild; //important to use "text/xml"
};
gsvgxml.setAttribute('id', 'gnr-'+maingard);
gsvgxml.setAttribute('mdc', gardnr);
gardlist[gardnr] = gsvgxml;
svgsrc.appendChild(gsvgxml);
bbox = gsvgxml.getBoundingClientRect();
if ( !svgsrc.getAttribute('width') && bbox.width > 0 ) {
gsvgxml.setAttribute("width", bbox.width + "px");
};
if ( gardnr != maingard ) {
// Generate a copy of a base glyph with a translation on it (rotate, mirror)
var tract = "";
if ( transform == "mirror" ) {
tract = "scale(-1 1) translate(-"+bbox.width+" 0)";
};
if ( transform == "rotate" ) {
tract = "rotate("+count+" "+(bbox.width/2)+" "+(bbox.height/2)+")";
};
tsvgtxt = "<svg xmlns=\"http://www.w3.org/2000/svg\"><use transform=\""+tract+"\"/></svg>";
parser = new DOMParser();
tsvgxml = parser.parseFromString(tsvgtxt, "text/xml").firstChild; //important to use "text/xml"
tsvgxml.firstChild.setAttribute('href', "#gnr-"+maingard);
tsvgxml.setAttribute('width', bbox.width);
tsvgxml.setAttribute('height', bbox.height);
svgsrc.appendChild(tsvgxml);
tsvgxml.setAttribute('id', 'gnr-'+gardnr);
};
resolve(xhr.responseText);
} else {
makeunknownsvg(gardnr);
resolve(xhr.responseText); // We do not need to know which ones went wrong
// reject(xhr.statusText);
}
};
xhr.onerror = function() {
makeunknownsvg(gardnr);
resolve(xhr.responseText); // We do not need to know which ones went wrong
// reject(xhr.statusText);
};
xhr.send();
});
};
function showgly(params) {
divid = "glydiv";
var gly = "";
if ( params['div'] ) { divid = params['div']; };
if ( params['gly'] ) { gly = params['gly']; };
glydiv = document.getElementById('glydiv');
if ( !glydiv ) {
glydiv = document.createElement('div');
glydiv.setAttribute("id", "glydiv");
document.body.appendChild(glydiv);
};
if ( !gly || gly == "" ) { gly = glydiv.innerHTML.replace("<br>", "\n"); };
glyhtml = "";
glylines = gly.split("\n") ;
for ( var i=0; i<glylines.length; i++ ) {
glyline = glylines[i];
glyhtml += "\n" + gly2html(glyline);
};
console.log(glyhtml);
glydiv.innerHTML = glyhtml;
display(params);
};
styles = { "b": "font-weight: bold" }
function gly2html(gly) {
if ( !gly || gly == "" ) { return ""; };
if ( gly.substr(0,2) == "++" ) { return "<!-- " + gly + " -->"; }
if ( tmp = gly.match(/^(.*)\+([tlbigc])([^+]+)\+s(.*)$/) ) {
var front = tmp[1];
var type = tmp[2];
var text = tmp[3];
var back = tmp[4];
return gly2html(front) + "<span style='"+styles[type]+"'>" + text + "</span>" + gly2html(back);
};
if ( tmp = gly.match(/^(.*)\$r([^\$]+)\$b(.*)$/) ) {
var front = tmp[1];
var text = tmp[2];
var back = tmp[3];
return gly2html(front) + "<span style='color: red'>" + text + "</span>" + gly2html(back);
};
if ( tmp = gly.match(/^(.*)#b([^\$]+)#e(.*)$/) ) {
var front = tmp[1];
var shades = tmp[2];
var back = tmp[3];
return gly2html(front) + "<span class='shaded'>" + gly2html(shades) + "</span>" + gly2html(back);
};
if ( tmp = gly.match(/^(.*)\[\[([^\$]+)\]\](.*)$/) ) {
var front = tmp[1];
var shades = tmp[2];
var back = tmp[3];
return gly2html(front) + "<span class='deleted'>" + gly2html(shades) + "</span>" + gly2html(back);
};
if ( tmp = gly.match(/^(.*)\['([^\$]+)'\](.*)$/) ) {
var front = tmp[1];
var shades = tmp[2];
var back = tmp[3];
return gly2html(front) + "<span class='added'>" + gly2html(shades) + "</span>" + gly2html(back);
};
if ( tmp = gly.match(/^(.*)\["([^\$]+)"\](.*)$/) ) {
var front = tmp[1];
var shades = tmp[2];
var back = tmp[3];
return gly2html(front) + "<span class='supplied'>" + gly2html(shades) + "</span>" + gly2html(back);
};
// Everything that is left is a sign
var signs = gly.split("-");
var glyhtml = "";
for ( var i=0; i<signs.length; i++ ) {
sign = signs[i];
if ( sign == "!" ) {
signhtml = "<br>";
} else if ( sign == "!!" ) {
signhtml = "<hr>";
} else if ( sign == "." ) {
signhtml = " ";
} else if ( sign == ".." ) {
signhtml = " ";
} else if ( tmp = sign.match(/\|(\d+)/) ) {
signhtml = "<span class='linenumber'>"+tmp[1]+"</span>";
} else {
signhtml = "<span class='token-glyphs' title=\""+sign+"\"></span>";
};
glyhtml += signhtml;
};
return glyhtml;
};
function makeunknownsvg(gardnr) {
gsvgtxt = "<svg xmlns=\"http://www.w3.org/2000/svg\" maxw=\""+(lineheight/2)+"\"><text class=\"unknown\" y=\""+(textheight)+"px\" font-size=\""+textheight+"px\">"+gardnr+"</text></svg>";
gsvgxml = addsvgxml(gsvgtxt, 'gnr-'+gardnr);
gsvgxml.setAttribute('mdc', gardnr);
gardlist[gardnr] = gsvgxml;
return gsvgxml;
};
function addsvgxml (xmltxt, id) {
tmp = document.getElementById(id);
if ( tmp ) { return tmp; };
parser = new DOMParser();
gsvgxml = parser.parseFromString(xmltxt, "text/xml").firstChild; //important to use "text/xml"
gsvgxml.setAttribute('id', id);
gsvgxml.setAttribute('title', id);
svgsrc.appendChild(gsvgxml);
bbox = gsvgxml.firstChild.getBoundingClientRect();
gsvgxml.setAttribute("width", bbox.width + "px");
gsvgxml.setAttribute("height", bbox.height + 'px');
if ( debug ) { console.log(gsvgxml); };
return gsvgxml;
};
function startAjaxCalls(gardlist) {
var promises = [];
// Create an array of promises for each Ajax call
gardlist.forEach(function(gard) {
if ( gardlist[gard] || pushed[gard] ) { console.log('already loaded ' + gard); return; }
pushed[gard] = 1;
promises.push(makeAjaxCall(gard));
});
// Use Promise.all to wait for all promises to resolve
return Promise.all(promises);
}
return {
draw: function(params) { display(params); },
parse: function(params) { showgly(params); },
};
}());