UNPKG

bliss-svg-builder

Version:

Generates SVG code for Bliss (Blissymbolics) text using a Domain-Specific Language.

5,729 lines 195 kB
var __accessCheck = (obj, member, msg) => {
  if (!member.has(obj))
    throw TypeError("Cannot " + msg);
};
var __privateGet = (obj, member, getter) => {
  __accessCheck(obj, member, "read from private field");
  return getter ? getter.call(obj) : member.get(obj);
};
var __privateAdd = (obj, member, value) => {
  if (member.has(obj))
    throw TypeError("Cannot add the same private member more than once");
  member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
};
var __privateSet = (obj, member, value, setter) => {
  __accessCheck(obj, member, "write to private field");
  setter ? setter.call(obj, value) : member.set(obj, value);
  return value;
};
var __privateMethod = (obj, member, method) => {
  __accessCheck(obj, member, "access private method");
  return method;
};
(function(global, factory) {
  typeof exports === "object" && typeof module !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.BlissSVGBuilder = {}));
})(this, function(exports2) {
  var _setupEscapeMaps, setupEscapeMaps_fn, _parseOptions, parseOptions_fn, _fromStream, fromStream_fn, _toString, toString_fn, _toObject, toObject_fn, _toStream, toStream_fn, _level, _extraPathOptions, _isCharacter, _isAtomic, _isIndicator, _isExternalGlyph, _width, _height, _children, _relativeToRootX, _relativeToParentX, _relativeToParentY, _codeName, _charSpacing, _wordSpacing, _sentenceSpacing, _punctuationSpacing, _initExplicitElement, initExplicitElement_fn, _initImplicitElement, initImplicitElement_fn, _svgCode, svgCode_get;
  "use strict";
  const alphabetData = {
    // e[X]ternal glyphs (i.e. letters and other non-bliss characters), currently supporting a-z, A-Z, åäö, ÅÄÖ.
    "Xa": {
      getPath: () => {
        return `M1.1633399724960327,16.04509925842285q-0.45802998542785645,0,-0.6884499788284302,-0.24165916442871094t-0.23041999340057373,-0.6631603240966797q0,-0.4720802307128906,0.3105049729347229,-0.7249794006347656t1.0017650723457336,-0.2697601318359375l0.6828298568725586,-0.011240005493164062l0,-0.16579055786132812q0,-0.37091922760009766,-0.15735983848571777,-0.5310897827148438t-0.4945601224899292,-0.1601696014404297q-0.3400099277496338,0,-0.4945598840713501,0.11520957946777344t-0.18546003103256226,0.36810970306396484l-0.5282800197601318,-0.04776954650878906q0.12926000356674194,-0.8205204010009766,1.2195399403572083,-0.8205204010009766q0.5732401609420776,0,0.8626700639724731,0.26273536682128906t0.2894299030303955,0.7601051330566406l0,1.3094596862792969q0,0.22480010986328125,0.05901002883911133,0.3386049270629883t0.22480010986328125,0.11380481719970703q0.0730600357055664,0,0.16578984260559082,-0.019669532775878906l0,0.31472015380859375q-0.19107985496520996,0.04496002197265625,-0.39058995246887207,0.04496002197265625q-0.28099989891052246,0,-0.40885496139526367,-0.14752483367919922t-0.1447150707244873,-0.46224498748779297l-0.016860008239746094,0q-0.19388985633850098,0.34843921661376953,-0.45100486278533936,0.49315452575683594t-0.6252250671386719,0.14471435546875ZM1.2785500288009644,15.665749549865723q0.278190016746521,0,0.49456000328063965,-0.1264495849609375t0.34141504764556885,-0.34703540802001953t0.1250448226928711,-0.4538145065307617l0,-0.2500896453857422l-0.5535699129104614,0.011240005493164062q-0.3568699359893799,0.005620002746582031,-0.5409250259399414,0.0730600357055664t-0.28240495920181274,0.20793914794921875t-0.09834998846054077,0.36811065673828125q0,0.24728012084960938,0.13347500562667847,0.3821601867675781t0.3807550072669983,0.13487911224365234Z`;
      },
      width: 1139 / 356 - 0.2,
      //deduct 0.2 to narrow down right boundery, to make external glyphs exceed boundaries more similar to normal bliss characters
      glyph: "a"
    },
    "Xb": {
      getPath: () => {
        return `M2.958930015563965,14.45464038848877q0,1.590458869934082,-1.118380069732666,1.590458869934082q-0.3456299304962158,0,-0.574644923210144,-0.1250438690185547t-0.37232500314712524,-0.40323543548583984l-0.005620002746582031,0q0,0.08711051940917969,-0.011240005493164062,0.2655448913574219t-0.016860008239746094,0.20653533935546875l-0.4889400005340576,0q0.016860008239746094,-0.15174007415771484,0.016860008239746094,-0.6266298294067383l0,-3.543410301208496l0.5058000087738037,0l0,1.1886301040649414q0,0.1826496124267578,-0.011240005493164062,0.4299297332763672l0.011240005493164062,0q0.140500009059906,-0.2922401428222656,0.37232500314712524,-0.4186897277832031t0.574644923210144,-0.1264505386352539q0.5760500431060791,0,0.847214937210083,0.38778018951416016t0.271165132522583,1.1745805740356445ZM2.427839994430542,14.471500396728516q0,-0.6378707885742188,-0.16860008239746094,-0.9132499694824219t-0.5479499101638794,-0.27538013458251953q-0.4271199703216553,0,-0.6224149465560913,0.2922401428222656t-0.1952950358390808,0.9272994995117188q0,0.5985298156738281,0.1910800337791443,0.8837451934814453t0.6210099458694458,0.2852144241333008q0.3821600675582886,0,0.5521649122238159,-0.28240489959716797t0.17000508308410645,-0.9174642562866211Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "b"
    },
    "Xc": {
      getPath: () => {
        return `M0.7727500200271606,14.45464038848877q0,0.606959342956543,0.1910799741744995,0.8991994857788086t0.5760500431060791,0.2922401428222656q0.26976001262664795,0,0.4510049819946289,-0.1461200714111328t0.22339487075805664,-0.4496002197265625l0.5114200115203857,0.03372001647949219q-0.05900979042053223,0.43836021423339844,-0.373729944229126,0.6996898651123047t-0.7980399131774902,0.26132965087890625q-0.6378700733184814,0,-0.9736650586128235,-0.40323448181152344t-0.33579498529434204,-1.1759843826293945q0,-0.7671308517456055,0.33719998598098755,-1.170365333557129t0.966640055179596,-0.40323543548583984q0.4664599895477295,0,0.7741549015045166,0.24166011810302734t0.38637495040893555,0.6659698486328125l-0.5198497772216797,0.03934001922607422q-0.03934001922607422,-0.252899169921875,-0.1995100975036621,-0.40182971954345703t-0.45521998405456543,-0.14892959594726562q-0.4018300771713257,0,-0.5816700458526611,0.2669496536254883t-0.17983996868133545,0.899200439453125Z`;
      },
      width: 1024 / 356 - 0.2,
      glyph: "c"
    },
    "Xd": {
      getPath: () => {
        return `M2.3070099353790283,15.499959945678711q-0.14049983024597168,0.2922401428222656,-0.37232494354248047,0.4186897277832031t-0.5746450424194336,0.1264495849609375q-0.5760499238967896,0,-0.847214937210083,-0.38777923583984375t-0.27116501331329346,-1.1745796203613281q0,-1.5904607772827148,1.1183799505233765,-1.5904607772827148q0.34563004970550537,0,0.5760500431060791,0.1264505386352539t0.37091994285583496,0.40182971954345703l0.005620002746582031,0l-0.005620002746582031,-0.3400096893310547l0,-1.2616901397705078l0.5058000087738037,0l0,3.543410301208496q0,0.47488975524902344,0.016860008239746094,0.6266298294067383l-0.4833199977874756,0q-0.008430004119873047,-0.04496002197265625,-0.0182650089263916,-0.20794010162353516t-0.009835004806518555,-0.28100013732910156l-0.011240005493164062,0ZM0.7727500200271606,14.465880393981934q0,0.6378698348999023,0.1685999631881714,0.9132499694824219t0.547950029373169,0.2753791809082031q0.4299299716949463,0,0.6238200664520264,-0.29785919189453125t0.19388985633850098,-0.9244899749755859q0,-0.6041507720947266,-0.19388985633850098,-0.8851499557495117t-0.6182000637054443,-0.28100013732910156q-0.3821600675582886,0,-0.5521650314331055,0.28240489959716797t-0.1700049638748169,0.9174652099609375Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "d"
    },
    "Xe": {
      getPath: () => {
        return `M0.7755600214004517,14.575469970703125q0,0.5226602554321289,0.21636998653411865,0.8064699172973633t0.6322499513626099,0.2838096618652344q0.3287700414657593,0,0.5268751382827759,-0.13206958770751953t0.2683548927307129,-0.33438968658447266l0.44397997856140137,0.1264495849609375q-0.2725698947906494,0.7193593978881836,-1.2392100095748901,0.7193593978881836q-0.6743999719619751,0,-1.0270549654960632,-0.40182971954345703t-0.35265499353408813,-1.194249153137207q0,-0.7530803680419922,0.35265499353408813,-1.1549100875854492t1.0073849558830261,-0.40183067321777344q1.3403700590133667,0,1.3403700590133667,1.6157503128051758l0,0.06744003295898438l-2.169319987297058,0ZM2.42221999168396,14.187689781188965q-0.042150020599365234,-0.48050975799560547,-0.24446988105773926,-0.7010946273803711t-0.5816701650619507,-0.22058486938476562q-0.36810994148254395,0,-0.5830749273300171,0.24587440490722656t-0.23182499408721924,0.6758050918579102l1.6410399675369263,0Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "e"
    },
    "Xf": {
      getPath: () => {
        return `M1.0144100189208984,13.316590309143066l0,2.6723098754882812l-0.5058000087738037,0l0,-2.6723098754882812l-0.42712000757455826,0l0,-0.36811065673828125l0.42712000757455826,0l0,-0.3428192138671875q0,-0.4158802032470703,0.18264997005462646,-0.5985307693481445t0.559190034866333,-0.1826496124267578q0.21074998378753662,0,0.3568699359893799,0.03372001647949219l0,0.38496971130371094q-0.12644994258880615,-0.022480010986328125,-0.2247999906539917,-0.022480010986328125q-0.19388997554779053,0,-0.281000018119812,0.09835052490234375t-0.08710992336273193,0.3568696975708008l0,0.2725696563720703l0.5929099321365356,0l0,0.36811065673828125l-0.5929099321365356,0Z`;
      },
      width: 569 / 356 - 0.2,
      glyph: "f",
      kerningRules: {
        "f": 37 / 356
      }
    },
    "Xg": {
      getPath: () => {
        return `M1.5398800373077393,17.183149337768555q-0.49737000465393066,0,-0.7924200296401978,-0.19529342651367188t-0.3793500065803528,-0.5549755096435547l0.5086100101470947,-0.07306098937988281q0.050579965114593506,0.21075057983398438,0.22339493036270142,0.3245563507080078t0.4538151025772095,0.11380386352539062q0.755889892578125,0,0.755889892578125,-0.8851499557495117l0,-0.4889392852783203l-0.005620002746582031,0q-0.1433098316192627,0.2922391891479492,-0.3933999538421631,0.43976497650146484t-0.5844799280166626,0.1475238800048828q-0.559190034866333,0,-0.8219250440597534,-0.37091922760009766t-0.2627350091934204,-1.1661500930786133q0,-0.8064699172973633,0.2824050188064575,-1.1900348663330078t0.8584549427032471,-0.38356494903564453q0.32315003871917725,0,0.5605950355529785,0.14752483367919922t0.36670494079589844,0.42009544372558594l0.005620002746582031,0q0,-0.08430004119873047,0.011240005493164062,-0.2922401428222656t0.022480010986328125,-0.22761058807373047l0.48050999641418457,0q-0.016860008239746094,0.15174007415771484,-0.016860008239746094,0.6294403076171875l0,2.3238697052001953q0,1.2813596725463867,-1.2729299068450928,1.2813596725463867ZM2.3098199367523193,14.468689918518066q0,-0.37092018127441406,-0.10116004943847656,-0.6392745971679688t-0.285214900970459,-0.4102602005004883t-0.4172849655151367,-0.1419048309326172q-0.3877800703048706,0,-0.564810037612915,0.28100013732910156t-0.17702996730804443,0.9104394912719727q0,0.6238203048706055,0.16578996181488037,0.8963899612426758t0.567620038986206,0.2725696563720703q0.23884999752044678,0,0.42430996894836426,-0.14049911499023438t0.2866199016571045,-0.40323543548583984t0.10116004943847656,-0.6252250671386719Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "g"
    },
    "Xh": {
      getPath: () => {
        return `M0.8907700181007385,13.468330383300781q0.16298002004623413,-0.29786014556884766,0.39199501276016235,-0.43695545196533203t0.5802649259567261,-0.13909530639648438q0.49456000328063965,0,0.7291951179504395,0.24587535858154297t0.2346348762512207,0.8247346878051758l0,2.026010513305664l-0.5086100101470947,0l0,-1.9276599884033203q0,-0.3203401565551758,-0.05901002883911133,-0.47629547119140625t-0.19388985633850098,-0.22901439666748047t-0.3737300634384155,-0.0730600357055664q-0.3568699359893799,0,-0.5718350410461426,0.24728012084960938t-0.21496492624282837,0.6659698486328125l0,1.7927799224853516l-0.5058000385761261,0l0,-4.170040130615234l0.5058000385761261,0l0,1.0846595764160156q0,0.17141056060791016,-0.009835004806518555,0.35406017303466797t-0.01264500617980957,0.21075057983398438l0.008430004119873047,0Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "h"
    },
    "Xi": {
      getPath: () => {
        return `M0.3849700093269348,12.302180290222168l0,-0.4833202362060547l0.5058000087738037,0l0,0.4833202362060547l-0.5058000087738037,0ZM0.3849700093269348,15.988900184631348l0,-3.0404205322265625l0.5058000087738037,0l0,3.0404205322265625l-0.5058000087738037,0Z`;
      },
      width: 455 / 356 - 0.2,
      glyph: "i"
    },
    "Xj": {
      getPath: () => {
        return `M0.3849700093269348,12.302180290222168l0,-0.4833202362060547l0.5058000087738037,0l0,0.4833202362060547l-0.5058000087738037,0ZM0.8907700181007385,16.365440368652344q0,0.4299297332763672,-0.16860002279281616,0.6238193511962891t-0.5057999938726425,0.19388961791992188q-0.21637000143527985,0,-0.35686999559402466,-0.025289535522460938l0,-0.3905906677246094l0.1742199957370758,0.0168609619140625q0.19389000535011292,0,0.27256999909877777,-0.10116004943847656t0.07868000864982605,-0.3934001922607422l0,-3.341090202331543l0.5058000087738037,0l0,3.4169607162475586Z`;
      },
      width: 455 / 356 - 0.2,
      glyph: "j"
    },
    "Xk": {
      getPath: () => {
        return `M2.2929599285125732,15.988900184631348l-1.028459906578064,-1.3881397247314453l-0.37092000246047974,0.3062896728515625l0,1.0818500518798828l-0.5058000087738037,0l0,-4.170040130615234l0.5058000087738037,0l0,2.604869842529297l1.3347498774528503,-1.475250244140625l0.5929100513458252,0l-1.233590006828308,1.306650161743164l1.2982200384140015,1.7337703704833984l-0.5929100513458252,0Z`;
      },
      width: 1024 / 356 - 0.2,
      glyph: "k"
    },
    "Xl": {
      getPath: () => {
        return `M0.38778001070022583,15.988900184631348l0,-4.170040130615234l0.5058000087738037,0l0,4.170040130615234l-0.5058000087738037,0Z`;
      },
      width: 455 / 356 - 0.2,
      glyph: "l"
    },
    "Xm": {
      getPath: () => {
        return `M2.1580801010131836,15.988900184631348l0,-1.9276599884033203q0,-0.44116973876953125,-0.12083005905151367,-0.6097698211669922t-0.43555009365081787,-0.16860008239746094q-0.3231499195098877,0,-0.5114198923110962,0.24728012084960938t-0.18827003240585327,0.6968793869018555l0,1.7618703842163086l-0.5029900372028351,0l0,-2.3913097381591797q0,-0.5310907363891602,-0.016859978437423706,-0.6491107940673828l0.47769999504089355,0q0.0028100013732910156,0.014050483703613281,0.005620002746582031,0.07587051391601562t0.007025003433227539,0.1419048309326172t0.009835004806518555,0.3020753860473633l0.008430004119873047,0q0.16298002004623413,-0.323150634765625,0.37373000383377075,-0.4496002197265625t0.5142300128936768,-0.1264505386352539q0.34563004970550537,0,0.5465449094772339,0.13769054412841797t0.27959513664245605,0.43836021423339844l0.008430004119873047,0q0.15735983848571777,-0.3062906265258789,0.3807549476623535,-0.44117069244384766t0.5409250259399414,-0.13488006591796875q0.46083998680114746,0,0.670184850692749,0.2500905990600586t0.20934486389160156,0.8205194473266602l0,2.026010513305664l-0.5001797676086426,0l0,-1.9276599884033203q0,-0.44116973876953125,-0.12083005905151367,-0.6097698211669922t-0.4355499744415283,-0.16860008239746094q-0.33157992362976074,0,-0.5156350135803223,0.24587440490722656t-0.18405485153198242,0.6982851028442383l0,1.7618703842163086l-0.5001800060272217,0Z`;
      },
      width: 1706 / 356 - 0.2,
      glyph: "m"
    },
    "Xn": {
      getPath: () => {
        return `M2.3182499408721924,15.988900184631348l0,-1.9276599884033203q0,-0.3006706237792969,-0.05901002883911133,-0.4664602279663086t-0.18826985359191895,-0.23884963989257812t-0.37935006618499756,-0.0730600357055664q-0.36529994010925293,0,-0.5760500431060791,0.2500896453857422t-0.21074992418289185,0.6940698623657227l0,1.7618703842163086l-0.5058000385761261,0l0,-2.3913097381591797q0,-0.5310907363891602,-0.016859978437423706,-0.6491107940673828l0.47769999504089355,0q0.0028100013732910156,0.014050483703613281,0.005620002746582031,0.07587051391601562t0.007025003433227539,0.1419048309326172t0.009835004806518555,0.3020753860473633l0.008430004119873047,0q0.1742200255393982,-0.31472015380859375,0.4032350182533264,-0.4453849792480469t0.569024920463562,-0.13066577911376953q0.5001800060272217,0,0.7320051193237305,0.2486858367919922t0.2318248748779297,0.8219242095947266l0,2.026010513305664l-0.5086100101470947,0Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "n"
    },
    "Xo": {
      getPath: () => {
        return `M2.958930015563965,14.465880393981934q0,0.798039436340332,-0.35124993324279785,1.188629150390625t-1.02003014087677,0.39058971405029297q-0.665969967842102,0,-1.0059799551963806,-0.40604400634765625t-0.34000998735427856,-1.1731748580932617q0,-1.5736007690429688,1.3628499507904053,-1.5736007690429688q0.6968799829483032,0,1.025650143623352,0.38356494903564453t0.3287699222564697,1.1900358200073242ZM2.427839994430542,14.465880393981934q0,-0.6294403076171875,-0.18686509132385254,-0.9146556854248047t-0.6280349493026733,-0.2852144241333008q-0.44397997856140137,0,-0.6420849561691284,0.2908344268798828t-0.19810497760772705,0.9090356826782227q0,0.6013393402099609,0.19529497623443604,0.9034147262573242t0.6139850616455078,0.3020744323730469q0.45521998405456543,0,0.6505148410797119,-0.2922391891479492t0.19529509544372559,-0.9132499694824219Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "o"
    },
    "Xp": {
      getPath: () => {
        return `M2.958930015563965,14.45464038848877q0,1.590458869934082,-1.118380069732666,1.590458869934082q-0.7024999856948853,0,-0.9441599249839783,-0.5282793045043945l-0.014050006866455078,0q0.011240005493164062,0.022480010986328125,0.011240005493164062,0.47770023345947266l0,1.188629150390625l-0.5058000087738037,0l0,-3.613658905029297q0,-0.4692707061767578,-0.016860008239746094,-0.6210107803344727l0.4889400005340576,0q0.0028100013732910156,0.011240005493164062,0.008430004119873047,0.08008575439453125t0.01264500617980957,0.21215438842773438t0.007025003433227539,0.1967000961303711l0.011240005493164062,0q0.13488000631332397,-0.28100013732910156,0.35686999559402466,-0.4116649627685547t0.5844799280166626,-0.13066482543945312q0.562000036239624,0,0.8401901721954346,0.3765401840209961t0.27818989753723145,1.1830101013183594ZM2.427839994430542,14.465880393981934q0,-0.6350603103637695,-0.17141008377075195,-0.9076299667358398t-0.5451399087905884,-0.2725706100463867q-0.3006700277328491,0,-0.470674991607666,0.1264505386352539t-0.2585200071334839,0.3948049545288086t-0.08851498365402222,0.6982851028442383q0,0.5985298156738281,0.1910800337791443,0.8823394775390625t0.6210099458694458,0.2838096618652344q0.37654006481170654,0,0.5493549108505249,-0.27678489685058594t0.17281508445739746,-0.9287042617797852Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "p"
    },
    "Xq": {
      getPath: () => {
        return `M1.3600399494171143,16.04509925842285q-0.5788599252700806,0,-0.8486199378967285,-0.39058971405029297t-0.26976001262664795,-1.171769142150879q0,-1.5904607772827148,1.1183799505233765,-1.5904607772827148q0.34563004970550537,0,0.5704300403594971,0.12223529815673828t0.376539945602417,0.40604496002197266l0.005620002746582031,0q0,-0.08430004119873047,0.011240005493164062,-0.2908344268798828t0.022480010986328125,-0.22058582305908203l0.4861299991607666,0q-0.01967000961303711,0.16579055786132812,-0.01967000961303711,0.8289499282836914l0,3.4450597763061523l-0.5058000087738037,0l0,-1.2335891723632812l0.011240005493164062,-0.46084022521972656l-0.005620002746582031,0q-0.15173983573913574,0.30066967010498047,-0.373729944229126,0.4285249710083008t-0.5788600444793701,0.1278543472290039ZM2.3070099353790283,14.432160377502441q0,-0.5929107666015625,-0.19388985633850098,-0.8795299530029297t-0.6182000637054443,-0.2866201400756836q-0.3849700689315796,0,-0.553570032119751,0.2866201400756836t-0.1685999631881714,0.9132499694824219q0,0.6378698348999023,0.1700049638748169,0.9132499694824219t0.5465450286865234,0.2753791809082031q0.4299299716949463,0,0.6238200664520264,-0.3062896728515625t0.19388985633850098,-0.9160594940185547Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "q"
    },
    "Xr": {
      getPath: () => {
        return `M0.3990199863910675,15.988900184631348l0,-2.3323001861572266q0,-0.3203401565551758,-0.016859978437423706,-0.7081203460693359l0.47769999504089355,0q0.022480010986328125,0.5170402526855469,0.022480010986328125,0.6210107803344727l0.011240005493164062,0q0.1208299994468689,-0.3905906677246094,0.2781899571418762,-0.533900260925293t0.44397997856140137,-0.143310546875q0.10116004943847656,0,0.20513010025024414,0.028100013732910156l0,0.4636507034301758q-0.10116004943847656,-0.028100013732910156,-0.26976001262664795,-0.028100013732910156q-0.3147200345993042,0,-0.48050999641418457,0.2711648941040039t-0.16579002141952515,0.7769651412963867l0,1.5848398208618164l-0.5058000385761261,0Z`;
      },
      width: 682 / 356 - 0.2,
      glyph: "r"
    },
    "Xs": {
      getPath: () => {
        return `M2.6695001125335693,15.148710250854492q0,0.4299297332763672,-0.3245551586151123,0.6631593704223633t-0.9090349674224854,0.2332296371459961q-0.5676199793815613,0,-0.8753150105476379,-0.18686389923095703t-0.4004249721765518,-0.5830755233764648l0.4467899948358536,-0.08710956573486328q0.06462997198104858,0.24446964263916016,0.26695001125335693,0.3582744598388672t0.5619999766349792,0.11380481719970703q0.3849700689315796,0,0.5634050369262695,-0.11801910400390625t0.1784350872039795,-0.35406017303466797q0,-0.179840087890625,-0.12364006042480469,-0.2922401428222656t-0.39902007579803467,-0.18546009063720703l-0.3624899387359619,-0.09554004669189453q-0.4355500340461731,-0.11240005493164062,-0.6196050643920898,-0.22058486938476562t-0.2880249619483948,-0.26273536682128906t-0.10397002100944519,-0.3793497085571289q0,-0.4158802032470703,0.2964549958705902,-0.6336545944213867t0.8640750050544739,-0.2177753448486328q0.5029900074005127,0,0.7994449138641357,0.17702960968017578t0.3751351833343506,0.5676202774047852l-0.45521998405456543,0.05620002746582031q-0.042150020599365234,-0.20232009887695312,-0.22620511054992676,-0.3105049133300781t-0.49315500259399414,-0.108184814453125q-0.34282004833221436,0,-0.5058000087738037,0.10396957397460938t-0.16297996044158936,0.31472015380859375q0,0.12926006317138672,0.0674399733543396,0.2135601043701172t0.19951003789901733,0.1433095932006836t0.5563799142837524,0.1629800796508789q0.4018300771713257,0.10116004943847656,0.5788601636886597,0.18686485290527344t0.27959489822387695,0.18967533111572266t0.15876507759094238,0.24025535583496094t0.05620002746582031,0.3105049133300781Z`;
      },
      width: 1024 / 356 - 0.2,
      glyph: "s"
    },
    "Xt": {
      getPath: () => {
        return `M1.5567400455474854,15.96642017364502q-0.25009000301361084,0.06743907928466797,-0.5114200115203857,0.06743907928466797q-0.6069600284099579,0,-0.6069600284099579,-0.6884489059448242l0,-2.028820037841797l-0.3512500077486038,0l0,-0.36811065673828125l0.37091998755931854,0l0.14893001317977905,-0.6800193786621094l0.33719998598098755,0l0,0.6800193786621094l0.562000036239624,0l0,0.36811065673828125l-0.562000036239624,0l0,1.919229507446289q0,0.21918010711669922,0.0716550350189209,0.3076953887939453t0.24868500232696533,0.08851432800292969q0.10115993022918701,0,0.2922400236129761,-0.03933906555175781l0,0.3737297058105469Z`;
      },
      width: 569 / 356 - 0.2,
      glyph: "t"
    },
    "Xu": {
      getPath: () => {
        return `M0.8823400139808655,12.948479652404785l0,1.9276599884033203q0,0.3006706237792969,0.05900996923446655,0.4664602279663086t0.1882699728012085,0.23885059356689453t0.37935006618499756,0.07305908203125q0.36529994010925293,0,0.5760500431060791,-0.2500896453857422t0.21074986457824707,-0.6940698623657227l0,-1.7618703842163086l0.5058000087738037,0l0,2.391310691833496q0,0.5310897827148438,0.016860008239746094,0.6491098403930664l-0.47769999504089355,0q-0.0028100013732910156,-0.014050483703613281,-0.005620002746582031,-0.07587051391601562t-0.007025003433227539,-0.1419048309326172t-0.009835004806518555,-0.3020744323730469l-0.008430004119873047,0q-0.17421984672546387,0.31471920013427734,-0.40323495864868164,0.4453849792480469t-0.569024920463562,0.13066387176513672q-0.5001800656318665,0,-0.7320050597190857,-0.24868392944335938t-0.23182499408721924,-0.821925163269043l0,-2.026010513305664l0.5086100101470947,0Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "u"
    },
    "Xv": {
      getPath: () => {
        return `M1.7225300073623657,15.988900184631348l-0.5985300540924072,0l-1.1043299529701471,-3.0404205322265625l0.5395199749618769,0l0.6687800288200378,1.9782400131225586q0.0365300178527832,0.11240005493164062,0.19388997554779053,0.6659708023071289l0.09835004806518555,-0.32877063751220703l0.10958993434906006,-0.33158016204833984l0.6912599802017212,-1.9838600158691406l0.5367100238800049,0Z`;
      },
      width: 1024 / 356 - 0.2,
      glyph: "v"
    },
    "Xw": {
      getPath: () => {
        return `M3.2989399433135986,15.988900184631348l-0.5872900485992432,0l-0.5310897827148438,-2.1496505737304688l-0.10116004943847656,-0.47488975524902344q-0.02529001235961914,0.1264505386352539,-0.07868003845214844,0.3638954162597656t-0.5732400417327881,2.2606449127197266l-0.5844799876213074,0l-0.851429995149374,-3.0404205322265625l0.5001800023019314,0l0.5142300128936768,2.0653505325317383q0.01967000961303711,0.06744003295898438,0.12082993984222412,0.5563802719116211l0.047770023345947266,-0.20794010162353516l0.6350600719451904,-2.413790702819824l0.5423299074172974,0l0.5310900211334229,2.0878305435180664l0.12926006317138672,0.533900260925293l0.08711004257202148,-0.3905906677246094l0.5760498046875,-2.23114013671875l0.49456024169921875,0Z`;
      },
      width: 1479 / 356 - 0.2,
      glyph: "w"
    },
    "Xx": {
      getPath: () => {
        return `M2.250809907913208,15.988900184631348l-0.8177099227905273,-1.247640609741211l-0.8233299851417542,1.247640609741211l-0.5451399981975555,0l1.0818499624729156,-1.5623598098754883l-1.0312699675559998,-1.4780607223510742l0.5591899752616882,0l0.7587000131607056,1.1830101013183594l0.7530801296234131,-1.1830101013183594l0.5648097991943359,0l-1.031269907951355,1.4724407196044922l1.0958999395370483,1.5679798126220703l-0.564810037612915,0Z`;
      },
      width: 1024 / 356 - 0.2,
      glyph: "x"
    },
    "Xy": {
      getPath: () => {
        return `M0.5367100238800049,17.183149337768555q-0.207940012216568,0,-0.348440021276474,-0.030908584594726562l0,-0.3793506622314453q0.10677999258041382,0.016859054565429688,0.23603999614715576,0.016859054565429688q0.4720800220966339,0,0.7474599778652191,-0.6940689086914062l0.047770023345947266,-0.12083053588867188l-1.205489999614656,-3.026370048522949l0.5395199721679091,0l0.6406800150871277,1.6803808212280273q0.014050006866455078,0.03933906555175781,0.03372001647949219,0.09413433074951172t0.12644994258880615,0.36670494079589844t0.11521005630493164,0.34844017028808594l0.19669997692108154,-0.5535697937011719l0.665969967842102,-1.9360904693603516l0.5339000225067139,0l-1.1689599752426147,3.0404205322265625q-0.1882699728012085,0.4861307144165039,-0.3512500524520874,0.7235746383666992t-0.3610849380493164,0.3540611267089844t-0.4481949806213379,0.11661338806152344Z`;
      },
      width: 1024 / 356 - 0.2,
      glyph: "y"
    },
    "Xz": {
      getPath: () => {
        return `M0.23322999477386475,15.988900184631348l0,-0.38496971130371094l1.7000499963760376,-2.264860153198242l-1.6045099794864655,0l0,-0.3905906677246094l2.2030400335788727,0l0,0.38497066497802734l-1.7028600573539734,2.264860153198242l1.7618700861930847,0l0,0.39058971405029297l-2.357590079307556,0Z`;
      },
      width: 1024 / 356 - 0.2,
      glyph: "z"
    },
    "Xå": {
      getPath: () => {
        return `M1.1633399724960327,16.04509925842285q-0.45802998542785645,0,-0.6884499788284302,-0.24165916442871094t-0.23041999340057373,-0.6631603240966797q0,-0.4720802307128906,0.3105049729347229,-0.7249794006347656t1.0017650723457336,-0.2697601318359375l0.6828298568725586,-0.011240005493164062l0,-0.16579055786132812q0,-0.37091922760009766,-0.15735983848571777,-0.5310897827148438t-0.4945601224899292,-0.1601696014404297q-0.3400099277496338,0,-0.4945598840713501,0.11520957946777344t-0.18546003103256226,0.36810970306396484l-0.5282800197601318,-0.04776954650878906q0.12926000356674194,-0.8205204010009766,1.2195399403572083,-0.8205204010009766q0.5732401609420776,0,0.8626700639724731,0.26273536682128906t0.2894299030303955,0.7601051330566406l0,1.3094596862792969q0,0.22480010986328125,0.05901002883911133,0.3386049270629883t0.22480010986328125,0.11380481719970703q0.0730600357055664,0,0.16578984260559082,-0.019669532775878906l0,0.31472015380859375q-0.19107985496520996,0.04496002197265625,-0.39058995246887207,0.04496002197265625q-0.28099989891052246,0,-0.40885496139526367,-0.14752483367919922t-0.1447150707244873,-0.46224498748779297l-0.016860008239746094,0q-0.19388985633850098,0.34843921661376953,-0.45100486278533936,0.49315452575683594t-0.6252250671386719,0.14471435546875ZM1.2785500288009644,15.665749549865723q0.278190016746521,0,0.49456000328063965,-0.1264495849609375t0.34141504764556885,-0.34703540802001953t0.1250448226928711,-0.4538145065307617l0,-0.2500896453857422l-0.5535699129104614,0.011240005493164062q-0.3568699359893799,0.005620002746582031,-0.5409250259399414,0.0730600357055664t-0.28240495920181274,0.20793914794921875t-0.09834998846054077,0.36811065673828125q0,0.24728012084960938,0.13347500562667847,0.3821601867675781t0.3807550072669983,0.13487911224365234ZM2.245189905166626,12.026800155639648q0,0.28100013732910156,-0.199509859085083,0.48050975799560547t-0.48050999641418457,0.1995096206665039t-0.48050999641418457,-0.1995096206665039t-0.19951003789901733,-0.48050975799560547q0,-0.2838106155395508,0.19951003789901733,-0.48050975799560547t0.48050999641418457,-0.1967000961303711q0.27818989753723145,0,0.47910499572753906,0.1981048583984375t0.20091485977172852,0.47910499572753906ZM1.9417099952697754,12.026800155639648q0,-0.15736007690429688,-0.10959005355834961,-0.2669506072998047t-0.2669498920440674,-0.1095895767211914q-0.1601700782775879,0,-0.26976001262664795,0.1095895767211914t-0.10959005355834961,0.2669506072998047q0,0.15454959869384766,0.1067800521850586,0.2697601318359375t0.27257001399993896,0.11520957946777344q0.16297996044158936,0,0.2697598934173584,-0.11380481719970703t0.1067800521850586,-0.2711648941040039Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "å"
    },
    "Xä": {
      getPath: () => {
        return `M1.1633399724960327,16.04509925842285q-0.45802998542785645,0,-0.6884499788284302,-0.24165916442871094t-0.23041999340057373,-0.6631603240966797q0,-0.4720802307128906,0.3105049729347229,-0.7249794006347656t1.0017650723457336,-0.2697601318359375l0.6828298568725586,-0.011240005493164062l0,-0.16579055786132812q0,-0.37091922760009766,-0.15735983848571777,-0.5310897827148438t-0.4945601224899292,-0.1601696014404297q-0.3400099277496338,0,-0.4945598840713501,0.11520957946777344t-0.18546003103256226,0.36810970306396484l-0.5282800197601318,-0.04776954650878906q0.12926000356674194,-0.8205204010009766,1.2195399403572083,-0.8205204010009766q0.5732401609420776,0,0.8626700639724731,0.26273536682128906t0.2894299030303955,0.7601051330566406l0,1.3094596862792969q0,0.22480010986328125,0.05901002883911133,0.3386049270629883t0.22480010986328125,0.11380481719970703q0.0730600357055664,0,0.16578984260559082,-0.019669532775878906l0,0.31472015380859375q-0.19107985496520996,0.04496002197265625,-0.39058995246887207,0.04496002197265625q-0.28099989891052246,0,-0.40885496139526367,-0.14752483367919922t-0.1447150707244873,-0.46224498748779297l-0.016860008239746094,0q-0.19388985633850098,0.34843921661376953,-0.45100486278533936,0.49315452575683594t-0.6252250671386719,0.14471435546875ZM1.2785500288009644,15.665749549865723q0.278190016746521,0,0.49456000328063965,-0.1264495849609375t0.34141504764556885,-0.34703540802001953t0.1250448226928711,-0.4538145065307617l0,-0.2500896453857422l-0.5535699129104614,0.011240005493164062q-0.3568699359893799,0.005620002746582031,-0.5409250259399414,0.0730600357055664t-0.28240495920181274,0.20793914794921875t-0.09834998846054077,0.36811065673828125q0,0.24728012084960938,0.13347500562667847,0.3821601867675781t0.3807550072669983,0.13487911224365234ZM1.8939399719238281,12.563509941101074l0,-0.5170402526855469l0.45802998542785645,0l0,0.5170402526855469l-0.45802998542785645,0ZM0.7868000268936157,12.563509941101074l0,-0.5170402526855469l0.4636499881744385,0l0,0.5170402526855469l-0.4636499881744385,0Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "ä"
    },
    "Xö": {
      getPath: () => {
        return `M2.958930015563965,14.465880393981934q0,0.798039436340332,-0.35124993324279785,1.188629150390625t-1.02003014087677,0.39058971405029297q-0.665969967842102,0,-1.0059799551963806,-0.40604400634765625t-0.34000998735427856,-1.1731748580932617q0,-1.5736007690429688,1.3628499507904053,-1.5736007690429688q0.6968799829483032,0,1.025650143623352,0.38356494903564453t0.3287699222564697,1.1900358200073242ZM2.427839994430542,14.465880393981934q0,-0.6294403076171875,-0.18686509132385254,-0.9146556854248047t-0.6280349493026733,-0.2852144241333008q-0.44397997856140137,0,-0.6420849561691284,0.2908344268798828t-0.19810497760772705,0.9090356826782227q0,0.6013393402099609,0.19529497623443604,0.9034147262573242t0.6139850616455078,0.3020744323730469q0.45521998405456543,0,0.6505148410797119,-0.2922391891479492t0.19529509544372559,-0.9132499694824219ZM1.9360899925231934,12.563509941101074l0,-0.5170402526855469l0.45802998542785645,0l0,0.5170402526855469l-0.45802998542785645,0ZM0.8289499878883362,12.563509941101074l0,-0.5170402526855469l0.46365004777908325,0l0,0.5170402526855469l-0.46365004777908325,0Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "ö"
    },
    "XA": {
      getPath: () => {
        return `M3.2792699337005615,15.988900184631348l-0.4524099826812744,-1.1577205657958984l-1.8040199279785156,0l-0.4552200436592102,1.1577205657958984l-0.5563799794763327,0l1.6157499607652426,-3.9592905044555664l0.6097699403762817,0l1.5904600620269775,3.9592905044555664l-0.547950029373169,0ZM1.9248499870300293,12.434249877929688l-0.02529001235961914,0.07868003845214844q-0.07024991512298584,0.2332296371459961,-0.2079399824142456,0.5985298156738281l-0.5058000087738037,1.301030158996582l1.4808701276779175,0l-0.5086100101470947,-1.306650161743164q-0.07868003845214844,-0.19388961791992188,-0.15736007690429688,-0.43835926055908203Z`;
      },
      width: 1366 / 356 - 0.2,
      glyph: "A",
      kerningRules: {
        "y": 37 / 356,
        "v": 37 / 356,
        "w": 37 / 356,
        "Y": 152 / 356,
        "W": 76 / 356,
        "V": 152 / 356,
        "T": 152 / 356
      }
    },
    "XB": {
      getPath: () => {
        return `M3.534980058670044,14.873330116271973q0,0.5282802581787109,-0.38496994972229004,0.821925163269043t-1.0706100463867188,0.29364490509033203l-1.6073200702667236,0l0,-3.9592905044555664l1.4387199878692627,0q1.3937599658966064,0,1.3937599658966064,0.9610204696655273q0,0.35124969482421875,-0.196699857711792,0.5901002883911133t-0.556380033493042,0.3203392028808594q0.4720799922943115,0.05620002746582031,0.7277898788452148,0.31612491607666016t0.2557101249694824,0.6561355590820312ZM2.7650399208068848,13.055259704589844q0,-0.3203401565551758,-0.21917986869812012,-0.45802974700927734t-0.6350600719451904,-0.13768959045410156l-0.9020099639892578,0l0,1.2532596588134766l0.9020099639892578,0q0.4299299716949463,0,0.642085075378418,-0.1615753173828125t0.21215486526489258,-0.49596500396728516ZM2.992650032043457,14.83117961883545q0,-0.6996898651123047,-0.9835000038146973,-0.6996898651123047l-1.0003600120544434,0l0,1.427480697631836l1.0425100326538086,0q0.49175000190734863,0,0.7165498733520508,-0.18265056610107422t0.22480010986328125,-0.545140266418457Z`;
      },
      width: 1366 / 356 - 0.2,
      glyph: "B"
    },
    "XC": {
      getPath: () => {
        return `M2.225519895553589,12.408960342407227q-0.6575398445129395,0,-1.022839903831482,0.42290496826171875t-0.3652999997138977,1.1591243743896484q0,0.7277898788452148,0.3807550072669983,1.170365333557129t1.0298649072647095,0.44257545471191406q0.8317601680755615,0,1.2504501342773438,-0.8233308792114258l0.43835997581481934,0.21918010711669922q-0.24447011947631836,0.5114202499389648,-0.6870450973510742,0.7783699035644531t-1.027055025100708,0.2669496536254883q-0.5985299348831177,0,-1.0354849100112915,-0.24868392944335938t-0.665969967842102,-0.7109298706054688t-0.2290150225162506,-1.0944957733154297q0,-0.9469699859619141,0.5114199817180634,-1.4836797714233398t1.4162399172782898,-0.5367097854614258q0.6322500705718994,0,1.0565600395202637,0.24728012084960938t0.6238200664520264,0.7334098815917969l-0.5086100101470947,0.16860008239746094q-0.13769006729125977,-0.3456306457519531,-0.44257497787475586,-0.5282802581787109t-0.7235751152038574,-0.1826496124267578Z`;
      },
      width: 1479 / 356 - 0.2,
      glyph: "C"
    },
    "XD": {
      getPath: () => {
        return `M3.8806099891662598,13.968509674072266q0,0.6125802993774414,-0.23884987831115723,1.0720157623291016t-0.6772100925445557,0.7039041519165039t-1.0116000175476074,0.24447059631347656l-1.480870008468628,0l0,-3.9592905044555664l1.3094600439071655,0q1.0059798955917358,0,1.5525249242782593,0.5043954849243164t0.5465450286865234,1.434504508972168ZM3.341089963912964,13.968509674072266q0,-0.7362194061279297,-0.40323495864868164,-1.1225948333740234t-1.1675549745559692,-0.38637447357177734l-0.7615100145339966,0l0,3.0994300842285156l0.8823399543762207,0q0.4355499744415283,0,0.7657251358032227,-0.19108009338378906t0.5072050094604492,-0.5507602691650391t0.17702984809875488,-0.8486204147338867Z`;
      },
      width: 1479 / 356 - 0.2,
      glyph: "D"
    },
    "XE": {
      getPath: () => {
        return `M0.4720799922943115,15.988900184631348l0,-3.9592905044555664l3.003890037536621,0l0,0.43836021423339844l-2.467180013656616,0l0,1.2701196670532227l2.2985799312591553,0l0,0.4327402114868164l-2.2985799312591553,0l0,1.3797101974487305l2.582390069961548,0l0,0.43836021423339844l-3.1191000938415527,0Z`;
      },
      width: 1366 / 356 - 0.2,
      glyph: "E"
    },
    "XF": {
      getPath: () => {
        return `M1.0087900161743164,12.46796989440918l0,1.4724397659301758l2.2086598873138428,0l0,0.44398021697998047l-2.2086598873138428,0l0,1.6045103073120117l-0.5367100238800049,0l0,-3.9592905044555664l2.812809944152832,0l0,0.43836021423339844l-2.276099920272827,0Z`;
      },
      width: 1251 / 356 - 0.2,
      glyph: "F",
      kerningRules: {
        "A": 113 / 356
      }
    },
    "XG": {
      getPath: () => {
        return `M0.28942999243736267,13.990989685058594q0,-0.9638299942016602,0.5170399844646454,-1.4921092987060547t1.452769935131073,-0.5282802581787109q0.6575400829315186,0,1.0678000450134277,0.22198963165283203t0.6322500705718994,0.7109298706054688l-0.5114200115203857,0.15174007415771484q-0.16860008239746094,-0.3372001647949219,-0.465054988861084,-0.49174976348876953t-0.7376251220703125,-0.15454959869384766q-0.6856398582458496,0,-1.048129916191101,0.4144744873046875t-0.3624899983406067,1.1675548553466797q0,0.750269889831543,0.3849700093269348,1.1844148635864258t1.0649899244308472,0.4341459274291992q0.38778018951416016,0,0.7235751152038574,-0.11802005767822266t0.5437350273132324,-0.3203401565551758l0,-0.713740348815918l-1.1830101013183594,0l0,-0.4496002197265625l1.677570104598999,0l0,1.3656606674194336q-0.31472015380859375,0.3203392028808594,-0.7713451385498047,0.49596500396728516t-0.9905250072479248,0.17562389373779297q-0.6210099458694458,0,-1.0706099271774292,-0.24727916717529297t-0.6870449781417847,-0.7123346328735352t-0.23744502663612366,-1.0944957733154297Z`;
      },
      width: 1593 / 356 - 0.2,
      glyph: "G"
    },
    "XH": {
      getPath: () => {
        return `M3.150010108947754,15.988900184631348l0,-1.834930419921875l-2.1412200927734375,0l0,1.834930419921875l-0.5367100238800049,0l0,-3.9592905044555664l0.5367100238800049,0l0,1.674759864807129l2.1412200927734375,0l0,-1.674759864807129l0.5367097854614258,0l0,3.9592905044555664l-0.5367097854614258,0Z`;
      },
      width: 1479 / 356 - 0.2,
      glyph: "H"
    },
    "XI": {
      getPath: () => {
        return `M0.5310900211334229,15.988900184631348l0,-3.9592905044555664l0.5367100238800049,0l0,3.9592905044555664l-0.5367100238800049,0Z`;
      },
      width: 569 / 356 - 0.2,
      glyph: "I"
    },
    "XJ": {
      getPath: () => {
        return `M1.2841700315475464,16.04509925842285q-1.0059800446033478,0,-1.1942500323057175,-1.0396995544433594l0.5254700034856796,-0.08710956573486328q0.05058002471923828,0.3259601593017578,0.22760999202728271,0.5086097717285156t0.44398003816604614,0.18265056610107422q0.2922400236129761,0,0.46083998680114746,-0.20091533660888672t0.1685999631881714,-0.5886955261230469l0,-2.3519697189331055l-0.7615100145339966,0l0,-0.43836021423339844l1.2954100370407104,0l0,2.77908992767334q0,0.5760507583618164,-0.31190991401672363,0.9062252044677734t-0.8542400598526001,0.33017444610595703Z`;
      },
      width: 1024 / 356 - 0.2,
      glyph: "J"
    },
    "XK": {
      getPath: () => {
        return `M3.1078600883483887,15.988900184631348l-1.5820300579071045,-1.9107999801635742l-0.5170400142669678,0.3934001922607422l0,1.517399787902832l-0.5367100238800049,0l0,-3.9592905044555664l0.5367100238800049,0l0,1.9838600158691406l1.9079899787902832,-1.9838600158691406l0.6322500705718994,0l-1.686000108718872,1.7197198867797852l1.9107999801635742,2.2395706176757812l-0.6659698486328125,0Z`;
      },
      width: 1366 / 356 - 0.2,
      glyph: "K"
    },
    "XL": {
      getPath: () => {
        return `M0.4720799922943115,15.988900184631348l0,-3.9592905044555664l0.5367100238800049,0l0,3.520930290222168l2.0007200241088867,0l0,0.43836021423339844l-2.5374300479888916,0Z`;
      },
      width: 1139 / 356 - 0.2,
      glyph: "L",
      kerningRules: {
        "y": 76 / 356,
        "Y": 152 / 356,
        "W": 152 / 356,
        "V": 152 / 356,
        "T": 152 / 356
      }
    },
    "XM": {
      getPath: () => {
        return `M3.8384599685668945,15.988900184631348l0,-2.6414003372192383q0,-0.43836021423339844,0.02529001235961914,-0.8429994583129883q-0.13769006729125977,0.5029897689819336,-0.24727988243103027,0.786799430847168l-1.0228400230407715,2.6976003646850586l-0.3765401840209961,0l-1.036889910697937,-2.6976003646850586l-0.15735995769500732,-0.47770023345947266l-0.09273004531860352,-0.3090991973876953l0.008430004119873047,0.31190967559814453l0.011240005493164062,0.5310897827148438l0,2.6414003372192383l-0.47769999504089355,0l0,-3.9592905044555664l0.7053099870681763,0l1.053749918937683,2.7453699111938477q0.05620002746582031,0.16579055786132812,0.1081850528717041,0.3554649353027344t0.06884503364562988,0.2739753723144531q0.022480010986328125,-0.11240005493164062,0.09413504600524902,-0.3414144515991211t0.09694504737854004,-0.2880258560180664l1.0340800285339355,-2.7453699111938477l0.6884500980377197,0l0,3.9592905044555664l-0.4833202362060547,0Z`;
      },
      width: 1706 / 356 - 0.2,
      glyph: "M"
    },
    "XN": {
      getPath: () => {
        return `M3.0404200553894043,15.988900184631348l-2.1187400817871094,-3.371999740600586l0.014050006866455078,0.2725696563720703l0.014050006866455078,0.4692697525024414l0,2.630160331726074l-0.47769999504089355,0l0,-3.9592905044555664l0.6238200664520264,0l2.1412198543548584,3.3944807052612305q-0.03372001647949219,-0.5507602691650391,-0.03372001647949219,-0.7980403900146484l0,-2.596440315246582l0.4833199977874756,0l0,3.9592905044555664l-0.6462998390197754,0Z`;
      },
      width: 1479 / 356 - 0.2,
      glyph: "N"
    },
    "XO": {
      getPath: () => {
        return `M4.2009501457214355,13.990989685058594q0,0.6210107803344727,-0.23744511604309082,1.0874700546264648t-0.6814250946044922,0.7165498733520508t-1.0481300354003906,0.2500896453857422q-0.6097699403762817,0,-1.0523449182510376,-0.24727916717529297t-0.6758049726486206,-0.7151451110839844t-0.23322999477386475,-1.0916852951049805q0,-0.9497795104980469,0.5198500156402588,-1.4850845336914062t1.4471498727798462,-0.5353050231933594q0.6041500568389893,0,1.0481300354003906,0.24025440216064453t0.6786150932312012,0.6982851028442383t0.2346351146697998,1.0818500518798828ZM3.6530001163482666,13.990989685058594q0,-0.7390298843383789,-0.36951518058776855,-1.1605300903320312t-1.043915033340454,-0.42149925231933594q-0.6800198554992676,0,-1.050939917564392,0.4158792495727539t-0.37092000246047974,1.1661500930786133q0,0.7446498870849609,0.37513500452041626,1.181605339050293t1.0411049127578735,0.43695545196533203q0.6856400966644287,0,1.0523450374603271,-0.42290592193603516t0.36670517921447754,-1.1956548690795898Z`;
      },
      width: 1593 / 356 - 0.2,
      glyph: "O"
    },
    "XP": {
      getPath: () => {
        return `M3.534980058670044,13.221050262451172q0,0.5619993209838867,-0.36670494079589844,0.8935794830322266t-0.9961450099945068,0.33158016204833984l-1.1633400917053223,0l0,1.5426902770996094l-0.5367100238800049,0l0,-3.9592905044555664l1.666330099105835,0q0.6659698486328125,0,1.0312700271606445,0.31191062927246094t0.36529994010925293,0.8795299530029297ZM2.995460033416748,13.226670265197754q0,-0.7671298980712891,-0.9216799736022949,-0.7671298980712891l-1.0649900436401367,0l0,1.5623598098754883l1.0874700546264648,0q0.8991999626159668,0,0.8991999626159668,-0.7952299118041992Z`;
      },
      width: 1366 / 356 - 0.2,
      glyph: "P",
      kerningRules: {
        "A": 152 / 356
      }
    },
    "XQ": {
      getPath: () => {
        return `M4.2009501457214355,13.990989685058594q0,0.8373804092407227,-0.42150020599365234,1.3769006729125977t-1.1717698574066162,0.6378698348999023q0.11520981788635254,0.35405921936035156,0.3020749092102051,0.5114192962646484t0.47348499298095703,0.15736007690429688q0.15455007553100586,0,0.3231499195098877,-0.036529541015625l0,0.3765392303466797q-0.26132988929748535,0.06182098388671875,-0.5001800060272217,0.06182098388671875q-0.42430996894836426,0,-0.6982848644256592,-0.24025535583496094t-0.4481949806213379,-0.8022556304931641q-0.556380033493042,-0.02809906005859375,-0.9596151113510132,-0.28240394592285156t-0.6153899431228638,-0.7081203460693359t-0.21215498447418213,-1.0523452758789062q0,-0.9497795104980469,0.5198500156402588,-1.4850845336914062t1.4471498727798462,-0.5353050231933594q0.6041500568389893,0,1.0481300354003906,0.24025440216064453t0.6786150932312012,0.6982851028442383t0.2346351146697998,1.0818500518798828ZM3.6530001163482666,13.990989685058594q0,-0.7390298843383789,-0.36951518058776855,-1.1605300903320312t-1.043915033340454,-0.42149925231933594q-0.6800198554992676,0,-1.050939917564392,0.4158792495727539t-0.37092000246047974,1.1661500930786133q0,0.7446498870849609,0.37513500452041626,1.181605339050293t1.0411049127578735,0.43695545196533203q0.6856400966644287,0,1.0523450374603271,-0.42290592193603516t0.36670517921447754,-1.1956548690795898Z`;
      },
      width: 1593 / 356 - 0.2,
      glyph: "Q"
    },
    "XR": {
      getPath: () => {
        return `M3.2708399295806885,15.988900184631348l-1.0284600257873535,-1.643850326538086l-1.2335898876190186,0l0,1.643850326538086l-0.5367100238800049,0l0,-3.9592905044555664l1.863029956817627,0q0.6687800884246826,0,1.03267502784729,0.29926490783691406t0.3638949394226074,0.833165168762207q0,0.44117069244384766,-0.25711488723754883,0.7418403625488281t-0.7095251083374023,0.3793497085571289l1.124000072479248,1.7056703567504883l-0.6182000637054443,0ZM3.19215989112854,13.167659759521484q0,-0.3456296920776367,-0.2346348762512207,-0.5268745422363281t-0.6758050918579102,-0.1812448501586914l-1.2729299068450928,0l0,1.4611997604370117l1.295409917831421,0q0.42430996894836426,0,0.656135082244873,-0.1981048583984375t0.2318248748779297,-0.5549755096435547Z`;
      },
      width: 1479 / 356 - 0.2,
      glyph: "R",
      kerningRules: {
        "Y": 37 / 356,
        "W": 37 / 356,
        "V": 37 / 356,
        "T": 37 / 356
      }
    },
    "XS": {
      getPath: () => {
        return `M3.574320077896118,14.8958101272583q0,0.5479497909545898,-0.4285249710083008,0.8486194610595703t-1.206895112991333,0.30066967010498047q-1.4471499919891357,0,-1.6775699853897095,-1.0059795379638672l0.5198500156402588,-0.10396957397460938q0.08991998434066772,0.3568696975708008,0.382159948348999,0.5240650177001953t0.7952300310134888,0.16719436645507812q0.5198500156402588,0,0.8022549152374268,-0.1784343719482422t0.28240513801574707,-0.5240650177001953q0,-0.19389057159423828,-0.08851504325866699,-0.31472015380859375t-0.24868512153625488,-0.1995096206665039t-0.382159948348999,-0.13207054138183594t-0.49175000190734863,-0.11520957946777344q-0.4692699909210205,-0.10397052764892578,-0.7123349905014038,-0.20794010162353516t-0.38356494903564453,-0.2318248748779297t-0.21496498584747314,-0.29926490783691406t-0.07446500658988953,-0.3934001922607422q0,-0.5086097717285156,0.38918498158454895,-0.7839899063110352t1.1141650080680847,-0.27538013458251953q0.6744000911712646,0,1.0312700271606445,0.20653533935546875t0.5001800060272217,0.7039041519165039l-0.5282800197601318,0.09273052215576172q-0.08711004257202148,-0.31472015380859375,-0.33157992362976074,-0.45662498474121094t-0.6772100925445557,-0.1419048309326172q-0.47488999366760254,0,-0.7249799966812134,0.15736007690429688t-0.25009000301361084,0.4692697525024414q0,0.1826496124267578,0.09694504737854004,0.3020744323730469t0.27959489822387695,0.20232009887695312t0.727790117263794,0.20372486114501953q0.18264985084533691,0.04215049743652344,0.3638949394226074,0.08570575714111328t0.34703493118286133,0.10396957397460938t0.3105051517486572,0.1419048309326172t0.2514948844909668,0.1995105743408203t0.16719508171081543,0.27818965911865234t0.060415029525756836,0.3765401840209961Z`;
      },
      width: 1366 / 356 - 0.2,
      glyph: "S"
    },
    "XT": {
      getPath: () => {
        return `M2.023200035095215,12.46796989440918l0,3.520930290222168l-0.5339000225067139,0l0,-3.520930290222168l-1.360040009021759,0l0,-0.43836021423339844l3.253979980945587,0l0,0.43836021423339844l-1.3600399494171143,0Z`;
      },
      width: 1251 / 356 - 0.2,
      glyph: "T",
      kerningRules: {
        "y": 113 / 356,
        "w": 113 / 356,
        "u": 76 / 356,
        "s": 227 / 356,
        "r": 76 / 356,
        "o": 227 / 356,
        "i": 76 / 356,
        "e": 227 / 356,
        "c": 227 / 356,
        "a": 227 / 356,
        "O": 37 / 356,
        "Ö": 37 / 356,
        "A": 152 / 356,
        "Å": 152 / 356,
        "Ä": 152 / 356
      }
    },
    "XU": {
      getPath: () => {
        return `M2.054110050201416,16.04509925842285q-0.4861299991607666,0,-0.8486200571060181,-0.17702960968017578t-0.5619999766349792,-0.5142297744750977t-0.19951000809669495,-0.8036594390869141l0,-2.520570755004883l0.5367099940776825,0l0,2.4756107330322266q0,0.5423297882080078,0.27538001537323,0.8233299255371094t0.7952300310134888,0.28100013732910156q0.5339000225067139,0,0.8303549289703369,-0.2908353805541992t0.29645490646362305,-0.8500251770019531l0,-2.439080238342285l0.5339000225067139,0l0,2.4699907302856445q0,0.48050975799560547,-0.20372486114501953,0.8289499282836914t-0.5760500431060791,0.5324945449829102t-0.8781249523162842,0.18405437469482422Z`;
      },
      width: 1479 / 356 - 0.2,
      glyph: "U"
    },
    "XV": {
      getPath: () => {
        return `M2.1974198818206787,15.988900184631348l-0.5563799142837524,0l-1.6157499682158232,-3.9592905044555664l0.5648099910467863,0l1.0958999991416931,2.787520408630371l0.23603999614715576,0.6996898651123047l0.2360401153564453,-0.6996898651123047l1.0902798175811768,-2.787520408630371l0.564810037612915,0Z`;
      },
      width: 1366 / 356 - 0.2,
      glyph: "V",
      kerningRules: {
        "y": 76 / 356,
        "u": 76 / 356,
        "r": 76 / 356,
        "o": 113 / 356,
        "i": 37 / 356,
        "e": 113 / 356,
        "a": 227 / 356,
        "A": 152 / 356,
        "Å": 152 / 356,
        "Ä": 152 / 356
      }
    },
    "XW": {
      getPath: () => {
        return `M4.245910167694092,15.988900184631348l-0.6406800746917725,0l-0.6856400966644287,-2.5149497985839844q-0.06744003295898438,-0.2360401153564453,-0.1967000961303711,-0.8458099365234375q-0.0730597972869873,0.3259592056274414,-0.12363982200622559,0.5451393127441406t-0.7671301364898682,2.8156204223632812l-0.6406799554824829,0l-1.1661499869078398,-3.9592905044555664l0.5591899883002043,0l0.7109300494194031,2.514950752258301q0.12644994258880615,0.4720792770385742,0.23322999477386475,0.972259521484375q0.06743991374969482,-0.3091001510620117,0.15595495700836182,-0.6744003295898438t0.7797750234603882,-2.812809944152832l0.5142300128936768,0l0.6884498596191406,2.4643707275390625q0.15736007690429688,0.6041498184204102,0.24728012084960938,1.0228395462036133l0.02529001235961914,-0.09834957122802734q0.07587003707885742,-0.323150634765625,0.12364006042480469,-0.5268754959106445t0.7896099090576172,-2.861985206604004l0.5591897964477539,0Z`;
      },
      width: 1933 / 356 - 0.2,
      glyph: "W",
      kerningRules: {
        "y": 18 / 356,
        "u": 37 / 356,
        "r": 37 / 356,
        "o": 37 / 356,
        "e": 37 / 356,
        "a": 76 / 356,
        "A": 76 / 356,
        "Å": 76 / 356,
        "Ä": 76 / 356
      }
    },
    "XX": {
      getPath: () => {
        return `M3.1247200965881348,15.988900184631348l-1.1886301040649414,-1.7309598922729492l-1.213919997215271,1.7309598922729492l-0.5929099917411804,0l1.5061599612236023,-2.056920051574707l-1.3909499645233154,-1.9023704528808594l0.5929099917411804,0l1.1015200018882751,1.5539302825927734l1.0706100463867188,-1.5539302825927734l0.5929100513458252,0l-1.3544201850891113,1.882699966430664l1.4696300029754639,2.0765905380249023l-0.5929098129272461,0Z`;
      },
      width: 1366 / 356 - 0.2,
      glyph: "X"
    },
    "XY": {
      getPath: () => {
        return `M2.1833701133728027,14.347860336303711l0,1.6410398483276367l-0.5339001417160034,0l0,-1.6410398483276367l-1.5230199694633484,-2.3182506561279297l0.5900999903678894,0l1.205489993095398,1.8855104446411133l1.1998701095581055,-1.8855104446411133l0.5900998115539551,0Z`;
      },
      width: 1366 / 356 - 0.2,
      glyph: "Y",
      kerningRules: {
        "v": 113 / 356,
        "u": 113 / 356,
        "q": 188 / 356,
        "p": 152 / 356,
        "o": 188 / 356,
        "i": 76 / 356,
        "e": 188 / 356,
        "a": 152 / 356,
        "A": 152 / 356,
        "Å": 152 / 356,
        "Ä": 152 / 356
      }
    },
    "XZ": {
      getPath: () => {
        return `M3.335469961166382,15.988900184631348l-3.152819961309433,0l0,-0.40182971954345703l2.410980075597763,-3.119100570678711l-2.205850064754486,0l0,-0.43836021423339844l2.8156198859214783,0l0,0.3905906677246094l-2.4109798669815063,3.1303396224975586l2.543049931526184,0l0,0.43836021423339844Z`;
      },
      width: 1251 / 356 - 0.2,
      glyph: "Z"
    },
    "XÅ": {
      getPath: () => {
        return `M3.2792699337005615,15.988900184631348l-0.4524099826812744,-1.1577205657958984l-1.8040199279785156,0l-0.4552200436592102,1.1577205657958984l-0.5563799794763327,0l1.6157499607652426,-3.9592905044555664l0.6097699403762817,0l1.5904600620269775,3.9592905044555664l-0.547950029373169,0ZM1.9248499870300293,12.434249877929688l-0.02529001235961914,0.07868003845214844q-0.07024991512298584,0.2332296371459961,-0.2079399824142456,0.5985298156738281l-0.5058000087738037,1.301030158996582l1.4808701276779175,0l-0.5086100101470947,-1.306650161743164q-0.07868003845214844,-0.19388961791992188,-0.15736007690429688,-0.43835926055908203ZM2.607680082321167,11.64463996887207q0,0.28100013732910156,-0.1995100975036621,0.48050975799560547t-0.48050999641418457,0.1995105743408203t-0.48050999641418457,-0.1995105743408203t-0.19950997829437256,-0.48050975799560547q0,-0.2838096618652344,0.19950997829437256,-0.48050975799560547t0.48050999641418457,-0.1967000961303711q0.27818989753723145,0,0.47910499572753906,0.1981048583984375t0.20091509819030762,0.47910499572753906ZM2.3041999340057373,11.64463996887207q0,-0.15736007690429688,-0.10958981513977051,-0.2669496536254883t-0.2669501304626465,-0.10959053039550781q-0.16016995906829834,0,-0.26976001262664795,0.10959053039550781t-0.10958993434906006,0.2669496536254883q0,0.15454959869384766,0.10677993297576904,0.2697601318359375t0.27257001399993896,0.11520957946777344q0.1629800796508789,0,0.2697598934173584,-0.11380481719970703t0.1067800521850586,-0.2711648941040039Z`;
      },
      width: 1366 / 356 - 0.2,
      glyph: "Å",
      kerningRules: {
        "y": 37 / 356,
        "v": 37 / 356,
        "w": 37 / 356,
        "Y": 152 / 356,
        "W": 76 / 356,
        "V": 152 / 356,
        "T": 152 / 356
      }
    },
    "XÄ": {
      getPath: () => {
        return `M3.2792699337005615,15.988900184631348l-0.4524099826812744,-1.1577205657958984l-1.8040199279785156,0l-0.4552200436592102,1.1577205657958984l-0.5563799794763327,0l1.6157499607652426,-3.9592905044555664l0.6097699403762817,0l1.5904600620269775,3.9592905044555664l-0.547950029373169,0ZM1.9248499870300293,12.434249877929688l-0.02529001235961914,0.07868003845214844q-0.07024991512298584,0.2332296371459961,-0.2079399824142456,0.5985298156738281l-0.5058000087738037,1.301030158996582l1.4808701276779175,0l-0.5086100101470947,-1.306650161743164q-0.07868003845214844,-0.19388961791992188,-0.15736007690429688,-0.43835926055908203ZM2.25642991065979,11.689599990844727l0,-0.5170402526855469l0.45802998542785645,0l0,0.5170402526855469l-0.45802998542785645,0ZM1.1492899656295776,11.689599990844727l0,-0.5170402526855469l0.4636499881744385,0l0,0.5170402526855469l-0.4636499881744385,0Z`;
      },
      width: 1366 / 356 - 0.2,
      glyph: "Ä",
      kerningRules: {
        "y": 37 / 356,
        "v": 37 / 356,
        "w": 37 / 356,
        "Y": 152 / 356,
        "W": 76 / 356,
        "V": 152 / 356,
        "T": 152 / 356
      }
    },
    "XÖ": {
      getPath: () => {
        return `M4.2009501457214355,13.990989685058594q0,0.6210107803344727,-0.23744511604309082,1.0874700546264648t-0.6814250946044922,0.7165498733520508t-1.0481300354003906,0.2500896453857422q-0.6097699403762817,0,-1.0523449182510376,-0.24727916717529297t-0.6758049726486206,-0.7151451110839844t-0.23322999477386475,-1.0916852951049805q0,-0.9497795104980469,0.5198500156402588,-1.4850845336914062t1.4471498727798462,-0.5353050231933594q0.6041500568389893,0,1.0481300354003906,0.24025440216064453t0.6786150932312012,0.6982851028442383t0.2346351146697998,1.0818500518798828ZM3.6530001163482666,13.990989685058594q0,-0.7390298843383789,-0.36951518058776855,-1.1605300903320312t-1.043915033340454,-0.42149925231933594q-0.6800198554992676,0,-1.050939917564392,0.4158792495727539t-0.37092000246047974,1.1661500930786133q0,0.7446498870849609,0.37513500452041626,1.181605339050293t1.0411049127578735,0.43695545196533203q0.6856400966644287,0,1.0523450374603271,-0.42290592193603516t0.36670517921447754,-1.1956548690795898ZM2.5571000576019287,11.689599990844727l0,-0.5170402526855469l0.45802998542785645,0l0,0.5170402526855469l-0.45802998542785645,0ZM1.4499599933624268,11.689599990844727l0,-0.5170402526855469l0.4636499881744385,0l0,0.5170402526855469l-0.4636499881744385,0Z`;
      },
      width: 1593 / 356 - 0.2,
      glyph: "Ö"
    }
  };
  for (const letter of Object.values(alphabetData)) {
    letter.specialRule = "external glyph";
    letter.height = 4;
  }
  function createCircle(radius) {
    const initialX = 0;
    const initialY = radius;
    return {
      getPath: (x, y) => {
        const startX = initialX + x;
        const startY = initialY + y;
        return `M${startX},${startY}a${radius},${radius} 0 1,1 ${radius * 2},0a${radius},${radius} 0 1,1 ${-radius * 2},0`;
      },
      width: radius * 2,
      height: radius * 2
    };
  }
  function createHalfCircle(radius, radialDirection) {
    const directionMapping = {
      "N": { initialX: 0, initialY: radius, endX: radius * 2, endY: 0, sweepFlag: 1, width: radius * 2, height: radius },
      "S": { initialX: 0, initialY: 0, endX: radius * 2, endY: 0, sweepFlag: 0, width: radius * 2, height: radius },
      "W": { initialX: radius, initialY: 0, endX: 0, endY: radius * 2, sweepFlag: 0, width: radius, height: radius * 2 },
      "E": { initialX: 0, initialY: 0, endX: 0, endY: radius * 2, sweepFlag: 1, width: radius, height: radius * 2 }
    };
    const { initialX, initialY, endX, endY, sweepFlag, width, height } = directionMapping[radialDirection];
    return {
      getPath: (x, y) => {
        const startX = initialX + x;
        const startY = initialY + y;
        return `M${startX},${startY}a${radius},${radius} 0 1,${sweepFlag} ${endX},${endY}`;
      },
      width,
      height
    };
  }
  function createQuarterCircle(radius, radialDirection) {
    const directionMapping = {
      "NW": { initialX: 0, initialY: radius, endX: radius, endY: -radius, sweepFlag: 1 },
      "NE": { initialX: 0, initialY: 0, endX: radius, endY: radius, sweepFlag: 1 },
      "SW": { initialX: 0, initialY: 0, endX: radius, endY: radius, sweepFlag: 0 },
      "SE": { initialX: 0, initialY: radius, endX: radius, endY: -radius, sweepFlag: 0 }
    };
    const { initialX, initialY, endX, endY, sweepFlag } = directionMapping[radialDirection];
    return {
      getPath: (x, y) => {
        const startX = initialX + x;
        const startY = initialY + y;
        return `M${startX},${startY}a${radius},${radius} 0 0,${sweepFlag} ${endX},${endY}`;
      },
      width: radius,
      height: radius
    };
  }
  function createOpenCircle(radius, openingDirection) {
    const directionMapping = {
      "NW": { initialX: radius, initialY: 0, endX: -radius, endY: radius, sweepFlag: 1 },
      "NE": { initialX: radius * 2, initialY: radius, endX: -radius, endY: -radius, sweepFlag: 1 },
      "SW": { initialX: 0, initialY: radius, endX: radius, endY: radius, sweepFlag: 1 },
      "SE": { initialX: radius, initialY: radius * 2, endX: radius, endY: -radius, sweepFlag: 1 }
    };
    const { initialX, initialY, endX, endY, sweepFlag } = directionMapping[openingDirection];
    return {
      getPath: (x, y) => {
        const startX = initialX + x;
        const startY = initialY + y;
        return `M${startX},${startY}a${radius},${radius} 0 1,${sweepFlag} ${endX},${endY}`;
      },
      width: radius * 2,
      height: radius * 2
    };
  }
  function createWave(length, radialDirection) {
    const radius = length * 5 / 8 / 2;
    const directionMapping = {
      "N": { initialX: 0, initialY: length / 8, endX: length / 2, endY: 0, firstSweepFlag: 1, secondSweepFlag: 0, width: length, height: length / 4 },
      "S": { initialX: 0, initialY: length / 8, endX: length / 2, endY: 0, firstSweepFlag: 0, secondSweepFlag: 1, width: length, height: length / 4 },
      "W": { initialX: length / 8, initialY: 0, endX: 0, endY: length / 2, firstSweepFlag: 0, secondSweepFlag: 1, width: length / 4, height: length },
      "E": { initialX: length / 8, initialY: 0, endX: 0, endY: length / 2, firstSweepFlag: 1, secondSweepFlag: 0, width: length / 4, height: length }
    };
    const { initialX, initialY, endX, endY, firstSweepFlag, secondSweepFlag, width, height } = directionMapping[radialDirection];
    return {
      getPath: (x, y) => {
        const startX = initialX + x;
        const startY = initialY + y;
        return `M${startX},${startY}a${radius},${radius} 0 0,${firstSweepFlag} ${endX},${endY}a${radius},${radius} 0 0,${secondSweepFlag} ${endX},${endY}`;
      },
      width,
      height
    };
  }
  function createHalfWave(length, radialDirection) {
    const radius = length * 5 / 8;
    const directionMapping = {
      "N": { initialX: 0, initialY: length / 4, endX: length, endY: 0, sweepFlag: 1, width: length, height: length / 4 },
      "S": { initialX: 0, initialY: 0, endX: length, endY: 0, sweepFlag: 0, width: length, height: length / 4 },
      "W": { initialX: length / 4, initialY: 0, endX: 0, endY: length, sweepFlag: 0, width: length / 4, height: length },
      "E": { initialX: 0, initialY: 0, endX: 0, endY: length, sweepFlag: 1, width: length / 4, height: length }
    };
    const { initialX, initialY, endX, endY, sweepFlag, width, height } = directionMapping[radialDirection];
    return {
      getPath: (x, y) => {
        const startX = initialX + x;
        const startY = initialY + y;
        return `M${startX},${startY}a${radius},${radius} 0 0,${sweepFlag} ${endX},${endY}`;
      },
      width,
      height
    };
  }
  function createHorizontalQuarterWave(width, radialDirection) {
    const radius = width * 5 / 4;
    const directionMapping = {
      "NW": { initialX: 0, initialY: width / 2, endX: width, endY: -width / 2, sweepFlag: 1 },
      "NE": { initialX: 0, initialY: 0, endX: width, endY: width / 2, sweepFlag: 1 },
      "SW": { initialX: 0, initialY: 0, endX: width, endY: width / 2, sweepFlag: 0 },
      "SE": { initialX: 0, initialY: width / 2, endX: width, endY: -width / 2, sweepFlag: 0 }
    };
    const { initialX, initialY, endX, endY, sweepFlag } = directionMapping[radialDirection];
    return {
      getPath: (x, y) => {
        const startX = initialX + x;
        const startY = initialY + y;
        return `M${startX},${startY}a${radius},${radius} 0 0,${sweepFlag} ${endX},${endY}`;
      },
      width,
      height: width / 2
    };
  }
  function createVerticalQuarterWave(height, radialDirection) {
    const radius = height * 5 / 4;
    const directionMapping = {
      "NW": { initialX: height / 2, initialY: 0, endX: -height / 2, endY: height, sweepFlag: 0 },
      "NE": { initialX: 0, initialY: 0, endX: height / 2, endY: height, sweepFlag: 1 },
      "SW": { initialX: 0, initialY: 0, endX: height / 2, endY: height, sweepFlag: 0 },
      "SE": { initialX: height / 2, initialY: 0, endX: -height / 2, endY: height, sweepFlag: 1 }
    };
    const { initialX, initialY, endX, endY, sweepFlag } = directionMapping[radialDirection];
    return {
      getPath: (x, y) => {
        const startX = initialX + x;
        const startY = initialY + y;
        return `M${startX},${startY}a${radius},${radius} 0 0,${sweepFlag} ${endX},${endY}`;
      },
      width: height / 2,
      height
    };
  }
  function createVerticalLine(length) {
    return {
      getPath: (x, y) => `M${x},${y}v${length}`,
      width: 0,
      height: length
    };
  }
  function createHorizontalLine(length) {
    return {
      getPath: (x, y) => `M${x},${y}h${length}`,
      width: length,
      height: 0
    };
  }
  function createAscendingDiagonalLine(width, height) {
    return {
      getPath: (x, y) => `M${x},${y + height}l${width},${-height}`,
      width,
      height
    };
  }
  function createDescendingDiagonalLine(width, height) {
    return {
      getPath: (x, y) => `M${x},${y}l${width},${height}`,
      width,
      height
    };
  }
  function createDiagonalLineOutsideCircle(size, direction) {
    const radius = size / 2;
    const lineWidth = radius * (1 - 0.70711);
    const lineHeight = lineWidth;
    const directionMapping = {
      "NW": { initialX: 0, initialY: 0, endX: lineWidth, endY: lineHeight },
      "NE": { initialX: size - lineWidth, initialY: lineHeight, endX: lineWidth, endY: -lineHeight },
      "SW": { initialX: 0, initialY: size, endX: lineWidth, endY: -lineHeight },
      "SE": { initialX: size - lineWidth, initialY: size - lineHeight, endX: lineWidth, endY: lineHeight }
    };
    const { initialX, initialY, endX, endY } = directionMapping[direction];
    return {
      //x and y are in this case the coordinates of the square that the diagonal lines are related to. Also width and height relates to the square.
      getPath: (x, y) => {
        const startX = initialX + x;
        const startY = initialY + y;
        return `M${startX},${startY}l${endX},${endY}`;
      },
      width: size,
      height: size
    };
  }
  function createAscendingDiagonalLineInsideCircle(radius) {
    const lineWidth = radius * 2 * 0.70711;
    const lineHeight = lineWidth;
    return {
      //x and y are in this case the coordinates of the bounding box of the circle that the diagonal lines are related to. Also width and height relates to the square.
      getPath: (x, y) => {
        const startX = radius - lineWidth / 2 + x;
        const startY = radius + lineHeight / 2 + y;
        const endX = lineWidth;
        const endY = -lineHeight;
        return `M${startX},${startY}l${endX},${endY}`;
      },
      width: radius * 2,
      height: radius * 2
    };
  }
  function createDescendingDiagonalLineInsideCircle(radius) {
    const lineWidth = radius * 2 * 0.70711;
    const lineHeight = lineWidth;
    return {
      //x and y are in this case the coordinates of the bounding box of the circle that the diagonal lines are related to. Also width and height relates to the square.
      getPath: (x, y) => {
        const startX = radius - lineWidth / 2 + x;
        const startY = radius - lineHeight / 2 + y;
        const endX = lineWidth;
        const endY = lineHeight;
        return `M${startX},${startY}l${endX},${endY}`;
      },
      width: radius * 2,
      height: radius * 2
    };
  }
  function createHeart(size) {
    const radius = size / 4;
    return {
      getPath: (x, y) => `M${x},${y + radius}a${radius},${radius} 0 1,1 ${radius * 2},0a${radius},${radius} 0 1,1 ${radius * 2},0q0,${size * 3 / 8} ${-(size / 2)},${size * 3 / 4}q${-(size / 2)},${-(size * 3 / 8)} ${-(size / 2)},${-(size * 3 / 4)}`,
      width: size,
      height: size
    };
  }
  function createEar(height) {
    const radius = height / 4;
    return {
      getPath: (x, y) => `M${x},${y + radius}a${radius},${radius} 0 1,1 ${radius * 2},0q0,${height * 3 / 8} ${-(height / 2)},${height * 3 / 4}`,
      width: height / 2,
      height
    };
  }
  function createDot(defaultBaseStrokeWidth = 0.5, defaultExtraDotWidth = 0.333) {
    const dot = {
      /**
       * Create an object with SVG string parts closePath, openPath, dotPath and openPath
       * so that joining these can be used along with other shapes' getPath functions,
       * based on specified strokeWidth and extraDotWidth.
       * @param {number} x - The x-coordinate of the dot's position.
       * @param {number} y - The y-coordinate of the dot's position.
       * @param {number} baseStrokeWidth - The stroke-width of a normal line in the SVG, used to derive other dimensions of the dot.
       * @param {number} extraDotWidth - A dot's outer diameter is the normal line stroke-width + extraDotWidth.
       * @returns {Object} - An object with closePath, openPath, dotPath and openPath properties.
       */
      getDotData: (x, y, settings = { baseStrokeWidth: defaultBaseStrokeWidth, extraDotWidth: defaultExtraDotWidth }) => {
        const dotStrokeWidth = (settings.baseStrokeWidth + settings.extraDotWidth) / 2;
        const dotStrokeRadius = dotStrokeWidth / 2;
        return {
          closePath: `"></path>`,
          openDotPath: `<path stroke-width="${dotStrokeWidth}" d="`,
          dotPath: `M${x - dotStrokeRadius},${y}a${dotStrokeRadius},${dotStrokeRadius} 0 1,1 ${dotStrokeRadius * 2},0a${dotStrokeRadius},${dotStrokeRadius} 0 1,1 ${-dotStrokeRadius * 2},0`,
          openPath: `<path d="`
        };
      },
      width: 0,
      height: 0
    };
    dot.getPath = (x, y, settings = { baseStrokeWidth: defaultBaseStrokeWidth, extraDotWidth: defaultExtraDotWidth }) => {
      const { closePath, openDotPath, dotPath, openPath } = dot.getDotData(x, y, settings);
      return `${closePath}${openDotPath}${dotPath}${closePath}${openPath}`;
    };
    return dot;
  }
  function createComma(defaultBaseStrokeWidth = 0.5, defaultExtraDotWidth = 0.333) {
    const comma = {
      /**
       * Create an object with SVG string parts closePath, openDotPath, dotPath, openCommaPath, commaPath and openPath so that joining these can be used along with other shapes' getPath functions, based on specified strokeWidth and extraDotWidth.
       * @param {number} x - The x-coordinate of the dot's position.
       * @param {number} y - The y-coordinate of the dot's position.
       * @param {number} baseStrokeWidth - The stroke-width of a normal line in the SVG, used to derive other dimensions of the comma.
       * @param {number} extraDotWidth - A dot's outer diameter is the normal line stroke-width + extraDotWidth.
       * @returns {Object} - An object with closePath, openDotPath, dotPath, commaPath and openPath properties.
       */
      getCommaData: (x, y, settings = { baseStrokeWidth: defaultBaseStrokeWidth, extraDotWidth: defaultExtraDotWidth }) => {
        const dotStrokeWidth = (settings.baseStrokeWidth + settings.extraDotWidth) / 2;
        const dotStrokeRadius = dotStrokeWidth / 2;
        const commaStrokeWidth = dotStrokeWidth * 2 / 3;
        const commaStartX = commaStrokeWidth + x;
        const commaStartY = y;
        const commaEndX = commaStrokeWidth * -2;
        const commaEndY = commaStrokeWidth * 4;
        const commaQX = commaStrokeWidth / 4;
        const commaQY = commaStrokeWidth * 2.5;
        return {
          closePath: `"></path>`,
          openDotPath: `<path stroke-width="${dotStrokeWidth}" d="`,
          dotPath: `M${x - dotStrokeRadius},${y}a${dotStrokeRadius},${dotStrokeRadius} 0 1,1 ${dotStrokeRadius * 2},0a${dotStrokeRadius},${dotStrokeRadius} 0 1,1 ${-dotStrokeRadius * 2},0`,
          openCommaPath: `<path stroke-width="${commaStrokeWidth}" d="`,
          commaPath: `M${commaStartX},${commaStartY}q${commaQX},${commaQY} ${commaEndX},${commaEndY}`,
          openPath: `<path d="`
        };
      },
      width: 0,
      height: 0
    };
    comma.getPath = (x, y, settings = { baseStrokeWidth: defaultBaseStrokeWidth, extraDotWidth: defaultExtraDotWidth }) => {
      const { closePath, openDotPath, dotPath, openCommaPath, commaPath, openPath } = comma.getCommaData(x, y, settings);
      return `${closePath}${openDotPath}${dotPath}${closePath}${openCommaPath}${commaPath}${closePath}${openPath}`;
    };
    return comma;
  }
  function createFiber(height) {
    const radius = height * 5 / 4;
    const initialX = height;
    const initialY = 0;
    const midX = height / 4;
    const midY = height / 2;
    const endX = height / 2;
    const endY = 0;
    return {
      getPath: (x, y) => {
        const startX = initialX + x;
        const startY = initialY + y;
        return `M${startX},${startY}a${radius},${radius} 0 0,1 ${midX},${midY}a${radius},${radius} 0 0,0 ${endX},${endY}`;
      },
      width: height / 2,
      height
    };
  }
  function createExternalGlyph(glyph) {
    const aObj = alphabetData[`X${glyph}`];
    const closePath = `"></path>`;
    const glyphPath = (aObj == null ? void 0 : aObj.getPath()) || "";
    const openPath = `<path d="`;
    return {
      getPath: (x, y) => {
        const openGlyphPath = `<path stroke="none" fill="#000000" transform="translate(${x - 0.3},${y - 0.015})" d="`;
        return `${closePath}${openGlyphPath}${glyphPath}${closePath}${openPath}`;
      },
      width: aObj.width || 0,
      // Indicates that this "shape" is an external, non-Bliss glyph.
      isExternalGlyph: true,
      // The glyph represented.
      glyph: aObj.glyph,
      // The kerning rules for the glyph
      kerningRules: { ...aObj.kerningRules }
    };
  }
  const charData = {
    B1: {
      codeString: "VL6:0,8;DOT:0,16"
    },
    B2: {
      codeString: "C2:0,8;DL4-8N:0,8;C2:2,14"
    },
    B3: {
      codeString: "OC4SW:0,8;VL2:2,12;DOT:2,16"
    },
    B4: {
      codeString: "DOT:0,16"
    },
    B5: {
      codeString: "COMMA:0,16"
    },
    B6: {
      codeString: "DOT:0,14;DOT:0,16"
    },
    B7: {
      codeString: "COMMA:0,8"
    },
    B8: {
      codeString: "C2:0,8"
    },
    B9: {
      codeString: "HC2N:0,12;VL2:0,13;HC2S:0,15;VL2:2,13"
    },
    B10: {
      codeString: "DL1N:0,12;VL4:1,12;HL2:0,16"
    },
    B11: {
      codeString: "HC2N:0,12;DL2-3N:0,13;HL2:0,16"
    },
    B12: {
      codeString: "OC2SW:0,12;OC2NW:0,14"
    },
    B13: {
      codeString: "VL2:0,12;HL2:0,14;VL4:2,12"
    },
    B14: {
      codeString: "HL2:0,12;VL2:0,12;HL1:0,14;HL1:0,16;HC2E:1,14"
    },
    B15: {
      codeString: "HC2N:0,12;VL2:0,13;C2:0,14"
    },
    B16: {
      codeString: "HL2:0,12;DL1-4N:1,12"
    },
    B17: {
      codeString: "C2:0,12;C2:0,14"
    },
    B18: {
      codeString: "C2:0,12;HC2S:0,15;VL2:2,13"
    },
    B19: {
      codeString: "HC1N:0,14;VL1:0,14.5;HC1S:0,15.5;VL1:1,14.5"
    },
    B20: {
      codeString: "DL.5N:0,14;VL2:0.5,14;HL1:0,16"
    },
    B21: {
      codeString: "HC1N:0,14;DL1-1.5N:0,14.5;HL1:0,16"
    },
    B22: {
      codeString: "OC1SW:0,14;OC1NW:0,15"
    },
    B23: {
      codeString: "VL1:0,14;HL1:0,15;VL2:1,14"
    },
    B24: {
      codeString: "HL1:0,14;VL1:0,14;HL.5:0,15;HL.5:0,16;HC1E:0.5,15"
    },
    B25: {
      codeString: "HC1N:0,14;VL1:0,14.5;C1:0,15"
    },
    B26: {
      codeString: "HL1:0,14;DL.5-2N:0.5,14"
    },
    B27: {
      codeString: "C1:0,14;C1:0,15"
    },
    B28: {
      codeString: "C1:0,14;HC1S:0,15.5;VL1:1,14.5"
    },
    B29: {
      codeString: "Xa"
    },
    B30: {
      codeString: "Xb"
    },
    B31: {
      codeString: "Xc"
    },
    B32: {
      codeString: "Xd"
    },
    B33: {
      codeString: "Xe"
    },
    B34: {
      codeString: "Xf"
    },
    B35: {
      codeString: "Xg"
    },
    B36: {
      codeString: "Xh"
    },
    B37: {
      codeString: "Xi"
    },
    B38: {
      codeString: "Xj"
    },
    B39: {
      codeString: "Xk"
    },
    B40: {
      codeString: "Xl"
    },
    B41: {
      codeString: "Xm"
    },
    B42: {
      codeString: "Xn"
    },
    B43: {
      codeString: "Xo"
    },
    B44: {
      codeString: "Xp"
    },
    B45: {
      codeString: "Xq"
    },
    B46: {
      codeString: "Xr"
    },
    B47: {
      codeString: "Xs"
    },
    B48: {
      codeString: "Xt"
    },
    B49: {
      codeString: "Xu"
    },
    B50: {
      codeString: "Xv"
    },
    B51: {
      codeString: "Xw"
    },
    B52: {
      codeString: "Xx"
    },
    B53: {
      codeString: "Xy"
    },
    B54: {
      codeString: "Xz"
    },
    B55: {
      codeString: "XA"
    },
    B56: {
      codeString: "XB"
    },
    B57: {
      codeString: "XC"
    },
    B58: {
      codeString: "XD"
    },
    B59: {
      codeString: "XE"
    },
    B60: {
      codeString: "XF"
    },
    B61: {
      codeString: "XG"
    },
    B62: {
      codeString: "XH"
    },
    B63: {
      codeString: "XI"
    },
    B64: {
      codeString: "XJ"
    },
    B65: {
      codeString: "XK"
    },
    B66: {
      codeString: "XL"
    },
    B67: {
      codeString: "XM"
    },
    B68: {
      codeString: "XN"
    },
    B69: {
      codeString: "XO"
    },
    B70: {
      codeString: "XP"
    },
    B71: {
      codeString: "XQ"
    },
    B72: {
      codeString: "XR"
    },
    B73: {
      codeString: "XS"
    },
    B74: {
      codeString: "XT"
    },
    B75: {
      codeString: "XU"
    },
    B76: {
      codeString: "XV"
    },
    B77: {
      codeString: "XW"
    },
    B78: {
      codeString: "XX"
    },
    B79: {
      codeString: "XY"
    },
    B80: {
      codeString: "XZ"
    },
    B81: {
      codeString: "AA2N:0,4",
      isIndicator: true
    },
    B82: {
      codeString: "AA2E:0,4",
      isIndicator: true
    },
    B83: {
      codeString: "OC1SW:0,4;VL.25:0.5,5;DOT:0.5,6",
      isIndicator: true,
      width: 1
    },
    B84: {
      codeString: "B86;B270:3,-8",
      isIndicator: true,
      center: 0.5,
      width: 3
    },
    B85: {
      codeString: "B270:0,-8;B86:1,0",
      isIndicator: true,
      center: -0.5,
      width: 3
    },
    B86: {
      codeString: "AA2S:0,4",
      isIndicator: true
    },
    B87: {
      codeString: "HW2W:0,4",
      isIndicator: true,
      width: 0.5
    },
    B88: {
      codeString: "B83;B87:2,0",
      isIndicator: true,
      width: 2.5
    },
    B89: {
      codeString: "B91;B87:3,0",
      isIndicator: true,
      width: 3.5
    },
    B90: {
      codeString: "B91;B88:3,0",
      isIndicator: true,
      width: 5.5
    },
    B91: {
      codeString: "AA2W:0,4",
      isIndicator: true
    },
    B92: {
      codeString: "HW2E:0,4",
      isIndicator: true,
      width: 0.5
    },
    B93: {
      codeString: "B83;B92:2,0",
      isIndicator: true,
      width: 2.5
    },
    B94: {
      codeString: "B91;B93:3,0",
      isIndicator: true,
      width: 5.5
    },
    B95: {
      codeString: "B91;B92:3,0",
      isIndicator: true,
      width: 3.5
    },
    B96: {
      codeString: "B91;B83:3,0",
      isIndicator: true,
      width: 4
    },
    B97: {
      codeString: "S2:0,4",
      isIndicator: true
    },
    B98: {
      codeString: "B97;B99:3,0",
      isIndicator: true,
      width: 5
    },
    B99: {
      codeString: "DC2:0,4",
      isIndicator: true
    },
    B100: {
      codeString: "DL2S:0,11"
    },
    B101: {
      codeString: "B270;B297:2,0",
      center: 1
    },
    B102: {
      codeString: "RA4E:0,10"
    },
    B103: {
      codeString: "B239;VL6:2,8;HL4:2,8;VL6:6,8"
    },
    B104: {
      codeString: "VL6:2,10;HL4:0,12;HL4:0,14"
    },
    B105: {
      codeString: "AA8N:0,8"
    },
    B106: {
      codeString: "AA4N:0,12"
    },
    B107: {
      codeString: "SC8:0,8"
    },
    B108: {
      codeString: "B325;HL4:0,8;HL4:0,16"
    },
    B109: {
      codeString: "B428;B270:2,0"
    },
    B110: {
      codeString: "B270;B270:2,0"
    },
    B111: {
      codeString: "RA4W:0,10;RA4W:2,10"
    },
    B112: {
      codeString: "HW4E:0,12"
    },
    B113: {
      codeString: "B335;B335:0,4"
    },
    B114: {
      codeString: "B597;B473:4,0"
    },
    B115: {
      codeString: "B708;B700:2,0"
    },
    B116: {
      codeString: "RA8S:0,8;VL4:4,12;HL8:0,16"
    },
    B117: {
      codeString: "B291;B459"
    },
    B118: {
      codeString: "Xa/Xb/Xc"
    },
    B119: {
      codeString: "P4W:0,6;P4E:4,10;P4W:0,14"
    },
    B120: {
      codeString: "SC4:0,10"
    },
    B121: {
      codeString: "DL8N:0,8;HL8:0,16"
    },
    B122: {
      codeString: "HL8:0,12;AA4N:0,12;AA4N:4,12"
    },
    B123: {
      codeString: "B122;B737:4,2"
    },
    B124: {
      codeString: "HC4W:0,8;B122:2,0",
      center: 1
    },
    B125: {
      codeString: "B122;B737:4,0"
    },
    B126: {
      codeString: "B122;HC2N:0,15;HC2N:4,15;HC2N:8,15",
      center: -1
    },
    B127: {
      codeString: "B122;B695:0,6"
    },
    B128: {
      codeString: "P4E:0,14;B514:3,0"
    },
    B129: {
      codeString: "B291;B699:3,0"
    },
    B130: {
      codeString: "B281;B100:3,0"
    },
    B131: {
      codeString: "HC4N:0,10;HC4N:4,10;HC8S:0,12;QC4NW:4,8"
    },
    B132: {
      codeString: "RA4SW:0,8"
    },
    B133: {
      codeString: "B212;HL4:0,10;VL2:4,10"
    },
    B134: {
      codeString: "B255;B270"
    },
    B135: {
      codeString: "RA4E:0,10;B270:4,0"
    },
    B136: {
      codeString: "LARRC8SC:0,8;B5840:3,0"
    },
    B137: {
      codeString: "B257;B11:7,0;B500:8,0"
    },
    B138: {
      codeString: "QC4NW:3,4;VQW4NW:1,8;VQW4NE:3,8;HW4W:0,12;HW4E:5,12;B528:2.5,0;HL4:1,16"
    },
    B139: {
      codeString: "VL4:0,10;P4E:8,10"
    },
    B140: {
      codeString: "C4:0,12;VL4:4,12;HL4:4,14;VL4:8,12"
    },
    B141: {
      codeString: "C4:0,12;AA4W:4,12"
    },
    B142: {
      codeString: "C4:0,12;AT4W:4,12"
    },
    B143: {
      codeString: "P4E:0,6;B518:3,0"
    },
    B144: {
      codeString: "B335;B145:0,4"
    },
    B145: {
      codeString: "LARR8W:0,10"
    },
    B146: {
      codeString: "VL4:0,8;HL8:0,8;VL4:8,8;HC8S:0,12"
    },
    B147: {
      codeString: "HC4N:2,10;R84:0,12"
    },
    B148: {
      codeString: "C4:0,12;HL4:0,14"
    },
    B149: {
      codeString: "C8:0,4;QC4SE:0,12"
    },
    B150: {
      codeString: "QC4NW:0,4;HW8E:0,8;HC8E:0,8"
    },
    B151: {
      codeString: "B612;B428:12,0"
    },
    B152: {
      codeString: "B122;B708"
    },
    B153: {
      codeString: "B281;B695:8,4"
    },
    B154: {
      codeString: "B801;C4:1,10"
    },
    B155: {
      codeString: "B1139;P4W:7,16"
    },
    B156: {
      codeString: "VL8:0,8;HL8:0,12;DL4N:4,8;VL8:8,8"
    },
    B157: {
      codeString: "B400;HC8N:2,8;HL8:2,12"
    },
    B158: {
      codeString: "B270;B428:2,0"
    },
    B159: {
      codeString: "B428;B335"
    },
    B160: {
      codeString: "B120:0,4"
    },
    B161: {
      codeString: "C4:0,10;QC4NE:4,12"
    },
    B162: {
      codeString: "B428;B270:2,0;B428:4,0"
    },
    B163: {
      codeString: "B708;AA2N:3,12"
    },
    B164: {
      codeString: "B163;B695:0,6"
    },
    B165: {
      codeString: "HW8W:0,8;HL8:2,8;HL2:2,16;HL2:8,16;HW8E:10,8;B140:2,-2;LARR4S:4,16"
    },
    B166: {
      codeString: "B548;B622:3,0"
    },
    B167: {
      codeString: "B712;B509"
    },
    B168: {
      codeString: "S4:0,10;DL2N:0,8;HL4:2,8;DL2N:4,8;VL4:6,8;DL2N:4,12"
    },
    B169: {
      codeString: "B639;P4N:2,13"
    },
    B170: {
      codeString: "VL4:4,8;HL8:0,12;B239"
    },
    B171: {
      codeString: "HW8W:0,8;HL8:2,8;HL8:2,16;HW8E:10,8"
    },
    B172: {
      codeString: "DOT:0,8;VL4:0,10;DOT:0,16"
    },
    B173: {
      codeString: "B497;OR48W:4,8"
    },
    B174: {
      codeString: "VL4:2,8;C4:0,12"
    },
    B175: {
      codeString: "B291;P4N:2,17"
    },
    B176: {
      codeString: "C4:0,10;C4:4,10;RA4N:2,14"
    },
    B177: {
      codeString: "S8:0,8;DL4N:0,4;HL8:4,4;DL4N:8,4;VL8:12,4;DL4N:8,12"
    },
    B178: {
      codeString: "C4:0,8;B106"
    },
    B179: {
      codeString: "B666;P4W:9,10",
      center: -1.5
    },
    B180: {
      codeString: "HW4W:0,12;HL8:1,12;HL8:1,16;HW4E:9,12"
    },
    B181: {
      codeString: "B171;P4N:2,12;P4N:6,12"
    },
    B182: {
      codeString: "B1154;HC8N:4,12;B1154:12,0"
    },
    B183: {
      codeString: "OR84S:0,12;VL8:4,8"
    },
    B184: {
      codeString: "OR84N:0,8;VL8:4,8"
    },
    B185: {
      codeString: "B345;P4W:5,10"
    },
    B186: {
      codeString: "B123;HC4N:0,10"
    },
    B187: {
      codeString: "B1137;P4W:7,16"
    },
    B188: {
      codeString: "B892;DL2N:9,9;DL2S:10,10"
    },
    B189: {
      codeString: "B884;B188:10,0;HL10:12,16"
    },
    B190: {
      codeString: "QC4SE:0,10;VL6:4,10;QC4SW:4,10"
    },
    B191: {
      codeString: "B451:2,0;B239"
    },
    B192: {
      codeString: "HL4:0,12;VL4:4,10"
    },
    B193: {
      codeString: "HW8W:0,8;HW8E:2,8;HW8W:4,8;HW8E:6,8"
    },
    B194: {
      codeString: "P4E:0,10;B518:3,0"
    },
    B195: {
      codeString: "RA4W:0,10"
    },
    B196: {
      codeString: "B422;HC4N:2,10"
    },
    B197: {
      codeString: "B391;HC4N:0,10;HC4N:4,10",
      center: -3
    },
    B198: {
      codeString: "B291;B424"
    },
    B199: {
      codeString: "VL4:0,8;B688;RA8N:0,4;VL4:8,8"
    },
    B200: {
      codeString: "C4:0,8;VL4:0,10;VL4:4,10;HC4S:0,14"
    },
    B201: {
      codeString: "B700:3,0;B939"
    },
    B202: {
      codeString: "B688;DL2N:5,9;DL2S:6,10"
    },
    B203: {
      codeString: "QC4NW:4,12;B281;AA4S:2,16"
    },
    B204: {
      codeString: "B1099;LARR4E:4,8",
      center: -2
    },
    B205: {
      codeString: "HL14:0,8;VL8:0,8;C4:2,10;HL6:4,10;C4:8,10;VL8:14,8;HL14:0,16"
    },
    B206: {
      codeString: "RT8E:0,8"
    },
    B207: {
      codeString: "B644;DOT:2,14"
    },
    B208: {
      codeString: "B572;P4N:2,9"
    },
    B209: {
      codeString: "B1119;VL6:2,8;VL8:4,8;VL6:6,8;HC4S:2,14"
    },
    B210: {
      codeString: "HC4N:0,10;VL2:0,12;HC4S:0,14;VL10:2,8"
    },
    B211: {
      codeString: "B265;B357:6,0"
    },
    B212: {
      codeString: "VL8:0,8;HL4:0,12;VL4:4,12"
    },
    B213: {
      codeString: "B423;B695"
    },
    B214: {
      codeString: "B306;P4W:9,10"
    },
    B215: {
      codeString: "RA4NE:0,12;QC4SW:0,12"
    },
    B216: {
      codeString: "DL8N:0,8;VL4:8,8;B651:6,2",
      center: 3
    },
    B217: {
      codeString: "B338;B528:1.5,0;HW4W:5,8;C4:4,12;B528:5.5,0"
    },
    B218: {
      codeString: "B171;P4N:4,12"
    },
    B219: {
      codeString: "S8:0,8;HL8:0,12;DOT:4,10;DOT:4,14"
    },
    B220: {
      codeString: "C4:0,8;B956"
    },
    B221: {
      codeString: "B1132;P4W:9,6"
    },
    B222: {
      codeString: "B306;P4N:2,17"
    },
    B223: {
      codeString: "B368:0,-4;HL4:0,12;B303:0,2"
    },
    B224: {
      codeString: "B1085;P4N:4,17"
    },
    B225: {
      codeString: "B281;B433:2,0"
    },
    B226: {
      codeString: "B126;P4W:11,14",
      center: -2.5
    },
    B227: {
      codeString: "B978;P4W:8,12"
    },
    B228: {
      codeString: "VL8:2,8;VL8:6,8;HL8:0,10;HL8:0,14"
    },
    B229: {
      codeString: "B228;B548"
    },
    B230: {
      codeString: "B597;W8N:0,7"
    },
    B231: {
      codeString: "OR84N:0,12;VL4:4,12"
    },
    B232: {
      codeString: "C4:0,10;C4:2,10"
    },
    B233: {
      codeString: "C2:0,4;C2:1,4"
    },
    B234: {
      codeString: "B622:0,4;B255:1,0"
    },
    B235: {
      codeString: "HC4N:0,8;HC4N:4,8;VL6:0,10;VL6:4,10;VL6:8,10;HL8:0,16"
    },
    B236: {
      codeString: "W8S:0,11;B285:6,0",
      center: 3
    },
    B237: {
      codeString: "RA8N:0,8;HC8S:0,12"
    },
    B238: {
      codeString: "B447;B447:0,-4"
    },
    B239: {
      codeString: "HC8S:0,12"
    },
    B240: {
      codeString: "B687;DOT:4,10;DOT:4,12;DOT:4,14"
    },
    B241: {
      codeString: "B572;P4W:9,14"
    },
    B242: {
      codeString: "DL4S:0,8;OR84S:4,12"
    },
    B243: {
      codeString: "B281;B322:4,0"
    },
    B244: {
      codeString: "B281;B666"
    },
    B245: {
      codeString: "B433;B710:4,0"
    },
    B246: {
      codeString: "B433;B548:2,0;B710:8,0"
    },
    B247: {
      codeString: "AT8N:0,8"
    },
    B248: {
      codeString: "VL8:2,8;HL4:0,10"
    },
    B249: {
      codeString: "B171;P4N:4,17"
    },
    B250: {
      codeString: "RA4N:0,8;B651;RA4S:0,14"
    },
    B251: {
      codeString: "B352;HC4E:4,10",
      center: -1
    },
    B252: {
      codeString: "S8:0,8;DOT:2,12;VL8:4,8;DOT:6,12"
    },
    B253: {
      codeString: "B161;C4:0,14;HW4N:4,15"
    },
    B254: {
      codeString: "OS8S:0,8;QC4SE:0,8;QC4SW:4,8"
    },
    B255: {
      codeString: "HC8E:0,8"
    },
    B256: {
      codeString: "B247;B401:4,0"
    },
    B257: {
      codeString: "B548;B314:2,0"
    },
    B258: {
      codeString: "B281;B636"
    },
    B259: {
      codeString: "B423;B939"
    },
    B260: {
      codeString: "B447;B292"
    },
    B261: {
      codeString: "B213;LARR8E:8,10",
      center: -4
    },
    B262: {
      codeString: "B939;B578:2,0"
    },
    B263: {
      codeString: "C4:0,12;HW4E:5,12"
    },
    B264: {
      codeString: "B939;B562"
    },
    B265: {
      codeString: "DL4S:0,12;HL8:4,16;DL4N:12,12"
    },
    B266: {
      codeString: "DOT:4,10;HL8:0,12;DOT:4,14"
    },
    B267: {
      codeString: "VL12:2,6;OC4SE:0,8;OC4NW:0,12"
    },
    B268: {
      codeString: "HC4E:0,14;B851:2,0"
    },
    B269: {
      codeString: "OS8S:0,8"
    },
    B270: {
      codeString: "DOT:0,12"
    },
    B271: {
      codeString: "LARR8S:0,8"
    },
    B272: {
      codeString: "RA4SW:0,12;DL8N:0,8"
    },
    B273: {
      codeString: "DL8S:0,8;RA4SE:4,12"
    },
    B274: {
      codeString: "B219;P4W:9,8"
    },
    B275: {
      codeString: "B695;B329:2,0"
    },
    B276: {
      codeString: "B391;HC4N:2,10",
      center: -3
    },
    B277: {
      codeString: "B426;B270:4,-6"
    },
    B278: {
      codeString: "E:0,8"
    },
    B279: {
      codeString: "B651;B278:2,0"
    },
    B280: {
      codeString: "DL8S:0,8;C8:0,8"
    },
    B281: {
      codeString: "HL8:0,16"
    },
    B282: {
      codeString: "B636;P4E:5,10"
    },
    B283: {
      codeString: "B639;P4S:6,9"
    },
    B284: {
      codeString: "B559;OR48W:0,8"
    },
    B285: {
      codeString: "C8:0,8;HW4N:2,11;HW4S:2,12"
    },
    B286: {
      codeString: "B270;RA4E:0,10"
    },
    B287: {
      codeString: "P4E:0,10;B132:3,0"
    },
    B288: {
      codeString: "DL4N:0,8;HL4:0,12;DL4N:0,12"
    },
    B289: {
      codeString: "DL8-4S:0,10;VL4:8,10;DL8-4S:8,10"
    },
    B290: {
      codeString: "B171;B894:4,0"
    },
    B291: {
      codeString: "S8:0,8"
    },
    B292: {
      codeString: "B335;B428:8,0"
    },
    B293: {
      codeString: "B289;B636:4,0"
    },
    B294: {
      codeString: "B712;B695"
    },
    B295: {
      codeString: "B518;DL2N:0,10"
    },
    B296: {
      codeString: "VL2:2,6;HW8W:0,8;HW8E:2,8"
    },
    B297: {
      codeString: "AA8S:0,8"
    },
    B298: {
      codeString: "B281;VQW4NE:4,12;QC4NE:4,12"
    },
    B299: {
      codeString: "B894;B1154"
    },
    B300: {
      codeString: "B666;QC4SE:0,10;QC4SW:4,10"
    },
    B301: {
      codeString: "B447;B1042:2,0"
    },
    B302: {
      codeString: "LARR4W:0,10;LARR4N:4,6;B651:4,0;LARR4E:8,10;LARR4S:4,14"
    },
    B303: {
      codeString: "C4:0,10;DOT:2,12"
    },
    B304: {
      codeString: "B1138;P4W:5,6"
    },
    B305: {
      codeString: "B303;P4S:0,7"
    },
    B306: {
      codeString: "B376;DOT:2,10;DOT:6,10"
    },
    B307: {
      codeString: "B447;B299:2,0"
    },
    B308: {
      codeString: "B393;B704:10,0"
    },
    B309: {
      codeString: "B513;B548:2,0;B513:8,0"
    },
    B310: {
      codeString: "HC8N:0,8;RA8S:0,12"
    },
    B311: {
      codeString: "B548;B317"
    },
    B312: {
      codeString: "B548;B433:2,0"
    },
    B313: {
      codeString: "H:0,8"
    },
    B314: {
      codeString: "AT4N:0,12"
    },
    B315: {
      codeString: "B1135;P4W:17,12"
    },
    B316: {
      codeString: "B171;B140:2,-2"
    },
    B317: {
      codeString: "B357;B281"
    },
    B318: {
      codeString: "B374;P4W:5,6",
      center: -1.5
    },
    B319: {
      codeString: "W8E:0,8"
    },
    B320: {
      codeString: "B484;B319:3,0"
    },
    B321: {
      codeString: "HC8S:0,12;HC8N:0,12"
    },
    B322: {
      codeString: "VL8:0,8;OS4W:0,8"
    },
    B323: {
      codeString: "B572;P4N:2,17"
    },
    B324: {
      codeString: "B572;P4S:2,13"
    },
    B325: {
      codeString: "C4:0,8;VL4:2,12"
    },
    B326: {
      codeString: "B1137;P4W:7,8"
    },
    B327: {
      codeString: "B400;B708:2,0"
    },
    B328: {
      codeString: "B597;B695"
    },
    B329: {
      codeString: "B457;B1154"
    },
    B330: {
      codeString: "B418;P4S:8,13",
      center: -2
    },
    B331: {
      codeString: "P4N:0,8;P4S:0,14"
    },
    B332: {
      codeString: "RA4E:0,10;RA4E:2,10"
    },
    B333: {
      codeString: "B306;P4S:2,7"
    },
    B334: {
      codeString: "DL6N:0,10;DL4S:2,10;DL2N:2,8;DL2N:6,12"
    },
    B335: {
      codeString: "LARR8E:0,10"
    },
    B336: {
      codeString: "B484;B313"
    },
    B337: {
      codeString: "VL4:0,10;P4E:2,10"
    },
    B338: {
      codeString: "QC4NW:2,8;C4:0,12"
    },
    B339: {
      codeString: "B293;B291:4,0"
    },
    B340: {
      codeString: "B1141;P4W:7,8",
      center: -0.5
    },
    B341: {
      codeString: "HW8W:0,8"
    },
    B342: {
      codeString: "B392;B700;B700:4,0"
    },
    B343: {
      codeString: "B239;B694"
    },
    B344: {
      codeString: "B281;B325:2,0"
    },
    B345: {
      codeString: "B678;C4:0,10"
    },
    B346: {
      codeString: "LARR4E:0,10;LARR4S:4,6;LARR4N:4,14;LARR4W:8,10"
    },
    B347: {
      codeString: "B106;B314:4,0"
    },
    B348: {
      codeString: "B368;B457:0,-2"
    },
    B349: {
      codeString: "B518;P4W:1,10"
    },
    B350: {
      codeString: "B122;VL8:8,4;HL4:8,4",
      center: -2
    },
    B351: {
      codeString: "C4:0,8;B314"
    },
    B352: {
      codeString: "OR48N:0,8"
    },
    B353: {
      codeString: "B303;HC4N:4,10;B303:8,0"
    },
    B354: {
      codeString: "OS8S:0,8;B148:2,0"
    },
    B355: {
      codeString: "AA8N:0,4;HL2:0,12;HL2:6,12;B247"
    },
    B356: {
      codeString: "B239;B651:2,0"
    },
    B357: {
      codeString: "B366;B366:4,0"
    },
    B358: {
      codeString: "B312;B500:8,0"
    },
    B359: {
      codeString: "B312;B455:8,0"
    },
    B360: {
      codeString: "B312;B312:8,0"
    },
    B361: {
      codeString: "B455;B500:8,0"
    },
    B362: {
      codeString: "B455;B455:8,0"
    },
    B363: {
      codeString: "B455;B312:8,0"
    },
    B364: {
      codeString: "B500;B500:8,0"
    },
    B365: {
      codeString: "C4:0,10;C4:4,10;C4:2,14;QC4NW:4,8"
    },
    B366: {
      codeString: "QC4NW:0,12"
    },
    B367: {
      codeString: "B281;HL8:0,20;VL2:8,18"
    },
    B368: {
      codeString: "DC4:0,12"
    },
    B369: {
      codeString: "HL12:0,12;HC4S:1,12"
    },
    B370: {
      codeString: "B394;B271:2,0"
    },
    B371: {
      codeString: "HW2W:0,10;HW2W:2,10;HW2W:4,10"
    },
    B372: {
      codeString: "B1143;P4W:7,4",
      center: -0.5
    },
    B373: {
      codeString: "DL6N:0,10;DL4S:4,8"
    },
    B374: {
      codeString: "DL4S:0,12;VL8:4,8"
    },
    B375: {
      codeString: "B239;HL8:0,12;HC4N:2,10"
    },
    B376: {
      codeString: "C8:0,8;VL4:4,10;HL4:2,14"
    },
    B377: {
      codeString: "B132;VL8:4,8"
    },
    B378: {
      codeString: "P4W:0,10;B319:3,0;P4E:6,10"
    },
    B379: {
      codeString: "B122:4,0;DL4S:0,8;DL4S:4,8;DL4S:8,8",
      center: 2
    },
    B380: {
      codeString: "P4E:0,14;B418:3,0"
    },
    B381: {
      codeString: "B983;B700:2,0"
    },
    B382: {
      codeString: "DL4-8N:0,8;B513:2,0",
      center: 1
    },
    B383: {
      codeString: "RA4E:0,10;B270:4,0;B270:6,0"
    },
    B384: {
      codeString: "B418;P4W:5,6"
    },
    B385: {
      codeString: "B127;DL4N:8,8;DL2S:12,8",
      center: -3
    },
    B386: {
      codeString: "B1154;B239:4,4;B1154:12,0"
    },
    B387: {
      codeString: "HL8:0,12;RA4S:8,12"
    },
    B388: {
      codeString: "B454;P4W:9,14"
    },
    B389: {
      codeString: "HL8:0,12;HC4N:4,10;QC4SE:8,8;QC4NE:8,12"
    },
    B390: {
      codeString: "B123;P4W:9,8"
    },
    B391: {
      codeString: "B122;DL4N:8,8;DL2S:12,8",
      center: -3
    },
    B392: {
      codeString: "B878;B548"
    },
    B393: {
      codeString: "B433;B548:2,0"
    },
    B394: {
      codeString: "B695;B651:2,0"
    },
    B395: {
      codeString: "AT4S:0,12;HC4N:0,10"
    },
    B396: {
      codeString: "B418;QC4SE:0,16;QC4SE:8,16"
    },
    B397: {
      codeString: "B447;B271:2,0"
    },
    B398: {
      codeString: "B291;B270:4,0"
    },
    B399: {
      codeString: "VL4:0,10;HL4:0,12;R84:4,10;HL4:12,12"
    },
    B400: {
      codeString: "AA4N:0,12;AA4N:4,12;AA4N:8,12"
    },
    B401: {
      codeString: "VL3:0,10;DOT:0,14"
    },
    B402: {
      codeString: "B335;B291:4,0",
      center: 2
    },
    B403: {
      codeString: "QC4NW:0,12;HC4N:4,10;HL4:4,12;VL4:8,12;HL8:0,16"
    },
    B404: {
      codeString: "B695:0,4;B281:8,0;B695:16,4"
    },
    B405: {
      codeString: "VL4:0,12"
    },
    B406: {
      codeString: "P4E:0,14;B1002:3,0"
    },
    B407: {
      codeString: "HL8:0,12;HC4S:0,12;VL4:8,12"
    },
    B408: {
      codeString: "B457;B457:4,0"
    },
    B409: {
      codeString: "DS8:0,4;QC4SE:0,12"
    },
    B410: {
      codeString: "B514;P4W:5,14"
    },
    B411: {
      codeString: "DL4S:0,12;DL8N:0,8"
    },
    B412: {
      codeString: "B447;OR84N:0,12"
    },
    B413: {
      codeString: "VL8:0,8;HL4:0,10;HL4:0,14;VL8:4,8"
    },
    B414: {
      codeString: "B457;B278:2,0"
    },
    B415: {
      codeString: "B281;B366:4,0"
    },
    B416: {
      codeString: "HW8W:0,8;VL8:2,8;HW8E:2,8"
    },
    B417: {
      codeString: "B418;P4W:7,10"
    },
    B418: {
      codeString: "AA8N:0,8;HL4:0,16;HL4:8,16",
      center: -2
    },
    B419: {
      codeString: "QC4NW:2,4;HW8W:0,8;HW8E:2,8"
    },
    B420: {
      codeString: "VL4:0,10;HL8:0,12;VL4:8,10"
    },
    B421: {
      codeString: "B291;RA8S:0,8"
    },
    B422: {
      codeString: "B281;QC4NE:0,12;B366:4,0"
    },
    B423: {
      codeString: "B636;VL8:4,8"
    },
    B424: {
      codeString: "B636;B303:2,0"
    },
    B425: {
      codeString: "B597;B288:4,0"
    },
    B426: {
      codeString: "VL8:0,8;B655;VL8:8,8"
    },
    B427: {
      codeString: "B428;B428:8,0"
    },
    B428: {
      codeString: "VL8:0,8"
    },
    B429: {
      codeString: "P4S:0,7;B457;P4N:0,15"
    },
    B430: {
      codeString: "B818;HC4E:0,8;HC4W:6,8"
    },
    B431: {
      codeString: "HL4:0,12;B313:4,0;B335:8,0"
    },
    B432: {
      codeString: "B636;B700:2,0"
    },
    B433: {
      codeString: "VL4:2,8;B106"
    },
    B434: {
      codeString: "B518;DL2S:0,12"
    },
    B435: {
      codeString: "W8E:0,8;QC4NW:1,4;B528:1.5,0;HC8E:1,8"
    },
    B436: {
      codeString: "HL2:0,10;RA4N:2,8;HL2:6,10;RA4E:0,10;RA4W:6,10;HL8:0,14;VL2:4,14"
    },
    B437: {
      codeString: "B548;B232:1,2"
    },
    B438: {
      codeString: "B651;B1154"
    },
    B439: {
      codeString: "B580;B829:3,0"
    },
    B440: {
      codeString: "B509;B447;B457:2,0"
    },
    B441: {
      codeString: "B420;VL4:4,10"
    },
    B442: {
      codeString: "C8:0,8;C4:2,10;QC4NW:4,4"
    },
    B443: {
      codeString: "VL4:0,8;VL4:2,8;VL4:4,8;VL4:6,8;VL10:8,6;VL4:10,8;VL4:12,8;VL4:14,8;VL4:16,8;HL16:0,12;HL4:6,16"
    },
    B444: {
      codeString: "B457:0,-6;VL8:2,8;B1154"
    },
    B445: {
      codeString: "B289;B291:4,0"
    },
    B446: {
      codeString: "B291;P4S:2,10"
    },
    B447: {
      codeString: "HC8N:0,8"
    },
    B448: {
      codeString: "B456;B270:6,2"
    },
    B449: {
      codeString: "HL4:0,12"
    },
    B450: {
      codeString: "DL4S:0,8;ARR4SW:0,12"
    },
    B451: {
      codeString: "C4:0,8;C4:0,12;VL8:2,8"
    },
    B452: {
      codeString: "VL8:0,8;HC8E:0,8"
    },
    B453: {
      codeString: "HW8E:0,8;HC8E:0,8"
    },
    B454: {
      codeString: "HC8N:0,12;B281"
    },
    B455: {
      codeString: "B548;B710:2,0"
    },
    B456: {
      codeString: "RT8SE:0,8"
    },
    B457: {
      codeString: "C4:0,10"
    },
    B458: {
      codeString: "B695:0,4;HL12:0,16"
    },
    B459: {
      codeString: "DC8:0,8"
    },
    B460: {
      codeString: "B718;P4W:5,10"
    },
    B461: {
      codeString: "HC4N:0,10;HL4:0,12;VL4:2,12"
    },
    B462: {
      codeString: "VL6:4,8;C4:0,12"
    },
    B463: {
      codeString: "HL4:0,8;VL8:2,8"
    },
    B464: {
      codeString: "B509;B457:2,0"
    },
    B465: {
      codeString: "B1142;P4W:6,16"
    },
    B466: {
      codeString: "B171;P4S:4,5"
    },
    B467: {
      codeString: "HL4:0,16;DL4-8N:2,8",
      center: -1
    },
    B468: {
      codeString: "VL8:0,8;HC4E:0,8"
    },
    B469: {
      codeString: "B303;B278:2,0"
    },
    B470: {
      codeString: "B281;B453:4,0"
    },
    B471: {
      codeString: "B440;B939"
    },
    B472: {
      codeString: "B636;P4N:2,9"
    },
    B473: {
      codeString: "DL4-8N:0,8;HL4:0,16"
    },
    B474: {
      codeString: "B112;B648:3,0"
    },
    B475: {
      codeString: "B449:2,0;B281"
    },
    B476: {
      codeString: "P4W:0,10;B477:3,0;P4E:12,10"
    },
    B477: {
      codeString: "B136;P2E:1,11"
    },
    B478: {
      codeString: "DL4-8N:1,8;HL8:2,10;DL4-8N:5,8;HL8:0,14"
    },
    B479: {
      codeString: "B548;B347"
    },
    B480: {
      codeString: "B695;B695:0,4"
    },
    B481: {
      codeString: "QC4NW:1,8;HW4W:0,12;HW4E:1,12"
    },
    B482: {
      codeString: "B1154;P4S:0,14"
    },
    B483: {
      codeString: "B281;C4:2,16;HW4W:3,16;HW4E:4,16"
    },
    B484: {
      codeString: "OS8N:0,8"
    },
    B485: {
      codeString: "B447;B457:2,0"
    },
    B486: {
      codeString: "DL2N:0,8;VL8:2,8;DL2N:2,14"
    },
    B487: {
      codeString: "B558;B558:4,0"
    },
    B488: {
      codeString: "RA4W:0,10;B270:2,0"
    },
    B489: {
      codeString: "B338;HW4W:1,12;HW4E:2,12"
    },
    B490: {
      codeString: "B291;B270:10,0",
      center: -1
    },
    B491: {
      codeString: "B291;B335:4,0",
      center: -2
    },
    B492: {
      codeString: "B291;B271:2,4"
    },
    B493: {
      codeString: "B634;B270:4,-2"
    },
    B494: {
      codeString: "HW8N:0,12;HL8:0,14;HW8S:0,14;B695:0,6"
    },
    B495: {
      codeString: "HC4N:2,10;HL8:0,12;DL2-4S:0,12;HL4:2,16;DL2-4N:6,12"
    },
    B496: {
      codeString: "HC4N:0,8;HC4N:4,8;VL6:4,10"
    },
    B497: {
      codeString: "R48:0,8"
    },
    B498: {
      codeString: "B428;B428:2,0"
    },
    B499: {
      codeString: "HL12:0,8;VL8:0,8;RA8E:0,8;RA8W:8,8;VL8:12,8;HL12:0,16"
    },
    B500: {
      codeString: "B548;B513:2,0"
    },
    B501: {
      codeString: "B325;B281:2,0;B666:6,0"
    },
    B502: {
      codeString: "DOT:2,10;HL4:0,12;DOT:2,14"
    },
    B503: {
      codeString: "HW8E:0,8"
    },
    B504: {
      codeString: "B122;P4W:9,14",
      center: -1.5
    },
    B505: {
      codeString: "B712;B313"
    },
    B506: {
      codeString: "QC4NW:4,8;HC4N:0,10;HC4N:4,10;HC8S:0,12;B528:3.5,0"
    },
    B507: {
      codeString: "QC4NW:3,4;VQW4NW:1,8;VQW4NE:3,8;HW4W:0,12;HW4E:5,12;HL4:1,16"
    },
    B508: {
      codeString: "B801;C2:2,9;C2:2,13"
    },
    B509: {
      codeString: "DL8S:0,8"
    },
    B510: {
      codeString: "B434;P4W:3,12"
    },
    B511: {
      codeString: "QC4NW:2,4;VL2:2,8;HC2N:0,9;HC2N:2,9;VL4:0,10;VL4:4,10;HC4S:0,14"
    },
    B512: {
      codeString: "HL8:0,16;VL8:4,8"
    },
    B513: {
      codeString: "HL4:0,16;VL8:2,8"
    },
    B514: {
      codeString: "VL4:0,8;DL4S:0,12;HL4:0,16"
    },
    B515: {
      codeString: "HL8:0,16;VL4:8,12"
    },
    B516: {
      codeString: "RA8N:0,12;VL4:8,12"
    },
    B517: {
      codeString: "VL4:0,8;HL4:0,12;VL4:4,12"
    },
    B518: {
      codeString: "VL8:0,8;HL4:0,16"
    },
    B519: {
      codeString: "RA8E:0,8;HL4:0,16"
    },
    B520: {
      codeString: "OR84S:0,12;HL2:8,16;B695:10,4;B170:10,0"
    },
    B521: {
      codeString: "HC4S:0,8;HC4W:2,8;B122:4,0",
      center: 2
    },
    B522: {
      codeString: "B156;P4S:6,5"
    },
    B523: {
      codeString: "B1140;P4W:9,10"
    },
    B524: {
      codeString: "HL4:0,12;VL4:2,12"
    },
    B525: {
      codeString: "QC4NE:0,4;VL4:4,4;QC4NW:4,4;HC4N:2,8;VL4:2,10;VL4:6,10;HC4S:2,14"
    },
    B526: {
      codeString: "B1086;P4W:13,12"
    },
    B527: {
      codeString: "C4:0,12;HL8:2,12;HL8:2,16"
    },
    B528: {
      codeString: "HW2W:0,13;HW2E:0.5,13"
    },
    B529: {
      codeString: "B180;HL8:1,14"
    },
    B530: {
      codeString: "DL4S:0,8;OR48N:4,8;HC4E:8,10"
    },
    B531: {
      codeString: "B281;P4S:2,14"
    },
    B532: {
      codeString: "B447;B840"
    },
    B533: {
      codeString: "B325;QC4NW:2,12"
    },
    B534: {
      codeString: "B884;B688:10,0;HL6:12,16"
    },
    B535: {
      codeString: "HC4W:0,8;DC4:2,12;HC4E:6,8"
    },
    B536: {
      codeString: "B411;B281"
    },
    B537: {
      codeString: "B338;B528:1.5,0"
    },
    B538: {
      codeString: "B411;P4W:9,6",
      center: -1.5
    },
    B539: {
      codeString: "B878;B695"
    },
    B540: {
      codeString: "B559;B270:6,0"
    },
    B541: {
      codeString: "B620;VL8:0,8;HL8:0,16"
    },
    B542: {
      codeString: "OR84N:0,12;DL4N:8,8"
    },
    B543: {
      codeString: "HW2N:1,9.5;VL6:1,10;HL2:0,12;HL3:1,16;HC2E:4,14"
    },
    B544: {
      codeString: "DOT:0,16;DOT:4,12;DOT:4,16"
    },
    B545: {
      codeString: "B289;B105:4,0"
    },
    B546: {
      codeString: "B503;B341:4,0"
    },
    B547: {
      codeString: "B198;LARR4E:8,10",
      center: -2
    },
    B548: {
      codeString: "RA8N:0,8"
    },
    B549: {
      codeString: "B1129;P4W:9,16"
    },
    B550: {
      codeString: "HL16:0,16;HL8:8,8;VL8:16,8"
    },
    B551: {
      codeString: "B559;B559:4,0"
    },
    B552: {
      codeString: "AT8N:0,8;DL8-4S:4,8;DL4N:8,12"
    },
    B553: {
      codeString: "B484;B699:3,0"
    },
    B554: {
      codeString: "B335:4,0;B335:0,4"
    },
    B555: {
      codeString: "DL4N:0,12;DLOC4SW:4,8;C4:4,8;SC4:4,8"
    },
    B556: {
      codeString: "B695;B271:2,0"
    },
    B557: {
      codeString: "C2:0,11;C2:2,10;C2:2,12;QC4NE:4,12"
    },
    B558: {
      codeString: "RA8W:0,8"
    },
    B559: {
      codeString: "RA8E:0,8"
    },
    B560: {
      codeString: "B548;B513:6,0;B548:8,0"
    },
    B561: {
      codeString: "COMMA:0,12;COMMA:2,12"
    },
    B562: {
      codeString: "B313;B281"
    },
    B563: {
      codeString: "B428;B145:2,0",
      center: 1
    },
    B564: {
      codeString: "B391;QC2SE:14,8",
      center: -4
    },
    B565: {
      codeString: "B695:0,4;B357:2,0"
    },
    B566: {
      codeString: "RA8SW:0,8;RA2NE:0,14"
    },
    B567: {
      codeString: "C8:0,8;C4:2,10"
    },
    B568: {
      codeString: "B335;B695:0,4"
    },
    B569: {
      codeString: "B1148;P4S:2,13"
    },
    B570: {
      codeString: "HW4W:0,12;HL4:1,12;HL4:1,16;HW4E:5,12"
    },
    B571: {
      codeString: "B418;B700:0,4;B700:8,4",
      center: -2
    },
    B572: {
      codeString: "OS8W:0,8"
    },
    B573: {
      codeString: "B1119;QC4SW:4,16"
    },
    B574: {
      codeString: "VL4:0,8;B239;VL4:8,8"
    },
    B575: {
      codeString: "VL8:0,8;DL4S:0,8;HL4:0,12"
    },
    B576: {
      codeString: "B170;DL4S:4,8"
    },
    B577: {
      codeString: "B265;QC4NE:4,12;QC4NW:8,12"
    },
    B578: {
      codeString: "HL4:0,10;HL4:0,14"
    },
    B579: {
      codeString: "DL1-2N:0,8;RA4SE:4,12;RA4SE:8,8"
    },
    B580: {
      codeString: "B447;B247"
    },
    B581: {
      codeString: "C4:0,12;VL8:4,8;C4:4,12"
    },
    B582: {
      codeString: "VL8:0,8;W8E:2,8;VL8:6,8"
    },
    B583: {
      codeString: "B291;B457:2,0"
    },
    B584: {
      codeString: "B281;DOT:2,18;DOT:6,18"
    },
    B585: {
      codeString: "DL8-4N:0,10;AT4N:2,12"
    },
    B586: {
      codeString: "C4:2,8;C4:0,12;C4:4,12;VL2:4,14;QC4SE:0,16"
    },
    B587: {
      codeString: "OS8S:0,8;HL8:0,12"
    },
    B588: {
      codeString: "B1006;P4W:9,10"
    },
    B589: {
      codeString: "B171;P4S:8,5"
    },
    B590: {
      codeString: "HL4:0,8;VL6:2,8;HL4:0,14;HC4S:0,14"
    },
    B591: {
      codeString: "B572;B556"
    },
    B592: {
      codeString: "B171;P4W:13,10"
    },
    B593: {
      codeString: "B291;P4W:9,10"
    },
    B594: {
      codeString: "B239;B271:2,4"
    },
    B595: {
      codeString: "B239;B695"
    },
    B596: {
      codeString: "B688;QC4SE:8,8"
    },
    B597: {
      codeString: "HL8:0,8"
    },
    B598: {
      codeString: "B1084;OS4S:0,12"
    },
    B599: {
      codeString: "B291;B303:2,0"
    },
    B600: {
      codeString: "B473;B1154:0,2"
    },
    B601: {
      codeString: "HL8:0,16;HC4N:4,14;DL4N:8,12"
    },
    B602: {
      codeString: "HC4N:0,12;HC4S:4,14;HC4N:8,12"
    },
    B603: {
      codeString: "B602;B695:2,6"
    },
    B604: {
      codeString: "B695;VL6:4,8;B622:3,4"
    },
    B605: {
      codeString: "B604;P4W:6,14"
    },
    B606: {
      codeString: "B651:0,2;B651:4,-2"
    },
    B607: {
      codeString: "B548;B106:2,0"
    },
    B608: {
      codeString: "B278;B1154"
    },
    B609: {
      codeString: "B265;B695:4,0"
    },
    B610: {
      codeString: "B636;P4S:2,13"
    },
    B611: {
      codeString: "RA8SW:0,8;DL4N:0,12"
    },
    B612: {
      codeString: "W8S:0,11;HW4N:8,11;HW4S:8,12"
    },
    B613: {
      codeString: "C4:2,10;HC8N:0,12;HW4E:4,12"
    },
    B614: {
      codeString: "DL4N:0,12;DLOC4SW:4,8;C4:4,8"
    },
    B615: {
      codeString: "DL4-8S:0,8;HL4:4,16"
    },
    B616: {
      codeString: "B513;B548:2,0"
    },
    B617: {
      codeString: "B482;B457"
    },
    B618: {
      codeString: "B1119;C8:0,8;C4:2,10"
    },
    B619: {
      codeString: "RA4NW:0,12;RA4NW:4,8"
    },
    B620: {
      codeString: "HL8:0,8;VL4:4,8;HL4:4,12;VL8:8,8"
    },
    B621: {
      codeString: "AT8N:0,8;AT8S:0,10"
    },
    B622: {
      codeString: "VL4:1,10;DC2:0,11"
    },
    B623: {
      codeString: "B695;B678:2,0"
    },
    B624: {
      codeString: "B572;B623"
    },
    B625: {
      codeString: "B325;P4W:3,12"
    },
    B626: {
      codeString: "B393;B455:10,0"
    },
    B627: {
      codeString: "B704;B312:8,0"
    },
    B628: {
      codeString: "B171;P4S:4,10"
    },
    B629: {
      codeString: "RT4SE:0,12"
    },
    B630: {
      codeString: "B291;B319:3,0"
    },
    B631: {
      codeString: "B161;DOT:1,12;DOT:3,12;DOT:2,13"
    },
    B632: {
      codeString: "B1150;P4S:2,13"
    },
    B633: {
      codeString: "DOT:0,8;HL4:2,8;DOT:8,8;VL4:0,10;VL4:8,10;DOT:0,16;HL4:2,16;DOT:8,16"
    },
    B634: {
      codeString: "HL8:0,12"
    },
    B635: {
      codeString: "B1063;B335:4,0"
    },
    B636: {
      codeString: "C8:0,8"
    },
    B637: {
      codeString: "B695:0,4;B1154"
    },
    B638: {
      codeString: "B851;W8W:7,8;DL2S:8,8"
    },
    B639: {
      codeString: "OR84S:0,12"
    },
    B640: {
      codeString: "P4E:0,8;B124:3,0",
      center: 2.5
    },
    B641: {
      codeString: "B201:0,-4;HL15:0,12;B700:3,0;B700:7,0;B700:11,0;DL2N:12,9;DL2S:13,10"
    },
    B642: {
      codeString: "B473;B457"
    },
    B643: {
      codeString: "B108;HL4:0,12"
    },
    B644: {
      codeString: "B1121;B1121:4,0"
    },
    B645: {
      codeString: "B927;DOT:2,18"
    },
    B646: {
      codeString: "B270:0,2;B647:1,0",
      center: 0.5
    },
    B647: {
      codeString: "DL2N:0,11"
    },
    B648: {
      codeString: "HW4W:0,12"
    },
    B649: {
      codeString: "B270;B270:2,0;RA4W:4,10"
    },
    B650: {
      codeString: "RT4E:0,10"
    },
    B651: {
      codeString: "S4:0,10"
    },
    B652: {
      codeString: "B647;B270:3,-2",
      center: -0.5
    },
    B653: {
      codeString: "B335;B428:4,0"
    },
    B654: {
      codeString: "P4E:0,10;B374:3,0"
    },
    B655: {
      codeString: "C8:0,8;RA4SW:4,8"
    },
    B656: {
      codeString: "B700;P4W:5,12"
    },
    B657: {
      codeString: "P4E:0,10;VL4:4,10",
      center: -1
    },
    B658: {
      codeString: "B418;P4W:13,14",
      center: -3.5
    },
    B659: {
      codeString: "B695:0,4;B212:2,0"
    },
    B660: {
      codeString: "B374;B651:2,0",
      center: 1
    },
    B661: {
      codeString: "B291;P4S:2,5"
    },
    B662: {
      codeString: "AT4S:0,12;VL2:2,10"
    },
    B663: {
      codeString: "VL2:2,6;VL2:6,6;S8:0,8;VL2:2,16;VL2:6,16"
    },
    B664: {
      codeString: "B827;HL4:8,12;B700:8,0;DL2N:9,9;DL2S:10,10"
    },
    B665: {
      codeString: "RA2NE:0,14;HL8:2,16;RA2NW:10,14"
    },
    B666: {
      codeString: "QC4SE:0,8;VL8:4,8;QC4SW:4,8"
    },
    B667: {
      codeString: "B281;B700:2,0"
    },
    B668: {
      codeString: "B188;OS4S:0,8"
    },
    B669: {
      codeString: "B666;P4W:5,12"
    },
    B670: {
      codeString: "B447;B1048"
    },
    B671: {
      codeString: "B281;C4:2,16;B416:2,0"
    },
    B672: {
      codeString: "B122;HC8N:0,8;DL4N:8,8",
      center: -2
    },
    B673: {
      codeString: "B447;B502:2,0"
    },
    B674: {
      codeString: "B548;VL6:4,8;HC4S:4,14"
    },
    B675: {
      codeString: "B607;B11:7,0;B500:8,0"
    },
    B676: {
      codeString: "B634;B270:4,2"
    },
    B677: {
      codeString: "VL4:2,10;P4E:0,10"
    },
    B678: {
      codeString: "LARR8N:0,8"
    },
    B679: {
      codeString: "DL8S:0,8;RA4NW:0,8"
    },
    B680: {
      codeString: "DL8N:0,8;RA4NE:4,8"
    },
    B681: {
      codeString: "B171;B314:4,-2"
    },
    B682: {
      codeString: "HW8W:0,8;HL8:2,8;HL2:2,16;HL2:8,16;HW8E:10,8;B314:4,-2;P4N:4,16"
    },
    B683: {
      codeString: "B1144;P4S:10,13"
    },
    B684: {
      codeString: "C4:2,12;B1119"
    },
    B685: {
      codeString: "QC4NW:4,12;B281;C4:2,16"
    },
    B686: {
      codeString: "B685;HW4W:3,16;HW4E:4,16"
    },
    B687: {
      codeString: "HC4N:2,8;VL4:2,10;VL4:6,10;HC4S:2,14;B1119"
    },
    B688: {
      codeString: "HL8:0,12;B700;B700:4,0"
    },
    B689: {
      codeString: "DL4S:0,8;B688:4,0"
    },
    B690: {
      codeString: "B171:3,0;P4E:0,10;P4W:16,10"
    },
    B691: {
      codeString: "B572;P4W:9,10"
    },
    B692: {
      codeString: "DC2:0,8;VL8:1,8"
    },
    B693: {
      codeString: "B411;DL4N:8,12;DL8S:4,8"
    },
    B694: {
      codeString: "B939;B651:2,0"
    },
    B695: {
      codeString: "W8N:0,11"
    },
    B696: {
      codeString: "B636;B556"
    },
    B697: {
      codeString: "HL8:0,12;AT4N:2,12"
    },
    B698: {
      codeString: "B636;P4W:1,10"
    },
    B699: {
      codeString: "OC2SW:0,10;VL1:1,12;DOT:1,14"
    },
    B700: {
      codeString: "C4:0,12;DLIC4N:0,12;DLIC4S:0,12"
    },
    B701: {
      codeString: "B212;B700"
    },
    B702: {
      codeString: "B281;B561:3,0"
    },
    B703: {
      codeString: "B281;B699:3,0"
    },
    B704: {
      codeString: "B548;B710:6,0"
    },
    B705: {
      codeString: "B114;B335:4,0",
      center: -2
    },
    B706: {
      codeString: "B291;SC8:0,8"
    },
    B707: {
      codeString: "B291;VL8:2,8;VL8:6,8;HL8:0,10;HL8:0,14"
    },
    B708: {
      codeString: "QC4NE:0,8;QC4NW:4,8"
    },
    B709: {
      codeString: "B120:0,-4"
    },
    B710: {
      codeString: "VL4:2,8;B314"
    },
    B711: {
      codeString: "B106;B106:0,-4"
    },
    B712: {
      codeString: "B597;B281"
    },
    B713: {
      codeString: "HL12:0,16;B602:0,4"
    },
    B714: {
      codeString: "B132;P4W:1,6"
    },
    B715: {
      codeString: "B1135;P4S:10,13"
    },
    B716: {
      codeString: "LARRC8EC:0,8",
      center: -1
    },
    B717: {
      codeString: "AA4S:0,8;HL4:0,12;HL4:0,14;VL4:2,12"
    },
    B718: {
      codeString: "B132;HC4N:0,10"
    },
    B719: {
      codeString: "B377;B106"
    },
    B720: {
      codeString: "VL8:4,8;DL4N:0,8;HL4:0,12"
    },
    B721: {
      codeString: "B170;DL4N:0,8"
    },
    B722: {
      codeString: "B695;B617:2,0"
    },
    B723: {
      codeString: "B678;B271:4,0"
    },
    B724: {
      codeString: "VL8:0,8;HW4N:0,7;HW4S:0,8;HW4S:0,16;VL8:4,8"
    },
    B725: {
      codeString: "B313;B355"
    },
    B726: {
      codeString: "B313;B247"
    },
    B727: {
      codeString: "B313;B733"
    },
    B728: {
      codeString: "B513;B737:0,-2"
    },
    B729: {
      codeString: "B708;B513:2,0"
    },
    B730: {
      codeString: "B246;B622:5,0"
    },
    B731: {
      codeString: "HC2W:0,14;HL8:1,14;HL8:1,16;HC2E:9,14"
    },
    B732: {
      codeString: "B570;HL6:0,14"
    },
    B733: {
      codeString: "B447:0,-4;B247"
    },
    B734: {
      codeString: "P4W:0,10;B355:3,0;P4E:12,10"
    },
    B735: {
      codeString: "B313;B894:2,0"
    },
    B736: {
      codeString: "B803;B513:2,0"
    },
    B737: {
      codeString: "HC4S:0,8"
    },
    B738: {
      codeString: "HW4W:0,8;HW4E:3,8"
    },
    B739: {
      codeString: "B500;B548:8,0"
    },
    B740: {
      codeString: "B455;B548:8,0"
    },
    B741: {
      codeString: "B312;B548:8,0"
    },
    B742: {
      codeString: "B739;B622:11,0"
    },
    B743: {
      codeString: "B712;B303:2,0"
    },
    B744: {
      codeString: "HL12:0,10;VL6:0,10;VL2:10,12;HL8:2,14;VL6:12,10;HL12:0,16"
    },
    B745: {
      codeString: "W8E:0,8;W8W:6,8;HL6:1,16"
    },
    B746: {
      codeString: "B412;B699:3,0"
    },
    B747: {
      codeString: "RT8S:0,8;VL4:4,12;HL8:0,16"
    },
    B748: {
      codeString: "C8:0,8;B894:2,0"
    },
    B749: {
      codeString: "HL4:0,11;HL4:0,13;HC4N:2,8;VL4:2,10;HC4S:2,14"
    },
    B750: {
      codeString: "B467;HL4:8,16;DL4-8S:6,8"
    },
    B751: {
      codeString: "B447;B106:2,0"
    },
    B752: {
      codeString: "HC8N:0,8;HL12:0,12"
    },
    B753: {
      codeString: "B167;B457:2,0"
    },
    B754: {
      codeString: "HW8N:0,12;HL8:0,14;HW8S:0,14"
    },
    B755: {
      codeString: "HL4:0,8;VL8:0,8;VL8:2,8;VL8:4,8"
    },
    B756: {
      codeString: "B731:0,-4;B700:1,0;B700:5,0"
    },
    B757: {
      codeString: "B518:2,0;B700"
    },
    B758: {
      codeString: "B292;B335:8,0"
    },
    B759: {
      codeString: "C4:0,10;C4:3,10;C4:6,10"
    },
    B760: {
      codeString: "HC8E:0,8;LARR8E:0,10"
    },
    B761: {
      codeString: "B695:0,4;P4S:0,12"
    },
    B762: {
      codeString: "B720;P4W:5,12"
    },
    B763: {
      codeString: "B720:1,0;P4N:0,13"
    },
    B764: {
      codeString: "B170;P4S:5,9"
    },
    B765: {
      codeString: "B170;P4W:9,10"
    },
    B766: {
      codeString: "P4E:0,10;B170:3,0"
    },
    B767: {
      codeString: "B170;P4N:2,17"
    },
    B768: {
      codeString: "B170;P4N:2,13"
    },
    B769: {
      codeString: "B170;VL4:0,12"
    },
    B770: {
      codeString: "B695:0,4;DL4N:1,12;DL4N:3,14;DL2S:1,16;DL2S:5,12;DL5N:6,8"
    },
    B771: {
      codeString: "B695:0,4;DL4N:1,12;DL4N:3,14;DL2S:1,16;DL2S:5,12;DL2N:6,11;DL4N:7,6;DL4N:9,8;DL2S:7,10;DL2S:11,6"
    },
    B772: {
      codeString: "B170;RA4NW:0,8"
    },
    B773: {
      codeString: "HC8N:0,4;B1040"
    },
    B774: {
      codeString: "C8:0,4;OR42N:2,12"
    },
    B775: {
      codeString: "B392;B270:4,0"
    },
    B776: {
      codeString: "B265;HC8N:4,12"
    },
    B777: {
      codeString: "DOT:0,10;DOT:0,14;DOT:4,10;DOT:4,14"
    },
    B778: {
      codeString: "S4:0,8;VL4:2,12"
    },
    B779: {
      codeString: "HC4N:0,8;VL4:0,10;VL4:4,10;HL4:0,14;VL2:2,14"
    },
    B780: {
      codeString: "B395;P4W:4,8"
    },
    B781: {
      codeString: "R84:0,10;RA4E:0,10;RA4W:6,10"
    },
    B782: {
      codeString: "RT4E:0,10;S4:2,10;RT4W:6,10"
    },
    B783: {
      codeString: "LARRHC8NC:0,8;LARRHC8SC:2,12",
      center: -2
    },
    B784: {
      codeString: "B450;B428:4,0"
    },
    B785: {
      codeString: "ARR4NW:0,8;ARR4SW:0,12;B428:4,0"
    },
    B786: {
      codeString: "B374;B457:2,0"
    },
    B787: {
      codeString: "DL4S:0,8;DL4N:5,8;VL4:4,12;VL4:5,12"
    },
    B788: {
      codeString: "B630;P4S:2,5"
    },
    B789: {
      codeString: "OS4N:0,12;HC4E:4,12",
      center: -1
    },
    B790: {
      codeString: "OS4N:0,12;DL4N:4,8"
    },
    B791: {
      codeString: "HL8:0,10;HC4N:2,8"
    },
    B792: {
      codeString: "HC4W:0,8;OS8N:2,8;HC4E:10,8"
    },
    B793: {
      codeString: "HL2:0,14;R84:2,12;HL2:10,14"
    },
    B794: {
      codeString: "B280;P4W:8,7"
    },
    B795: {
      codeString: "B280;P4W:9,14"
    },
    B796: {
      codeString: "B280:3,0;P4E:0,6"
    },
    B797: {
      codeString: "B695:0,4;B456:8,0"
    },
    B798: {
      codeString: "OR84N:0,8;RA4S:0,8;RA4S:4,8"
    },
    B799: {
      codeString: "B281;B695:8,4;B281:16,0"
    },
    B800: {
      codeString: "HL12:0,12;C8:2,8"
    },
    B801: {
      codeString: "HW8W:0,8;HW8E:4,8"
    },
    B802: {
      codeString: "B447;B699:3,0"
    },
    B803: {
      codeString: "B447;LARR4E:8,10",
      center: -2
    },
    B804: {
      codeString: "B377;B447"
    },
    B805: {
      codeString: "B1130;P4W:8,8"
    },
    B806: {
      codeString: "B1131;P4W:9,15"
    },
    B807: {
      codeString: "B321;QC2SW:8,12"
    },
    B808: {
      codeString: "B1134;P4W:9,13"
    },
    B809: {
      codeString: "B1133;P4W:9,15",
      center: -1.5
    },
    B810: {
      codeString: "B123;QC2SW:8,12",
      center: -1
    },
    B811: {
      codeString: "B566;P4N:2,17"
    },
    B812: {
      codeString: "B851;VL2:0,16;VL2:4,16;VL2:8,16"
    },
    B813: {
      codeString: "B447;HL4:2,12;AT4N:2,12"
    },
    B814: {
      codeString: "R84:0,10;VL4:4,10"
    },
    B815: {
      codeString: "B291;B723"
    },
    B816: {
      codeString: "B817;B548:8,0;HL8:8,16;VL8:12,8;VL4:16,12"
    },
    B817: {
      codeString: "B392;VL8:4,8"
    },
    B818: {
      codeString: "B321;VL4:0,8;VL4:8,8"
    },
    B819: {
      codeString: "B550;B191:8,0"
    },
    B820: {
      codeString: "B803;B451:2,0"
    },
    B821: {
      codeString: "OR48N:0,8;RA4N:0,6"
    },
    B822: {
      codeString: "B566:3,0;P4E:0,10",
      center: 1.5
    },
    B823: {
      codeString: "B428;B120:2,0;B428:8,0"
    },
    B824: {
      codeString: "R84:0,10"
    },
    B825: {
      codeString: "RA4N:0,6;VL8:0,8;HL16:0,16;VL4:4,8;RA8N:4,8;VL4:12,8;RA4N:12,6;VL8:16,8"
    },
    B826: {
      codeString: "B447;B206:4,0"
    },
    B827: {
      codeString: "C8:0,8;DLIC8N:0,8;DLIC8S:0,8"
    },
    B828: {
      codeString: "B447;B829:3,0"
    },
    B829: {
      codeString: "VL2:1,10;C2:0,13"
    },
    B830: {
      codeString: "HL12:0,12;AA4N:4,12;AA4N:8,12;VL4:12,8;HL2:12,8",
      center: 1
    },
    B831: {
      codeString: "LARR8W:0,10;VL4:8,8"
    },
    B832: {
      codeString: "B239;B829:3,0"
    },
    B833: {
      codeString: "HC4N:0,10;R84:0,12"
    },
    B834: {
      codeString: "B122;B845"
    },
    B835: {
      codeString: "B447;B678:2,0"
    },
    B836: {
      codeString: "LARRHC8NC:0,12",
      center: -1
    },
    B837: {
      codeString: "B945;B433:2,0"
    },
    B838: {
      codeString: "B945;B513:2,0"
    },
    B839: {
      codeString: "B945;B710:2,0"
    },
    B840: {
      codeString: "RT8N:0,12"
    },
    B841: {
      codeString: "B412;B270:4,0"
    },
    B842: {
      codeString: "HC4N:0,8;VL4:0,10;VL4:4,10;HC4S:0,14"
    },
    B843: {
      codeString: "B265;HL8:4,14"
    },
    B844: {
      codeString: "HL8:0,12;DL4S:0,12"
    },
    B845: {
      codeString: "DL2S:0,10;DL2S:2,10;DL2S:4,10"
    },
    B846: {
      codeString: "DL8-4N:0,12;HL4:8,12"
    },
    B847: {
      codeString: "B695:0,4;B366:4,0"
    },
    B848: {
      codeString: "B639;P4S:2,9"
    },
    B849: {
      codeString: "HL8:0,12;VL4:2,12;VL4:6,12;HL8:0,16"
    },
    B850: {
      codeString: "B391;DL2N:13,7",
      center: -3.5
    },
    B851: {
      codeString: "HC8N:0,12;B695:0,4"
    },
    B852: {
      codeString: "B871;P4W:5,8"
    },
    B853: {
      codeString: "B871;P4W:5,14"
    },
    B854: {
      codeString: "HC8N:0,12"
    },
    B855: {
      codeString: "B856;P4W:9,12"
    },
    B856: {
      codeString: "VL8:4,8;HW8N:0,12;HL8:0,14"
    },
    B857: {
      codeString: "VL6:2,8;VL8:4,8;VL6:6,8;HC4S:2,14;B281;C4:2,16"
    },
    B858: {
      codeString: "DOT:0,8;DOT:0,12;DOT:0,16;DOT:4,10;DOT:4,14;DOT:8,10;DOT:8,14;B695:6,0"
    },
    B859: {
      codeString: "OR84S:0,12;HC8S:0,12"
    },
    B860: {
      codeString: "B695;B939"
    },
    B861: {
      codeString: "B866;DOT:2,10;DOT:2,12"
    },
    B862: {
      codeString: "B527;DOT:6,14;DOT:8,14"
    },
    B863: {
      codeString: "B114;B695:2,0",
      center: -1
    },
    B864: {
      codeString: "R84:0,10;VL4:2,10;VL4:4,10;VL4:6,10"
    },
    B865: {
      codeString: "B651;B462:2,0"
    },
    B866: {
      codeString: "VL8:0,8;VL8:4,8;C4:0,14"
    },
    B867: {
      codeString: "HL4:0,8;B866"
    },
    B868: {
      codeString: "B871;P4W:5,10"
    },
    B869: {
      codeString: "QC4NW:0,12;HL2:4,12;QC4NW:2,12;HL2:0,16"
    },
    B870: {
      codeString: "B871;P4W:5,6"
    },
    B871: {
      codeString: "HL4:0,8;HL4:0,10;HL4:0,12;HL4:0,14;HL4:0,16"
    },
    B872: {
      codeString: "VL8:0,8;P4W:1,8"
    },
    B873: {
      codeString: "B856;P4W:5,8"
    },
    B874: {
      codeString: "B871;P4W:5,12"
    },
    B875: {
      codeString: "B573;VL8:4,8"
    },
    B876: {
      codeString: "B736;LARR4W:14,10"
    },
    B877: {
      codeString: "B597;B423;B281"
    },
    B878: {
      codeString: "OR84N:0,12"
    },
    B879: {
      codeString: "B391;P4W:9,14",
      center: -3
    },
    B880: {
      codeString: "HC8W:0,8;HC4E:4,8;HC4E:4,12"
    },
    B881: {
      codeString: "B391;P4W:15,8",
      center: -4.5
    },
    B882: {
      codeString: "B1128;P4W:7,10"
    },
    B883: {
      codeString: "P4W:0,10;B513:3,0;P4E:8,10"
    },
    B884: {
      codeString: "OR84S:0,12;HL4:8,16"
    },
    B885: {
      codeString: "B803;B457:2,0"
    },
    B886: {
      codeString: "B238;B2115:4,0"
    },
    B887: {
      codeString: "LARROC8NWC:0,8",
      center: 1
    },
    B888: {
      codeString: "B887;B281:2,0"
    },
    B889: {
      codeString: "B1136;P4S:10,13"
    },
    B890: {
      codeString: "B695;HW4N:4,11"
    },
    B891: {
      codeString: "VL4:0,10;HL4:0,12"
    },
    B892: {
      codeString: "HL12:0,12;B700;B700:4,0;B700:8,0"
    },
    B893: {
      codeString: "B271:2,0;B281"
    },
    B894: {
      codeString: "C4:0,10;VL4:2,10"
    },
    B895: {
      codeString: "B635;VL8:12,8"
    },
    B896: {
      codeString: "C8:0,8;B622:3,0"
    },
    B897: {
      codeString: "B447;B516"
    },
    B898: {
      codeString: "B438;DOT:2,12"
    },
    B899: {
      codeString: "R48:0,8;HL4:0,12"
    },
    B900: {
      codeString: "B280;P2SW:5,10"
    },
    B901: {
      codeString: "B291;B829:3,0"
    },
    B902: {
      codeString: "B86;B81:2,0",
      isIndicator: true
    },
    B903: {
      codeString: "HL2:0,5",
      isIndicator: true
    },
    B904: {
      codeString: "DL2N:0,4",
      isIndicator: true
    },
    B905: {
      codeString: "AT2N:0,4",
      isIndicator: true
    },
    B906: {
      codeString: "VL2:0.5,4;HL1:0,6;DL.5N:0,4",
      isIndicator: true,
      width: 1
    },
    B907: {
      codeString: "VL1.25:0,4;DOT:0,6",
      isIndicator: true
    },
    B908: {
      codeString: "DL2S:0,4",
      isIndicator: true
    },
    B909: {
      codeString: "VL2:0,4",
      isIndicator: true
    },
    B910: {
      codeString: "P2E:0,4;VL2:2,4",
      isIndicator: true
    },
    B911: {
      codeString: "B92;B86:1,0",
      isIndicator: true,
      width: 3
    },
    B912: {
      codeString: "B92;B270:1,-8",
      isIndicator: true,
      width: 1
    },
    B913: {
      codeString: "SC2:0,4",
      isIndicator: true
    },
    B914: {
      codeString: "B928;B86:3,0",
      isIndicator: true,
      width: 5
    },
    B915: {
      codeString: "HC1N:0,4;DL1-1.5N:0,4.5;HL1:0,6",
      isIndicator: true
    },
    B916: {
      codeString: "OC1SW:0,4;OC1NW:0,5",
      isIndicator: true
    },
    B917: {
      codeString: "B239;LARR4E:8,10",
      center: -2
    },
    B918: {
      codeString: "B239;HC2E:8,12"
    },
    B919: {
      codeString: "QC4SW:0,12"
    },
    B920: {
      codeString: "B239;B271:2,0"
    },
    B921: {
      codeString: "HL8:0,12;C4:2,10"
    },
    B922: {
      codeString: "HW2E:0,11;HW4E:1,10;HW8E:1,8"
    },
    B923: {
      codeString: "P4S:0,9;B619:1,0"
    },
    B924: {
      codeString: "B695;B325:2,0"
    },
    B925: {
      codeString: "C2:0,8;C8:1,8;C2:8,8;DOT:3,12;DOT:7,12;DOT:5,14"
    },
    B926: {
      codeString: "LARRHC8NCC:0,12",
      center: 1
    },
    B927: {
      codeString: "B936;HL4:0,12"
    },
    B928: {
      codeString: "B92;B87:1.5,0",
      isIndicator: true
    },
    B929: {
      codeString: "B335;B651:8,0",
      center: 4
    },
    B930: {
      codeString: "B447;B319:3,0"
    },
    B931: {
      codeString: "B447;B303:2,0"
    },
    B932: {
      codeString: "B447;B660"
    },
    B933: {
      codeString: "HL4:0,12;DL4S:4,12"
    },
    B934: {
      codeString: "DC8:0,8;VL4:0,12;VL4:8,12"
    },
    B935: {
      codeString: "B335;B392:4,0",
      center: 2
    },
    B936: {
      codeString: "HL4:0,8;VL8:2,8;HL4:0,16"
    },
    B937: {
      codeString: "B368:0,-4;HL4:0,12"
    },
    B938: {
      codeString: "B447;B2115:4,0"
    },
    B939: {
      codeString: "DL8N:0,8"
    },
    B940: {
      codeString: "B335;VL2:8,8;VL2:8,14"
    },
    B941: {
      codeString: "LARR4W:0,10;LARR4N:4,6;LARR4S:4,14;LARR4E:8,10"
    },
    B942: {
      codeString: "C4:0,12;HC8N:2,8;C4:8,12"
    },
    B943: {
      codeString: "B335;VL2:4,8;VL2:4,14"
    },
    B944: {
      codeString: "B239;LARRHC8NC:4,10",
      center: -3
    },
    B945: {
      codeString: "B597;B894:2,-6"
    },
    B946: {
      codeString: "VL4:0,10;VL4:8,10"
    },
    B947: {
      codeString: "B239;HL8:0,12"
    },
    B948: {
      codeString: "B412;B335:4,0",
      center: -2
    },
    B949: {
      codeString: "B239;B678:2,0"
    },
    B950: {
      codeString: "S8:0,8;VL8:2,8;VL8:4,8;VL8:6,8;HL8:0,10;HL8:0,12;HL8:0,14"
    },
    B951: {
      codeString: "B10:0,-4;DL4-8N:2,8;B11:6,0"
    },
    B952: {
      codeString: "HL4:0,8;HL4:0,16"
    },
    B953: {
      codeString: "HL4:0,16;B120:0,2"
    },
    B954: {
      codeString: "B447;B401:3,0;B401:5,0"
    },
    B955: {
      codeString: "B447;B401:4,0"
    },
    B956: {
      codeString: "HL4:0,12;VL4:2,12;HL4:0,16"
    },
    B957: {
      codeString: "HL4:0,12;HL4:0,16"
    },
    B958: {
      codeString: "W8W:0,8;VL8:1,8"
    },
    B959: {
      codeString: "B281;B107"
    },
    B960: {
      codeString: "B447;B653"
    },
    B961: {
      codeString: "B803;LARR4E:8,14",
      center: -2
    },
    B962: {
      codeString: "B10:0,-4;DL4-8N:2,8;B13:6,0"
    },
    B963: {
      codeString: "B428;B428:4,0"
    },
    B964: {
      codeString: "B447;B10:1,0;VL8:4,8"
    },
    B965: {
      codeString: "VL4:0,10;HL4:0,12;VL4:4,10"
    },
    B966: {
      codeString: "B695;DOT:6,10;DOT:6,14;DOT:10,10;DOT:10,14;DOT:14,8;DOT:14,12;DOT:14,16"
    },
    B967: {
      codeString: "B377;HC4N:0,10"
    },
    B968: {
      codeString: "HL4:0,8;B368:0,-4"
    },
    B969: {
      codeString: "B484;B303:2,0"
    },
    B970: {
      codeString: "B313;B457:2,0"
    },
    B971: {
      codeString: "B411;B457:2,0"
    },
    B973: {
      codeString: "B651;LARR4S:0,14"
    },
    B974: {
      codeString: "B700;B1154"
    },
    B975: {
      codeString: "B291;B313"
    },
    B976: {
      codeString: "B145;B291:4,0"
    },
    B977: {
      codeString: "B291;B678:2,-4"
    },
    B978: {
      codeString: "B163;HC2N:1,13;HC2N:5,13"
    },
    B979: {
      codeString: "P4W:0,10;B288:3,0;P4E:8,10"
    },
    B980: {
      codeString: "B651;P4W:5,10"
    },
    B981: {
      codeString: "P4W:0,10;B982:3,0;P4E:12,10"
    },
    B982: {
      codeString: "B814;HW2N:3,8.5;HW4N:2,7;HW2S:3,15;HW4S:2,16"
    },
    B983: {
      codeString: "DL8-4N:0,8;DL8-4S:0,8;VL2:4,10"
    },
    B984: {
      codeString: "P4E:0,10;B651:3,0"
    },
    B985: {
      codeString: "B447;B894:2,0"
    },
    B986: {
      codeString: "P4S:0,7;B651"
    },
    B987: {
      codeString: "B428;B288:2,0;B428:8,0"
    },
    B988: {
      codeString: "RA4SW:0,12;DL8N:0,8;RA4NE:4,8"
    },
    B989: {
      codeString: "LARRHC8SCC:2,12;P4N:0,12"
    },
    B990: {
      codeString: "B651;P4N:0,15"
    },
    B991: {
      codeString: "B447;B288:2,0"
    },
    B992: {
      codeString: "HL2:0,4;VL2:1,4;HL2:0,6",
      isIndicator: true
    },
    B993: {
      codeString: "HW8W:0,8;HL4:2,8;HL4:2,16;HW8E:6,8;DOT:4,12"
    },
    B994: {
      codeString: "B270;B1028:2,0",
      center: 1
    },
    B995: {
      codeString: "W8E:0,4;B122:1,0",
      center: 0.5
    },
    B996: {
      codeString: "VL4:0,10;DOT:2,16;DOT:4,16;DOT:6,16;P4E:8,10"
    },
    B997: {
      codeString: "B238;B449:2,0"
    },
    B998: {
      codeString: "B148:2,0;B281"
    },
    B999: {
      codeString: "B216;C8:4,8"
    },
    B1000: {
      codeString: "B939;B303:1,0",
      center: -1
    },
    B1001: {
      codeString: "B153;B335:4,0"
    },
    B1002: {
      codeString: "B172;HL4:2,16;DOT:8,16"
    },
    B1003: {
      codeString: "B174;P4W:3,6"
    },
    B1004: {
      codeString: "P4S:3,9;B180;P4N:3,17"
    },
    B1005: {
      codeString: "P4E:0,10;B518:3,0;P4W:4,10"
    },
    B1006: {
      codeString: "B291;B651:2,0"
    },
    B1007: {
      codeString: "P4W:0,10;B394:2,0;P4E:10,10"
    },
    B1008: {
      codeString: "B335;B651:8,0;B145:12,0"
    },
    B1009: {
      codeString: "B239:0,-4"
    },
    B1010: {
      codeString: "B239:0,4"
    },
    B1011: {
      codeString: "B1094;P4W:9,10"
    },
    B1012: {
      codeString: "B447;B120:2,0"
    },
    B1013: {
      codeString: "B447;B449:2,0"
    },
    B1014: {
      codeString: "B710;B710:4,0"
    },
    B1015: {
      codeString: "B433;B433:4,0"
    },
    B1016: {
      codeString: "C4:0,8;DLOC4SE:0,8;SC4:0,8;DL4S:4,12;B555:4,0"
    },
    B1017: {
      codeString: "B278:2,0;B939"
    },
    B1018: {
      codeString: "B153;B145:4,0"
    },
    B1019: {
      codeString: "B335;B1063:8,0"
    },
    B1020: {
      codeString: "VL8:0,8;P4S:0,14;VL8:4,8"
    },
    B1021: {
      codeString: "B236;B939:6,0"
    },
    B1022: {
      codeString: "B428;B449:2,0;B428:8,0"
    },
    B1023: {
      codeString: "DL2-4N:0,8;DL2-4S:2,8;DL2-4S:0,12;DL2-4N:2,12"
    },
    B1024: {
      codeString: "B590:2,0;B281"
    },
    B1025: {
      codeString: "VL8:0,8;B829:3,0;VL8:8,8"
    },
    B1026: {
      codeString: "B712;B829:3,0"
    },
    B1027: {
      codeString: "B505;B939"
    },
    B1028: {
      codeString: "AA4S:0,12"
    },
    B1029: {
      codeString: "B920;P4N:2,8"
    },
    B1030: {
      codeString: "B319:3,0;B939"
    },
    B1031: {
      codeString: "P4S:0,7;B303;P4N:0,15"
    },
    B1032: {
      codeString: "B303;P4N:0,15"
    },
    B1033: {
      codeString: "VL4:0,10;DOT:2,16;DOT:4,16;DOT:6,16;VL4:8,10"
    },
    B1034: {
      codeString: "P4E:0,10;B428:2,0;DOT:4,16;DOT:6,16;DOT:8,16;B428:10,0;P4W:10,10"
    },
    B1035: {
      codeString: "P4E:0,10;B428:2,0;B428:10,0;P4W:10,10"
    },
    B1036: {
      codeString: "B695:0,4;B239"
    },
    B1037: {
      codeString: "B325;P4W:5,8"
    },
    B1038: {
      codeString: "B428;LARRQC4NEC:0,12;B634:0,4"
    },
    B1039: {
      codeString: "B695;B651:6,0"
    },
    B1040: {
      codeString: "B597;B271:2,0"
    },
    B1041: {
      codeString: "QC4NW:2,8;AT4S:0,12"
    },
    B1042: {
      codeString: "B341;B699:2,0"
    },
    B1043: {
      codeString: "B238;B120:2,0"
    },
    B1044: {
      codeString: "B281;B651:2,4"
    },
    B1045: {
      codeString: "B391;P4E:7,7",
      center: -3
    },
    B1046: {
      codeString: "P4E:0,10;B391:3,0",
      center: -1.5
    },
    B1047: {
      codeString: "B399;P4W:17,10",
      center: -1.5
    },
    B1048: {
      codeString: "B247;B699:3,1"
    },
    B1049: {
      codeString: "VL4:0,12;HC8S:0,12;VL4:8,12"
    },
    B1050: {
      codeString: "B548;B341:2,0;B699:3,0"
    },
    B1051: {
      codeString: "HL4:0,8;VL8:4,8"
    },
    B1052: {
      codeString: "B418;P4W:7,10;P4S:10,13",
      center: -3
    },
    B1053: {
      codeString: "B428;DOT:2,16;DOT:4,16;DOT:6,16;B428:8,0"
    },
    B1054: {
      codeString: "B1127;P4W:9,4"
    },
    B1055: {
      codeString: "B335;B329:8,0;B145:12,0"
    },
    B1056: {
      codeString: "C8:0,8;DOT:2,12;DOT:6,12;HW4N:0,11;HW4S:0,12;HW4N:4,11;HW4S:4,12"
    },
    B1057: {
      codeString: "B335;B145:10,0"
    },
    B1058: {
      codeString: "B1057:0,-2;B1066:0,2"
    },
    B1059: {
      codeString: "B444:2,0;B708"
    },
    B1060: {
      codeString: "VL4:0,10;VL4:4,10"
    },
    B1061: {
      codeString: "B423;B335:4,0",
      center: -2
    },
    B1062: {
      codeString: "B457:2,0;B939"
    },
    B1063: {
      codeString: "B145:0,-4;B145:0,4"
    },
    B1064: {
      codeString: "B171;B678:4,-4"
    },
    B1065: {
      codeString: "B392;B270:10,0",
      center: -1
    },
    B1066: {
      codeString: "B145;B335:10,0"
    },
    B1067: {
      codeString: "HC8N:0,4;B960"
    },
    B1068: {
      codeString: "C8:0,8;DLIC8N:0,8;DLIC8S:0,8;VL8:4,8"
    },
    B1069: {
      codeString: "B449:0,-2;B120:0,2"
    },
    B1070: {
      codeString: "B120:0,2"
    },
    B1071: {
      codeString: "B548;B695:0,4"
    },
    B1072: {
      codeString: "B548;P4W:9,10",
      center: -1.5
    },
    B1073: {
      codeString: "B651;LARR4E:4,10",
      center: -2
    },
    B1075: {
      codeString: "C8:0,8;DOT:4,12"
    },
    B1076: {
      codeString: "B784;B447"
    },
    B1077: {
      codeString: "B517;B335:0,4"
    },
    B1078: {
      codeString: "HL4:0,8;VL8:0,8"
    },
    B1079: {
      codeString: "B392;B939"
    },
    B1080: {
      codeString: "VL4:0,12;P4S:0,14;VL4:4,12"
    },
    B1081: {
      codeString: "VL4:0,12;HL4:0,16;VL4:2,12;VL4:4,12"
    },
    B1082: {
      codeString: "B708;B148:2,0"
    },
    B1083: {
      codeString: "B517;B1084"
    },
    B1084: {
      codeString: "HL8:0,16;QC4SE:8,12"
    },
    B1085: {
      codeString: "B457:0,2;HL8:2,16;B319:9,0"
    },
    B1086: {
      codeString: "B457:0,2;HL10:2,16;VL4:8,12;B319:9,0;VL4:12,12"
    },
    B1087: {
      codeString: "HW8W:0,8;VL12:2,8;HL4:0,12;HW8E:2,8"
    },
    B1088: {
      codeString: "AA4N:0,8;B651:0,2"
    },
    B1089: {
      codeString: "B612;B939:6,0"
    },
    B1090: {
      codeString: "OC4NE:0,8;OC4NE:2,10;OC4NE:4,12"
    },
    B1091: {
      codeString: "B457;LARRQC4NEC:4,12",
      center: -3
    },
    B1092: {
      codeString: "B615;B148:6,0"
    },
    B1093: {
      codeString: "B615;B263:6,0"
    },
    B1094: {
      codeString: "DS8:0,8"
    },
    B1095: {
      codeString: "B651;B695:2,0"
    },
    B1096: {
      codeString: "P4E:0,10;B428:2,0;B428:6,0;P4W:6,10"
    },
    B1097: {
      codeString: "B695:0,-4;B695;B695:0,4"
    },
    B1098: {
      codeString: "B291:0,-4;B700;B700:4,0"
    },
    B1099: {
      codeString: "B651:0,-2;B700"
    },
    B1100: {
      codeString: "B666;B939"
    },
    B1101: {
      codeString: "LARRHC8EC:0,8"
    },
    B1102: {
      codeString: "B676:0,4"
    },
    B1103: {
      codeString: "B335;B412:4,0",
      center: 2
    },
    B1104: {
      codeString: "B428;LARRQC4NECC:0,10;B634:0,4"
    },
    B1105: {
      codeString: "S8:0,8;DC8:0,8;SC8:0,8"
    },
    B1106: {
      codeString: "QC4NW:0,12;QC4SE:0,12;B127:4,0",
      center: 2
    },
    B1107: {
      codeString: "B281;B695"
    },
    B1108: {
      codeString: "B428;P4W:0,10;P4E:6,10;B428:8,0"
    },
    B1109: {
      codeString: "B239;DL4N:8,8"
    },
    B1110: {
      codeString: "B710;P4W:4,12"
    },
    B1111: {
      codeString: "B430;P4W:9,8"
    },
    B1112: {
      codeString: "B710;B548:2,0;B710:8,0"
    },
    B1113: {
      codeString: "B433;B548:2,0;B433:8,0"
    },
    B1114: {
      codeString: "B1112;B622:5,0"
    },
    B1115: {
      codeString: "B1113;B622:5,0"
    },
    B1116: {
      codeString: "HL4:0,10;HL4:0,12;HL4:0,14"
    },
    B1117: {
      codeString: "B695:0,4"
    },
    B1118: {
      codeString: "B423;B281"
    },
    B1119: {
      codeString: "B281;QC4SE:0,16"
    },
    B1120: {
      codeString: "B616;B500:10,0"
    },
    B1121: {
      codeString: "AT4S:0,12"
    },
    B1122: {
      codeString: "QC4NW:0,12;QC4SE:4,8"
    },
    B1123: {
      codeString: "B291;B145:4,0",
      center: -2
    },
    B1124: {
      codeString: "B291;B271:2,-4"
    },
    B1125: {
      codeString: "B291;B678:2,4"
    },
    B1126: {
      codeString: "DL2S:0,8;DL2N:0,10;DL2S:0,12;DL2N:0,14"
    },
    B1127: {
      codeString: "B171;B371:3.5,-4"
    },
    B1128: {
      codeString: "B171;DOT:6,12"
    },
    B1129: {
      codeString: "B171;B371:3.5,6"
    },
    B1130: {
      codeString: "B392;HL8:0,12"
    },
    B1131: {
      codeString: "B392;VL2:0,16;HL8:0,18;VL2:8,16"
    },
    B1132: {
      codeString: "B392;VL4:8,8"
    },
    B1133: {
      codeString: "B392;VL2:0,16;VL2:8,16"
    },
    B1134: {
      codeString: "B392;HL8:0,14"
    },
    B1135: {
      codeString: "B392;HL8:8,16;VL4:16,12"
    },
    B1136: {
      codeString: "B392;B281:8,0;B392:16,0"
    },
    B1137: {
      codeString: "B325:2,0;B483"
    },
    B1138: {
      codeString: "B303;HL4:0,8"
    },
    B1139: {
      codeString: "B306;B371:1.5,6"
    },
    B1140: {
      codeString: "B306;DOT:7,12"
    },
    B1141: {
      codeString: "B371:1.5,0;B122"
    },
    B1142: {
      codeString: "B376;VL2:3,16;VL2:5,16"
    },
    B1143: {
      codeString: "B376;B371:1.5,-4"
    },
    B1144: {
      codeString: "RT8SW:0,8;B281:8,0;B456:16,0"
    },
    B1145: {
      codeString: "B171;B271:4,4"
    },
    B1146: {
      codeString: "P4S:0,10"
    },
    B1147: {
      codeString: "RA2S:0,11"
    },
    B1148: {
      codeString: "HL16:0,16;B202:8,0"
    },
    B1149: {
      codeString: "B202;P4W:8,7",
      center: -1
    },
    B1150: {
      codeString: "B281;B392:8,0"
    },
    B1151: {
      codeString: "B10:0,-4;DL4-8N:2,8;B12:6,0"
    },
    B1152: {
      codeString: "B11:0,-4;DL4-8N:2,8;B12:6,0"
    },
    B1153: {
      codeString: "B12:0,-4;DL4-8N:2,8;B13:6,0"
    },
    B1154: {
      codeString: "HL4:0,16"
    },
    B1155: {
      codeString: "B859;P4S:2,9"
    },
    B1156: {
      codeString: "B636;P3NE:3,10"
    },
    B1157: {
      codeString: "B636;P3NW:2,10"
    },
    B1158: {
      codeString: "B636;P3SE:3,11"
    },
    B1159: {
      codeString: "B636;P3SW:2,11"
    },
    B1160: {
      codeString: "B376;P4S:2,5"
    },
    B1161: {
      codeString: "B303;B1154"
    },
    B1162: {
      codeString: "HL4:0,12;VL4:4,12;B335:4,0",
      center: -2
    },
    B1163: {
      codeString: "LARR4W:0,10;LARR4E:4,10"
    },
    B1218: {
      codeString: "B335;B428:10,0",
      center: -1
    },
    B1470: {
      codeString: "B513;B513:6,0"
    },
    B1525: {
      codeString: "B428;B335:2,0",
      center: 1
    },
    B1999: {
      codeString: "VL2:2,6;R48:0,8;VL2:2,16"
    },
    B2115: {
      codeString: "VL8:0,8;B11:2,0"
    },
    B2343: {
      codeString: "B10;VL8:4,8"
    },
    B5061: {
      codeString: "B335;B335:10,0"
    },
    B5640: {
      codeString: "B335;B940:10,0"
    },
    B5836: {
      codeString: "B428;B109:2,0"
    },
    B5837: {
      codeString: "HC4N:0,8"
    },
    B5838: {
      codeString: "B5840:0,-1;B5840:0,3;B5840:4,-1;B5840:4,3"
    },
    B5839: {
      codeString: "B171;P4S:6,13"
    },
    B5840: {
      codeString: "C2:0,11"
    },
    B5841: {
      codeString: "B572;B191"
    },
    B5842: {
      codeString: "B629;B366:4,0"
    },
    B5843: {
      codeString: "B5844;VL6:3,8"
    },
    B5844: {
      codeString: "B106;B314:2,0"
    },
    B5995: {
      codeString: "B457;P4S:0,7"
    },
    B5996: {
      codeString: "B99;B904:3,0",
      isIndicator: true
    },
    B5997: {
      codeString: "B97;B904:3,0",
      isIndicator: true
    },
    B5998: {
      codeString: "B97;B5996:3,0",
      isIndicator: true
    },
    B5999: {
      codeString: "B956:0,2"
    },
    B6000: {
      codeString: "B314:0,2"
    },
    B6001: {
      codeString: "HL4:0,18;VL4:2,14"
    },
    B6002: {
      codeString: "B106:0,2"
    },
    B6003: {
      codeString: "B657:0,4"
    },
    B6013: {
      codeString: "B696;LARR4E:8,10"
    },
    B6015: {
      codeString: "B213;LARR4E:8,10",
      center: -2
    },
    B6091: {
      codeString: "B145;B651:8,0;B335:12,0"
    },
    B6106: {
      codeString: "HW8E:0,8;HL6:0,8;HL6:0,16;HW8W:4,8"
    },
    B6109: {
      codeString: "HW8W:0,8;HW8E:2,8"
    },
    B6168: {
      codeString: "B303;B651:4,0"
    }
  };
  const blissElementDefinitions = {
    "H": createHeart(8),
    "E": createEar(8),
    "F": createFiber(8),
    "DOT": createDot(0.5, 0.333),
    "SDOT": createDot(0.5, 0),
    "COMMA": createComma(0.5, 0.333),
    "C8": createCircle(4),
    "C4": createCircle(2),
    "C2": createCircle(1),
    "C1": createCircle(0.5),
    "HC8N": createHalfCircle(4, "N"),
    "HC4N": createHalfCircle(2, "N"),
    "HC2N": createHalfCircle(1, "N"),
    "HC1N": createHalfCircle(0.5, "N"),
    "HC.5N": createHalfCircle(0.25, "N"),
    "HC8S": createHalfCircle(4, "S"),
    "HC4S": createHalfCircle(2, "S"),
    "HC2S": createHalfCircle(1, "S"),
    "HC1S": createHalfCircle(0.5, "S"),
    "HC.5S": createHalfCircle(0.25, "S"),
    "HC8W": createHalfCircle(4, "W"),
    "HC4W": createHalfCircle(2, "W"),
    "HC2W": createHalfCircle(1, "W"),
    "HC1W": createHalfCircle(0.5, "W"),
    "HC.5W": createHalfCircle(0.25, "W"),
    "HC8E": createHalfCircle(4, "E"),
    "HC4E": createHalfCircle(2, "E"),
    "HC2E": createHalfCircle(1, "E"),
    "HC1E": createHalfCircle(0.5, "E"),
    "HC.5E": createHalfCircle(0.25, "E"),
    "QC4NW": createQuarterCircle(4, "NW"),
    "QC2NW": createQuarterCircle(2, "NW"),
    "QC1NW": createQuarterCircle(1, "NW"),
    "QC.5NW": createQuarterCircle(0.5, "NW"),
    "QC4NE": createQuarterCircle(4, "NE"),
    "QC2NE": createQuarterCircle(2, "NE"),
    "QC1NE": createQuarterCircle(1, "NE"),
    "QC.5NE": createQuarterCircle(0.5, "NE"),
    "QC4SW": createQuarterCircle(4, "SW"),
    "QC2SW": createQuarterCircle(2, "SW"),
    "QC1SW": createQuarterCircle(1, "SW"),
    "QC.5SW": createQuarterCircle(0.5, "SW"),
    "QC4SE": createQuarterCircle(4, "SE"),
    "QC2SE": createQuarterCircle(2, "SE"),
    "QC1SE": createQuarterCircle(1, "SE"),
    "QC.5SE": createQuarterCircle(0.5, "SE"),
    "OC8NW": createOpenCircle(4, "NW"),
    "OC4NW": createOpenCircle(2, "NW"),
    "OC2NW": createOpenCircle(1, "NW"),
    "OC1NW": createOpenCircle(0.5, "NW"),
    "OC8NE": createOpenCircle(4, "NE"),
    "OC4NE": createOpenCircle(2, "NE"),
    "OC2NE": createOpenCircle(1, "NE"),
    "OC1NE": createOpenCircle(0.5, "NE"),
    "OC8SW": createOpenCircle(4, "SW"),
    "OC4SW": createOpenCircle(2, "SW"),
    "OC2SW": createOpenCircle(1, "SW"),
    "OC1SW": createOpenCircle(0.5, "SW"),
    "OC8SE": createOpenCircle(4, "SE"),
    "OC4SE": createOpenCircle(2, "SE"),
    "OC2SE": createOpenCircle(1, "SE"),
    "OC1SE": createOpenCircle(0.5, "SE"),
    "W8N": createWave(8, "N"),
    "W8S": createWave(8, "S"),
    "W8W": createWave(8, "W"),
    "W8E": createWave(8, "E"),
    "HW8N": createHalfWave(8, "N"),
    "HW4N": createHalfWave(4, "N"),
    "HW2N": createHalfWave(2, "N"),
    "HW8S": createHalfWave(8, "S"),
    "HW4S": createHalfWave(4, "S"),
    "HW2S": createHalfWave(2, "S"),
    "HW8W": createHalfWave(8, "W"),
    "HW4W": createHalfWave(4, "W"),
    "HW2W": createHalfWave(2, "W"),
    "HW8E": createHalfWave(8, "E"),
    "HW4E": createHalfWave(4, "E"),
    "HW2E": createHalfWave(2, "E"),
    "HQW4NW": createHorizontalQuarterWave(4, "NW"),
    "HQW2NW": createHorizontalQuarterWave(2, "NW"),
    "HQW1NW": createHorizontalQuarterWave(1, "NW"),
    "HQW4NE": createHorizontalQuarterWave(4, "NE"),
    "HQW2NE": createHorizontalQuarterWave(2, "NE"),
    "HQW1NE": createHorizontalQuarterWave(1, "NE"),
    "HQW4SW": createHorizontalQuarterWave(4, "SW"),
    "HQW2SW": createHorizontalQuarterWave(2, "SW"),
    "HQW1SW": createHorizontalQuarterWave(1, "SW"),
    "HQW4SE": createHorizontalQuarterWave(4, "SE"),
    "HQW2SE": createHorizontalQuarterWave(2, "SE"),
    "HQW1SE": createHorizontalQuarterWave(1, "SE"),
    "VQW4NW": createVerticalQuarterWave(4, "NW"),
    "VQW2NW": createVerticalQuarterWave(2, "NW"),
    "VQW1NW": createVerticalQuarterWave(1, "NW"),
    "VQW4NE": createVerticalQuarterWave(4, "NE"),
    "VQW2NE": createVerticalQuarterWave(2, "NE"),
    "VQW1NE": createVerticalQuarterWave(1, "NE"),
    "VQW4SW": createVerticalQuarterWave(4, "SW"),
    "VQW2SW": createVerticalQuarterWave(2, "SW"),
    "VQW1SW": createVerticalQuarterWave(1, "SW"),
    "VQW4SE": createVerticalQuarterWave(4, "SE"),
    "VQW2SE": createVerticalQuarterWave(2, "SE"),
    "VQW1SE": createVerticalQuarterWave(1, "SE"),
    "VL12": createVerticalLine(12),
    "VL10": createVerticalLine(10),
    "VL8": createVerticalLine(8),
    "VL6": createVerticalLine(6),
    "VL4": createVerticalLine(4),
    "VL3": createVerticalLine(3),
    "VL2": createVerticalLine(2),
    "VL1.5": createVerticalLine(1.5),
    "VL1.25": createVerticalLine(1.25),
    "VL1": createVerticalLine(1),
    "VL.5": createVerticalLine(0.5),
    "VL.25": createVerticalLine(0.25),
    "HL16": createHorizontalLine(16),
    "HL15": createHorizontalLine(15),
    "HL14": createHorizontalLine(14),
    "HL12": createHorizontalLine(12),
    "HL10": createHorizontalLine(10),
    "HL8": createHorizontalLine(8),
    "HL6": createHorizontalLine(6),
    "HL4": createHorizontalLine(4),
    "HL3": createHorizontalLine(3),
    "HL2": createHorizontalLine(2),
    "HL1.5": createHorizontalLine(1.5),
    "HL1": createHorizontalLine(1),
    "HL.5": createHorizontalLine(0.5),
    "HL.25": createHorizontalLine(0.25),
    "DL12N": createAscendingDiagonalLine(12, 12),
    "DL8N": createAscendingDiagonalLine(8, 8),
    "DL6N": createAscendingDiagonalLine(6, 6),
    "DL5N": createAscendingDiagonalLine(5, 5),
    "DL4N": createAscendingDiagonalLine(4, 4),
    "DL3N": createAscendingDiagonalLine(3, 3),
    "DL2N": createAscendingDiagonalLine(2, 2),
    "DL1.5N": createAscendingDiagonalLine(1.5, 1.5),
    "DL1N": createAscendingDiagonalLine(1, 1),
    "DL.5N": createAscendingDiagonalLine(0.5, 0.5),
    "DL2-3N": createAscendingDiagonalLine(2, 3),
    "DL1-1.5N": createAscendingDiagonalLine(1, 1.5),
    "DL3-2N": createAscendingDiagonalLine(3, 2),
    "DL1.5-1N": createAscendingDiagonalLine(1.5, 1),
    "DL4-8N": createAscendingDiagonalLine(4, 8),
    "DL2-4N": createAscendingDiagonalLine(2, 4),
    "DL1-2N": createAscendingDiagonalLine(1, 2),
    "DL.5-1N": createAscendingDiagonalLine(0.5, 1),
    "DL8-4N": createAscendingDiagonalLine(8, 4),
    "DL4-2N": createAscendingDiagonalLine(4, 2),
    "DL2-1N": createAscendingDiagonalLine(2, 1),
    "DL1-.5N": createAscendingDiagonalLine(1, 0.5),
    "DL1-4N": createAscendingDiagonalLine(1, 4),
    "DL.5-2N": createAscendingDiagonalLine(0.5, 2),
    "DL4-1N": createAscendingDiagonalLine(4, 1),
    "DL2-.5N": createAscendingDiagonalLine(2, 0.5),
    "DL12S": createDescendingDiagonalLine(12, 12),
    "DL8S": createDescendingDiagonalLine(8, 8),
    "DL6S": createDescendingDiagonalLine(6, 6),
    "DL5S": createDescendingDiagonalLine(5, 5),
    "DL4S": createDescendingDiagonalLine(4, 4),
    "DL3S": createDescendingDiagonalLine(3, 3),
    "DL2S": createDescendingDiagonalLine(2, 2),
    "DL1.5S": createDescendingDiagonalLine(1.5, 1.5),
    "DL1S": createDescendingDiagonalLine(1, 1),
    "DL.5S": createDescendingDiagonalLine(0.5, 0.5),
    "DL2,3S": createDescendingDiagonalLine(2, 3),
    "DL1-1.5S": createDescendingDiagonalLine(1, 1.5),
    "DL3-2S": createDescendingDiagonalLine(3, 2),
    "DL1.5-1S": createDescendingDiagonalLine(1.5, 1),
    "DL4-8S": createDescendingDiagonalLine(4, 8),
    "DL2-4S": createDescendingDiagonalLine(2, 4),
    "DL1-2S": createDescendingDiagonalLine(1, 2),
    "DL.5-1S": createDescendingDiagonalLine(0.5, 1),
    "DL8-4S": createDescendingDiagonalLine(8, 4),
    "DL4-2S": createDescendingDiagonalLine(4, 2),
    "DL2-1S": createDescendingDiagonalLine(2, 1),
    "DL1-.5S": createDescendingDiagonalLine(1, 0.5),
    "DL1-4S": createDescendingDiagonalLine(1, 4),
    "DL.5-2S": createDescendingDiagonalLine(0.5, 2),
    "DL4-1S": createDescendingDiagonalLine(4, 1),
    "DL2-.5S": createDescendingDiagonalLine(2, 0.5),
    "DLOC8NW": createDiagonalLineOutsideCircle(8, "NW"),
    "DLOC8NE": createDiagonalLineOutsideCircle(8, "NE"),
    "DLOC8SW": createDiagonalLineOutsideCircle(8, "SW"),
    "DLOC8SE": createDiagonalLineOutsideCircle(8, "SE"),
    "DLOC4NW": createDiagonalLineOutsideCircle(4, "NW"),
    "DLOC4NE": createDiagonalLineOutsideCircle(4, "NE"),
    "DLOC4SW": createDiagonalLineOutsideCircle(4, "SW"),
    "DLOC4SE": createDiagonalLineOutsideCircle(4, "SE"),
    "DLIC8N": createAscendingDiagonalLineInsideCircle(4),
    "DLIC4N": createAscendingDiagonalLineInsideCircle(2),
    "DLIC8S": createDescendingDiagonalLineInsideCircle(4),
    "DLIC4S": createDescendingDiagonalLineInsideCircle(2),
    "RA8NW": { codeString: "VL8;HL8" },
    "RA4NW": { codeString: "VL4;HL4" },
    "RA3NW": { codeString: "VL3;HL3" },
    "RA2NW": { codeString: "VL2;HL2" },
    "RA1.5NW": { codeString: "VL1.5;HL1.5" },
    "RA1NW": { codeString: "VL1;HL1" },
    "RA8NE": { codeString: "HL8;VL8:8,0" },
    "RA4NE": { codeString: "HL4;VL4:4,0" },
    "RA3NE": { codeString: "HL3;VL3:3,0" },
    "RA2NE": { codeString: "HL2;VL2:2,0" },
    "RA1.5NE": { codeString: "HL1.5;VL1.5:1.5,0" },
    "RA1NE": { codeString: "HL1;VL1:1,0" },
    "RA8SW": { codeString: "VL8;HL8:0,8" },
    "RA4SW": { codeString: "VL4;HL4:0,4" },
    "RA3SW": { codeString: "VL3;HL3:0,3" },
    "RA2SW": { codeString: "VL2;HL2:0,2" },
    "RA1.5SW": { codeString: "VL1.5;HL1.5:0,1.5" },
    "RA1SW": { codeString: "VL1;HL1:0,1" },
    "RA8SE": { codeString: "HL8:0,8;VL8:8,0" },
    "RA4SE": { codeString: "HL4:0,4;VL4:4,0" },
    "RA3SE": { codeString: "HL3:0,3;VL3:3,0" },
    "RA2SE": { codeString: "HL2:0,2;VL2:2,0" },
    "RA1.5SE": { codeString: "HL1.5:0,1.5;VL1.5:1.5,0" },
    "RA1SE": { codeString: "HL1:0,1;VL1:1,0" },
    "RA8N": { codeString: "DL4N;DL4S:4,0" },
    "RA4N": { codeString: "DL2N;DL2S:2,0" },
    "RA3N": { codeString: "DL1.5N;DL1.5S:1.5,0" },
    "RA2N": { codeString: "DL1N;DL1S:1,0" },
    "RA1N": { codeString: "DL.5N;DL.5S:0.5,0" },
    "RA8S": { codeString: "DL4S;DL4N:4,0" },
    "RA4S": { codeString: "DL2S;DL2N:2,0" },
    "RA3S": { codeString: "DL1.5S;DL1.5N:1.5,0" },
    "RA2S": { codeString: "DL1S;DL1N:1,0" },
    "RA1S": { codeString: "DL.5S;DL.5N:.5,0" },
    "RA8W": { codeString: "DL4N;DL4S:0,4" },
    "RA4W": { codeString: "DL2N;DL2S:0,2" },
    "RA3W": { codeString: "DL1.5N;DL1.5S:0,1.5" },
    "RA2W": { codeString: "DL1N;DL1S:0,1" },
    "RA1W": { codeString: "DL.5N;DL.5S:0,0.5" },
    "RA8E": { codeString: "DL4S;DL4N:0,4" },
    "RA4E": { codeString: "DL2S;DL2N:0,2" },
    "RA3E": { codeString: "DL1.5S;DL1.5N:0,1.5" },
    "RA2E": { codeString: "DL1S;DL1N:0,1" },
    "RA1E": { codeString: "DL.5S;DL.5N:0,0.5" },
    "AA8N": { codeString: "DL4-8N;DL4-8S:4,0" },
    "AA4N": { codeString: "DL2-4N;DL2-4S:2,0" },
    "AA2N": { codeString: "DL1-2N;DL1-2S:1,0" },
    "AA8S": { codeString: "DL4-8S;DL4-8N:4,0" },
    "AA4S": { codeString: "DL2-4S;DL2-4N:2,0" },
    "AA2S": { codeString: "DL1-2S;DL1-2N:1,0" },
    "AA8W": { codeString: "DL8-4N;DL8-4S:0,4" },
    "AA4W": { codeString: "DL4-2N;DL4-2S:0,2" },
    "AA2W": { codeString: "DL2-1N;DL2-1S:0,1" },
    "AA8E": { codeString: "DL8-4S;DL8-4N:0,4" },
    "AA4E": { codeString: "DL4-2S;DL4-2N:0,2" },
    "AA2E": { codeString: "DL2-1S;DL2-1N:0,1" },
    "SC8": { codeString: "HL8:0,4;VL8:4,0" },
    "SC4": { codeString: "HL4:0,2;VL4:2,0" },
    "SC2": { codeString: "HL2:0,1;VL2:1,0" },
    "DC8": { codeString: "DL8S;DL8N" },
    "DC4": { codeString: "DL4S;DL4N" },
    "DC2": { codeString: "DL2S;DL2N" },
    "RT8SW": { codeString: "VL8;HL8:0,8;DL8S" },
    "RT4SW": { codeString: "VL4;HL4:0,4;DL4S" },
    "RT2SW": { codeString: "VL2;HL2:0,2;DL2S" },
    "RT8NW": { codeString: "VL8;HL8;DL8N" },
    "RT4NW": { codeString: "VL4;HL4;DL4N" },
    "RT2NW": { codeString: "VL2;HL2;DL2N" },
    "RT8NE": { codeString: "HL8;VL8:8,0;DL8S" },
    "RT4NE": { codeString: "HL4;VL4:4,0;DL4S" },
    "RT2NE": { codeString: "HL2;VL2:2,0;DL2S" },
    "RT8SE": { codeString: "HL8:0,8;VL8:8,0;DL8N" },
    "RT4SE": { codeString: "HL4:0,4;VL4:4,0;DL4N" },
    "RT2SE": { codeString: "HL2:0,2;VL2:2,0;DL2N" },
    "RT8N": { codeString: "DL4N;DL4S:4,0;HL8:0,4" },
    "RT4N": { codeString: "DL2N;DL2S:2,0;HL4:0,2" },
    "RT2N": { codeString: "DL1N;DL1S:1,0;HL2:0,1" },
    "RT8S": { codeString: "DL4S;DL4N:4,0;HL8" },
    "RT4S": { codeString: "DL2S;DL2N:2,0;HL4" },
    "RT2S": { codeString: "DL1S;DL1N:1,0;HL2" },
    "RT8W": { codeString: "DL4N;DL4S:0,4;VL8:4,0" },
    "RT4W": { codeString: "DL2N;DL2S:0,2;VL4:2,0" },
    "RT2W": { codeString: "DL1N;DL1S:0,1;VL2:1,0" },
    "RT8E": { codeString: "DL4S;DL4N:0,4;VL8" },
    "RT4E": { codeString: "DL2S;DL2N:0,2;VL4" },
    "RT2E": { codeString: "DL1S;DL1N:0,1;VL2" },
    "AT8N": { codeString: "DL4-8N;DL4-8S:4,0;HL8:0,8" },
    "AT4N": { codeString: "DL2-4N;DL2-4S:2,0;HL4:0,4" },
    "AT2N": { codeString: "DL1-2N;DL1-2S:1,0;HL2:0,2" },
    "AT8S": { codeString: "DL4-8S;DL4-8N:4,0;HL8" },
    "AT4S": { codeString: "DL2-4S;DL2-4N:2,0;HL4" },
    "AT2S": { codeString: "DL1-2S;DL1-2N:1,0;HL2" },
    "AT8W": { codeString: "DL8-4N;DL8-4S:0,4;VL8:8,0" },
    "AT4W": { codeString: "DL4-2N;DL4-2S:0,2;VL4:4,0" },
    "AT2W": { codeString: "DL2-1N;DL2-1S:0,1;VL2:2,0" },
    "AT8E": { codeString: "DL8-4S;DL8-4N:0,4;VL8" },
    "AT4E": { codeString: "DL4-2S;DL4-2N:0,2;VL4" },
    "AT2E": { codeString: "DL2-1S;DL2-1N:0,1;VL2" },
    "S8": { codeString: "HL8;HL8:0,8;VL8;VL8:8,0" },
    "S4": { codeString: "HL4;HL4:0,4;VL4;VL4:4,0" },
    "S2": { codeString: "HL2;HL2:0,2;VL2;VL2:2,0" },
    "DS8": { codeString: "DL4N;DL4S:4,0;DL4S:0,4;DL4N:4,4" },
    "DS4": { codeString: "DL2N;DL2S:2,0;DL2S:0,2;DL2N:2,2" },
    "DS2": { codeString: "DL1N;DL1S:1,0;DL1S:0,1;DL1N:1,1" },
    "OS8N": { codeString: "VL8;HL8:0,8;VL8:8,0" },
    "OS4N": { codeString: "VL4;HL4:0,4;VL4:4,0" },
    "OS2N": { codeString: "VL2;HL2:0,2;VL2:2,0" },
    "OS8S": { codeString: "VL8;HL8;VL8:8,0" },
    "OS4S": { codeString: "VL4;HL4;VL4:4,0" },
    "OS2S": { codeString: "VL2;HL2;VL2:2,0" },
    "OS8W": { codeString: "HL8;HL8:0,8;VL8:8,0" },
    "OS4W": { codeString: "HL4;HL4:0,4;VL4:4,0" },
    "OS2W": { codeString: "HL2;HL2:0,2;VL2:2,0" },
    "OS8E": { codeString: "VL8;HL8;HL8:0,8" },
    "OS4E": { codeString: "VL4;HL4;HL4:0,4" },
    "OS2E": { codeString: "VL2;HL2;HL2:0,2" },
    "R84": { codeString: "HL8;HL8:0,4;VL4;VL4:8,0" },
    "R42": { codeString: "HL4;HL4:0,2;VL2;VL2:4,0" },
    "R48": { codeString: "HL4;HL4:0,8;VL8;VL8:4,0" },
    "R24": { codeString: "HL2;HL2:0,4;VL4;VL4:2,0" },
    "OR84N": { codeString: "VL4;HL8:0,4;VL4:8,0" },
    "OR42N": { codeString: "VL2;HL4:0,2;VL2:4,0" },
    "OR84S": { codeString: "VL4;HL8;VL4:8,0" },
    "OR42S": { codeString: "VL2;HL4;VL2:4,0" },
    "OR84W": { codeString: "HL8;HL8:0,4;VL4:8,0" },
    "OR42W": { codeString: "HL4;HL4:0,2;VL2:4,0" },
    "OR84E": { codeString: "VL4;HL8;HL8:0,4" },
    "OR42E": { codeString: "VL2;HL4;HL4:0,2" },
    "OR48N": { codeString: "VL8;HL4:0,8;VL8:4,0" },
    "OR24N": { codeString: "VL4;HL2:0,4;VL4:2,0" },
    "OR48S": { codeString: "VL8;HL4;VL8:4,0" },
    "OR24S": { codeString: "VL4;HL2;VL4:2,0" },
    "OR48W": { codeString: "HL4;HL4:0,8;VL8:4,0" },
    "OR24W": { codeString: "HL2;HL2:0,4;VL4:2,0" },
    "OR48E": { codeString: "VL8;HL4;HL4:0,8" },
    "OR24E": { codeString: "VL4;HL2;HL2:0,4" },
    "LARR8W": { codeString: "P4W;HL8:0,2" },
    "ARR8W": { codeString: "P3W;HL8:0,1.5" },
    "LARR4W": { codeString: "P4W;HL4:0,2" },
    "ARR4W": { codeString: "P3W;HL3:0,1.5" },
    "LARR8E": { codeString: "HL8:0,2;P4E:6,0" },
    "ARR8E": { codeString: "HL8:0,1.5;P3E:6.5,0" },
    "LARR4E": { codeString: "HL4:0,2;P4E:2,0" },
    "ARR4E": { codeString: "HL4:0,1.5;P3E:2.5,0" },
    "LARR8N": { codeString: "P4N;VL8:2,0" },
    "ARR8N": { codeString: "P3N;VL8:1.5,0" },
    "LARR4N": { codeString: "P4N;VL4:2,0" },
    "ARR4N": { codeString: "P3N;VL4:1.5,0" },
    "LARR8S": { codeString: "P4S:0,6;VL8:2,0" },
    "ARR8S": { codeString: "P3S:0,6.5;VL8:1.5,0" },
    "LARR4S": { codeString: "P4S:0,2;VL4:2,0" },
    "ARR4S": { codeString: "P3S:0,2.5;VL4:1.5,0" },
    "LARR8NW": { codeString: "DL8S;P3NW" },
    "ARR8NW": { codeString: "DL8S;P2NW" },
    "LARR4NW": { codeString: "DL4S;P3NW" },
    "ARR4NW": { codeString: "DL4S;P2NW" },
    "LARR8NE": { codeString: "DL8N;P3NE:5,0" },
    "ARR8NE": { codeString: "DL8N;P2NE:6,0" },
    "LARR4NE": { codeString: "DL4N;P3NE:1,0" },
    "ARR4NE": { codeString: "DL4N;P2NE:2,0" },
    "LARR8SW": { codeString: "DL8N;P3SW:0,5" },
    "ARR8SW": { codeString: "DL8N;P2SW:0,6" },
    "LARR4SW": { codeString: "DL4N;P3SW:0,1" },
    "ARR4SW": { codeString: "DL4N;P2SW:0,2" },
    "LARR8SE": { codeString: "DL8S;P3SE:5,5" },
    "ARR8SE": { codeString: "DL8S;P2SE:6,6" },
    "LARR4SE": { codeString: "DL4S;P3SE:1,1" },
    "ARR4SE": { codeString: "DL4S;P2SE:2,2" },
    "P4N": { codeString: "RA4N" },
    "P3N": { codeString: "RA3N" },
    "P2N": { codeString: "RA2N" },
    "P4S": { codeString: "RA4S" },
    "P3S": { codeString: "RA3S" },
    "P2S": { codeString: "RA2S" },
    "P4W": { codeString: "RA4W" },
    "P3W": { codeString: "RA3W" },
    "P2W": { codeString: "RA2W" },
    "P4E": { codeString: "RA4E" },
    "P3E": { codeString: "RA3E" },
    "P2E": { codeString: "RA2E" },
    "P3NW": { codeString: "RA3NW" },
    "P3NE": { codeString: "RA3NE" },
    "P3SW": { codeString: "RA3SW" },
    "P3SE": { codeString: "RA3SE" },
    "P2NW": { codeString: "RA2NW" },
    "P2NE": { codeString: "RA2NE" },
    "P2SW": { codeString: "RA2SW" },
    "P2SE": { codeString: "RA2SE" },
    "P1.5NW": { codeString: "RA1.5NW" },
    "P1.5NE": { codeString: "RA1.5NE" },
    "P1.5SW": { codeString: "RA1.5SW" },
    "P1.5SE": { codeString: "RA1.5SE" },
    "LARRC8EC": { codeString: "C8;P4S:6,2" },
    "ARRC8EC": { codeString: "C8;P3S:6.5,2.5" },
    "LARRC8WC": { codeString: "P4N:0,4;C8:2,0" },
    "ARRC8WC": { codeString: "P3N:0,4;C8:1.5,0" },
    "LARRC8NC": { codeString: "C8:0,2;P4E:2,0" },
    "ARRC8NC": { codeString: "C8:0,1.5;P3E:2.5,0" },
    "LARRC8SC": { codeString: "C8;P4W:4,6" },
    "ARRC8SC": { codeString: "C8;P3W:4,6.5" },
    "LARRC8ECC": { codeString: "C8;P4N:6,4" },
    "ARRC8ECC": { codeString: "C8;P3N:6.5,4" },
    "LARRC8WCC": { codeString: "P4S:0,2;C8:2,0" },
    "ARRC8WCC": { codeString: "P3S:0,2.5;C8:1.5,0" },
    "LARRC8NCC": { codeString: "C8:0,2;P4W:4,0" },
    "ARRC8NCC": { codeString: "C8:0,1.5;P3W:4,0" },
    "LARRC8SCC": { codeString: "C8;P4E:2,6" },
    "ARRC8SCC": { codeString: "C8;P3E:2.5,6.5" },
    "LARROC8SEC": { codeString: "OC8SE;P4S:6,2" },
    "ARROC8SEC": { codeString: "OC8SE;P3S:6.5,2.5" },
    "LARROC8NWC": { codeString: "P4N:0,4;OC8NW:2,0" },
    "ARROC8NWC": { codeString: "P3N:0,4;OC8NW:1.5,0" },
    "LARROC8NEC": { codeString: "OC8NE:0,2;P4E:2,0" },
    "ARROC8NEC": { codeString: "OC8NE:0,1.5;P3E:2.5,0" },
    "LARROC8SWC": { codeString: "OC8SW;P4W:4,6" },
    "ARROC8SWC": { codeString: "OC8SW;P3W:4,6.5" },
    "LARROC8SECC": { codeString: "OC8SE;P4E:2,6" },
    "ARROC8SECC": { codeString: "OC8SE;P3E:2.5,6.5" },
    "LARROC8NWCC": { codeString: "OC8NW:0,2;P4W:4,0" },
    "ARROC8NWCC": { codeString: "OC8NW:0,1.5;P3W:4,0" },
    "LARROC8NECC": { codeString: "OC8NE;P4N:6,4" },
    "ARROC8NECC": { codeString: "OC8NE;P3N:6.5,4" },
    "LARROC8SWCC": { codeString: "P4S:0,2;OC8SW:2,0" },
    "ARROC8SWCC": { codeString: "P3S:0,2.5;OC8SW:1.5,0" },
    "LARRHC8NC": { codeString: "HC8N;P4S:6,2" },
    "ARRHC8NC": { codeString: "HC8N;P3S:6.5,2.5" },
    "LARRHC8SC": { codeString: "P4N;HC8S:2,0" },
    "ARRHC8SC": { codeString: "P3N;HC8S:1.5,0" },
    "LARRHC8WC": { codeString: "HC8W:0,2;P4E:2,0" },
    "ARRHC8WC": { codeString: "HC8W:0,1.5;P3E:2.5,0" },
    "LARRHC8EC": { codeString: "HC8E;P4W:0,6" },
    "ARRHC8EC": { codeString: "HC8E;P3W:0,6.5" },
    "LARRHC8NCC": { codeString: "P4S:0,2;HC8N:2,0" },
    "ARRHC8NCC": { codeString: "P3S:0,2.5;HC8N:1.5,0" },
    "LARRHC8SCC": { codeString: "HC8S;P4N:6,0" },
    "ARRHC8SCC": { codeString: "HC8S;P3N:6.5,0" },
    "LARRHC8WCC": { codeString: "HC8W;P4E:2,6" },
    "ARRHC8WCC": { codeString: "HC8W;P3E:2.5,6.5" },
    "LARRHC8ECC": { codeString: "P4W;HC8E:0,2" },
    "ARRHC8ECC": { codeString: "P3W;HC8E:0,1.5" },
    "LARRQC4NWC": { codeString: "QC4NW:0,2;P4E:2,0" },
    "ARRQC4NWC": { codeString: "QC4NW:0,1.5;P3E:2.5,0" },
    "LARRQC4SWC": { codeString: "P4N;QC4SW:2,0" },
    "ARRQC4SWC": { codeString: "P3N;QC4SW:1.5,0" },
    "LARRQC4NEC": { codeString: "QC4NE;P4S:2,2" },
    "ARRQC4NEC": { codeString: "QC4NE;P3S:2.5,2.5" },
    "LARRQC4SEC": { codeString: "QC4SE;P4W:0,2" },
    "ARRQC4SEC": { codeString: "QC4SE;P3W:0,2.5" },
    "LARRQC4NWCC": { codeString: "P4S:0,2;QC4NW:2,0" },
    "ARRQC4NWCC": { codeString: "P3S:0,2.5;QC4NW:1.5,0" },
    "LARRQC4SWCC": { codeString: "QC4SW;P4E:2,2" },
    "ARRQC4SWCC": { codeString: "QC4SW;P3E:2.5,2.5" },
    "LARRQC4NECC": { codeString: "P4W;QC4NE:0,2" },
    "ARRQC4NECC": { codeString: "P3W;QC4NE:0,1.5" },
    "LARRQC4SECC": { codeString: "QC4SE;P4N:2,0" },
    "ARRQC4SECC": { codeString: "QC4SE;P3N:2.5,0" }
  };
  blissElementDefinitions["DOT"].extraPathOptions = {
    baseStrokeWidth: 0.5,
    extraDotWidth: 0.333
  };
  blissElementDefinitions["SDOT"].extraPathOptions = {
    baseStrokeWidth: 0.5,
    extraDotWidth: 0
  };
  blissElementDefinitions["COMMA"].extraPathOptions = {
    baseStrokeWidth: 0.5,
    extraDotWidth: 0.333
  };
  const characters = "abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ";
  for (let i = 0; i < characters.length; i++) {
    const x = characters[i];
    blissElementDefinitions[`X${x}`] = createExternalGlyph(x);
  }
  for (const definition of Object.values(blissElementDefinitions)) {
    definition.isAtomic = true;
  }
  Object.assign(blissElementDefinitions, charData);
  class BlissParser {
    static parse(codeStr, options) {
      const result = this.fromString(codeStr);
      if (options) {
        result.options = { ...result.options, ...options };
      }
      return result;
    }
    // Helper function to encode string and parse global options
    static encodeString(inputString, unescapeMap) {
      return { encodedString, globalOptions };
    }
    static parsePartString(str) {
      const part = {};
      let [_, optionsString, codeString] = str.match(/^(\[[^\}]*\])?(.*)/);
      if (optionsString) {
        part.options = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, optionsString);
      }
      if (codeString) {
        const matched = codeString.match(/^([\w\-.]+):?(\-?\d*(?:\.\d*)?)?,?(\-?\d*(?:\.\d*)?)?$/);
        if (matched) {
          let [, code, x, y] = matched;
          part.code = code;
          part.x = Number(x) || 0;
          part.y = Number(y) || 0;
        } else {
          part.error = `Invalid format: ${codeString}`;
        }
      }
      return part;
    }
    // Helper function to parse character parts
    static parseCharacterParts(encodedString2, escapeMap, unescapeMap) {
      let parts = [];
      return parts;
    }
    static fromString(inputString) {
      inputString = inputString.trim();
      let result = { options: {}, words: [] };
      __privateMethod(this, _setupEscapeMaps, setupEscapeMaps_fn).call(this);
      let placeholderMap = {};
      let placeholderCount = 0;
      inputString = inputString.replace(/\{(.*?)\}/g, (match, group1) => {
        let placeholder = `PLACEHOLDER_${placeholderCount++}`;
        placeholderMap[placeholder] = group1.trim();
        return `{${placeholder}}`;
      });
      inputString = inputString.replace(/\s/g, "");
      inputString = inputString.replace(/(.*?)\/K(:-\d+)(\/[^\/]*)/g, "$1$3$2");
      let [_, globalOptionsString, globalCodeString] = inputString.match(/^\s*(?:([^|]*)\s*\|\|)?(.*)$/);
      result.options = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, globalOptionsString);
      let threePartWordStrings = globalCodeString.split("//");
      for (let tpws of threePartWordStrings) {
        let replaceWithDefinition = function(str, definitions) {
          var _a;
          let parts = str.split("/");
          let resultParts = [];
          for (let part of parts) {
            if ((_a = definitions[part]) == null ? void 0 : _a.codeString) {
              resultParts.push(...definitions[part].codeString.split("/"));
            } else {
              resultParts.push(part);
            }
          }
          let newStr = resultParts.join("/");
          if (newStr !== str) {
            return replaceWithDefinition(newStr, definitions);
          } else {
            return newStr;
          }
        };
        if (tpws === "")
          continue;
        let word = { options: {}, characters: [] };
        let [_2, twoPartWordString, textKey] = tpws.match(new RegExp("(.*?)(?:\\{(.*?(?<!\\\\))\\})?$"));
        if (textKey) {
          word.text = placeholderMap[textKey];
        }
        let twoPartCharacterStrings = replaceWithDefinition(twoPartWordString, blissElementDefinitions).split("/");
        for (let tpcs of twoPartCharacterStrings) {
          if (tpcs === "")
            continue;
          const character = { parts: [] };
          const [characterOptionsString, characterCodeString] = tpcs.includes("|") ? tpcs.split("|", 2) : [void 0, tpcs];
          if (characterOptionsString) {
            character.options = __privateMethod(this, _parseOptions, parseOptions_fn).call(this, characterOptionsString);
          }
          const parseParts = (partsString) => {
            const parts = [];
            const twoPartPartStrings = partsString.split(";");
            for (const twoPartPartString of twoPartPartStrings) {
              const part = this.parsePartString(twoPartPartString);
              const definition = blissElementDefinitions[part.code];
              const codeString = definition.codeString;
              if (codeString) {
                if (codeString.includes(";") || codeString.includes(":") || blissElementDefinitions[codeString].codeString) {
                  part.parts = parseParts(definition.codeString);
                  delete part.code;
                } else {
                  part.code = definition.codeString;
                }
              }
              if (definition.isIndicator) {
                part.isIndicator = true;
                part.width = definition.width || 2;
                part.center = definition.center || 0;
              }
              parts.push(part);
            }
            return parts;
          };
          character.parts = parseParts(characterCodeString);
          word.characters.push(character);
        }
        result.words.push(word);
      }
      return result;
    }
  }
  _setupEscapeMaps = new WeakSet();
  setupEscapeMaps_fn = function() {
    const escapeMap = {
      "\\": "",
      ";": "",
      "{": "",
      "}": "",
      "n": "",
      "r": ""
    };
    const unescapeMap = {};
    for (let k in escapeMap) {
      unescapeMap[escapeMap[k]] = k;
    }
    return { escapeMap, unescapeMap };
  };
  _parseOptions = new WeakSet();
  parseOptions_fn = function(optionsString) {
    var _a;
    if (!optionsString)
      return;
    const extractedContent = (_a = optionsString.match(/\[([^\]]*)\]/)) == null ? void 0 : _a[1].replace(/\s/g, "");
    const keyValuePairs = extractedContent ? extractedContent.split(";") : [];
    const parsedObject = {};
    for (const keyValuePair of keyValuePairs) {
      const [key, value] = keyValuePair.split("=");
      parsedObject[key] = value;
    }
    return parsedObject;
  };
  _fromStream = new WeakSet();
  fromStream_fn = function(blissStream) {
  };
  _toString = new WeakSet();
  toString_fn = function(blissComposition) {
  };
  _toObject = new WeakSet();
  toObject_fn = function(blissComposition) {
  };
  _toStream = new WeakSet();
  toStream_fn = function(blissComposition) {
  };
  __privateAdd(BlissParser, _setupEscapeMaps);
  __privateAdd(BlissParser, _parseOptions);
  __privateAdd(BlissParser, _fromStream);
  __privateAdd(BlissParser, _toString);
  __privateAdd(BlissParser, _toObject);
  __privateAdd(BlissParser, _toStream);
  const DEFAULT_CHAR_SPACING = 2;
  const DEFAULT_FULL_SPACE = 8;
  const DEFAULT_HALF_SPACE = 4;
  const DEFAULT_QUARTER_SPACE = 2;
  const DEFAULT_SENTENCE_SPACING = DEFAULT_CHAR_SPACING + DEFAULT_FULL_SPACE;
  const DEFAULT_WORD_SPACING = DEFAULT_CHAR_SPACING + DEFAULT_HALF_SPACE;
  const DEFAULT_PUNCTUATION_SPACING = DEFAULT_CHAR_SPACING + DEFAULT_QUARTER_SPACE;
  const _BlissElement = class _BlissElement {
    //#endregion
    constructor(blissObj, { parentElement = null, previousElement = null, level = 0 } = {}) {
      __privateAdd(this, _initExplicitElement);
      __privateAdd(this, _initImplicitElement);
      //#region Private Properties
      __privateAdd(this, _level, void 0);
      __privateAdd(this, _extraPathOptions, void 0);
      __privateAdd(this, _isCharacter, void 0);
      __privateAdd(this, _isAtomic, void 0);
      __privateAdd(this, _isIndicator, void 0);
      __privateAdd(this, _isExternalGlyph, void 0);
      __privateAdd(this, _width, void 0);
      __privateAdd(this, _height, void 0);
      __privateAdd(this, _children, void 0);
      __privateAdd(this, _relativeToRootX, void 0);
      __privateAdd(this, _relativeToParentX, void 0);
      __privateAdd(this, _relativeToParentY, void 0);
      //#codeString
      __privateAdd(this, _codeName, void 0);
      __privateAdd(this, _charSpacing, void 0);
      __privateAdd(this, _wordSpacing, void 0);
      __privateAdd(this, _sentenceSpacing, void 0);
      __privateAdd(this, _punctuationSpacing, void 0);
      __privateSet(this, _level, level);
      __privateSet(this, _codeName, "");
      __privateSet(this, _relativeToParentX, 0);
      __privateSet(this, _relativeToParentY, 0);
      __privateSet(this, _children, []);
      __privateSet(this, _charSpacing, DEFAULT_CHAR_SPACING);
      __privateSet(this, _wordSpacing, DEFAULT_WORD_SPACING);
      __privateSet(this, _sentenceSpacing, DEFAULT_SENTENCE_SPACING);
      __privateSet(this, _punctuationSpacing, DEFAULT_PUNCTUATION_SPACING);
      __privateSet(this, _relativeToRootX, level === 2 ? parentElement.x : previousElement ? previousElement.x + previousElement.width + 2 : parentElement ? parentElement.x : 0);
      this.parentElement = parentElement;
      this.previousElement = previousElement;
      if (blissObj.words) {
        for (const word of blissObj.words) {
          const child = new _BlissElement(word, { parentElement: this, previousElement: __privateGet(this, _children)[__privateGet(this, _children).length - 1], level: __privateGet(this, _level) + 1 });
          __privateGet(this, _children).push(child);
        }
        this.getPath = (x = 0, y = 0) => __privateGet(this, _children).map((child) => child.getPath(__privateGet(this, _relativeToRootX) + x, __privateGet(this, _relativeToParentY) + y)).join(" ");
      } else if (blissObj.characters) {
        if (__privateGet(this, _level) < 1)
          __privateSet(this, _level, 1);
        for (const character of blissObj.characters) {
          const child = new _BlissElement(character, { parentElement: this, previousElement: __privateGet(this, _children)[__privateGet(this, _children).length - 1], level: __privateGet(this, _level) + 1 });
          __privateGet(this, _children).push(child);
        }
        this.getPath = (x = 0, y = 0) => __privateGet(this, _children).map((child) => child.getPath(__privateGet(this, _relativeToParentX) + x, __privateGet(this, _relativeToParentY) + y)).join(" ");
      } else {
        if (__privateGet(this, _level) < 2)
          __privateSet(this, _level, 2);
        const codeName = blissObj.code;
        if (level === 2) {
          __privateSet(this, _relativeToParentX, previousElement ? previousElement.x + previousElement.width + __privateGet(this, _charSpacing) : 0);
        } else {
          __privateSet(this, _relativeToParentX, blissObj.x || 0);
        }
        __privateSet(this, _relativeToParentY, blissObj.y || 0);
        const definition = blissElementDefinitions[codeName];
        if (definition) {
          __privateSet(this, _codeName, codeName);
          __privateSet(this, _extraPathOptions, definition.extraPathOptions || {});
          __privateSet(this, _isCharacter, !!definition.isCharacter);
          __privateSet(this, _isAtomic, !!definition.isAtomic);
          __privateSet(this, _isExternalGlyph, !!definition.isExternalGlyph);
          __privateSet(this, _width, definition.width);
          __privateSet(this, _height, definition.height);
          if (definition.getPath) {
            this.getPath = (x = 0, y = 0) => definition.getPath(__privateGet(this, _relativeToParentX) + x, __privateGet(this, _relativeToParentY) + y, __privateGet(this, _extraPathOptions));
          }
        }
        if (blissObj.parts) {
          for (const part of blissObj.parts) {
            const child = new _BlissElement(part, { parentElement: this, previousElement: __privateGet(this, _children)[__privateGet(this, _children).length - 1], level: __privateGet(this, _level) + 1 });
            __privateGet(this, _children).push(child);
          }
          if (blissObj == null ? void 0 : blissObj.isIndicator) {
            const centerOfBaseCharacter = previousElement.width / 2;
            const centerOfIndicator = blissObj.center;
            const widthOfIndicator = blissObj.width;
            const offsetX = centerOfBaseCharacter + centerOfIndicator - widthOfIndicator / 2;
            this.getPath = (x = 0, y = 0, level2 = 0) => {
              const appliedOffsetX = level2 === 0 ? x + __privateGet(this, _relativeToParentX) + offsetX : x + __privateGet(this, _relativeToParentX);
              const appliedOffsetY = y + __privateGet(this, _relativeToParentY);
              return __privateGet(this, _children).map((child) => child.getPath(appliedOffsetX, appliedOffsetY, level2 + 1)).join(" ");
            };
          } else {
            this.getPath = (x = 0, y = 0) => __privateGet(this, _children).map((child) => child.getPath(__privateGet(this, _relativeToParentX) + x, __privateGet(this, _relativeToParentY) + y)).join(" ");
          }
        }
        if (!(definition == null ? void 0 : definition.getPath) && !blissObj.parts) {
          throw new Error(`Code ${blissObj.code} did not correspond to a definition with a getPath function.`);
        }
      }
    }
    //get codeString() {
    //  return this.#codeString;
    // }
    get codeName() {
      return __privateGet(this, _codeName) || "";
    }
    get width() {
      if (__privateGet(this, _width) !== void 0) {
        return __privateGet(this, _width);
      }
      if (__privateGet(this, _children)) {
        let minRelativeX = Number.POSITIVE_INFINITY;
        let maxRelativeXPlusWidth = Number.NEGATIVE_INFINITY;
        for (let child of __privateGet(this, _children)) {
          minRelativeX = Math.min(minRelativeX, child.x);
          maxRelativeXPlusWidth = Math.max(maxRelativeXPlusWidth, child.x + child.width);
        }
        return maxRelativeXPlusWidth - minRelativeX;
      }
    }
    get height() {
      if (__privateGet(this, _height) !== void 0) {
        return __privateGet(this, _height);
      }
      if (__privateGet(this, _isCharacter)) {
        return 20;
      }
      if (__privateGet(this, _children)) {
        return Math.max(...__privateGet(this, _children).map((child) => this.y + child.y + child.height));
      }
    }
    get x() {
      return __privateGet(this, _relativeToParentX);
    }
    get y() {
      return __privateGet(this, _relativeToParentY);
    }
    //get #theOnlyChild() {
    //  return (this.#children.length === 1 && this.#children[0]) || {};
    //}
    get isCharacter() {
      return __privateGet(this, _isCharacter);
    }
    get isAtomic() {
      return __privateGet(this, _isAtomic);
    }
    get isExternalGlyph() {
      var _a;
      const isCharacterLevel = __privateGet(this, _level) === 2;
      return isCharacterLevel ? !!((_a = __privateGet(this, _children)[0]) == null ? void 0 : _a.isExternalGlyph) : false;
    }
    get includeGrid() {
      return this.optio;
    }
    toStringOldNotWorking() {
      const obj = this.toJSON();
      if (obj.atomicElements) {
        return obj.atomicElements.map(({ code, x = 0, y = 0 }) => x === 0 && y === 0 ? code : `${code}:${x},${y}`).join(";");
      } else {
        return (obj.elements || []).filter((e) => e !== void 0 && e !== null).map(({ code, x = 0, y = 0 }) => x === 0 && y === 0 ? code : `${code}:${x},${y}`).join("/");
      }
    }
    toStringOld2() {
      const obj = this.toJSON();
      const joinWith = __privateGet(this, _level) === 0 ? "//" : __privateGet(this, _level) === 1 ? "/" : ";";
      return (obj.elements || []).filter((e) => e !== void 0 && e !== null).map(({ code, x = 0, y = 0 }) => x === 0 && y === 0 ? code : `${code}:${x},${y}`).join(joinWith);
    }
    toStringOld3() {
      const obj = this.toJSON();
      let joinWith = "";
      switch (__privateGet(this, _level)) {
        case 0:
          joinWith = "//";
          break;
        case 1:
          joinWith = "/";
          break;
        case 2:
        default:
          joinWith = ";";
          break;
      }
      return (obj.elements || []).filter((e) => e !== void 0 && e !== null).map(({ code, x = 0, y = 0 }) => x === 0 && y === 0 ? code : `${code}:${x},${y}`).join(joinWith);
    }
    toStringDDD() {
      const obj = this.toJSON();
      return (obj.elements || []).filter((e) => e !== void 0 && e !== null).map(({ code, x = 0, y = 0, level }) => {
        let joinWith = "";
        switch (level) {
          case 2:
            joinWith = "//";
            break;
          case 3:
            joinWith = "/";
            break;
          case 4:
          default:
            joinWith = ";";
            break;
        }
        return x === 0 && y === 0 ? code : `${code}:${x},${y}${joinWith}`;
      }).join("");
    }
    toStringj() {
      this.toJSON();
    }
    toStringO() {
      const obj = this.toJSON();
      const processElement = ({ code, x = 0, y = 0, level, elements = [] }) => {
        let joinWith = "";
        switch (level) {
          case 2:
            joinWith = "//";
            break;
          case 3:
            joinWith = "/";
            break;
          case 4:
          default:
            joinWith = ";";
            break;
        }
        const elementString = x === 0 && y === 0 ? code : `${code}:${x},${y}`;
        const childStrings = elements.map(processElement).join("");
        return `${elementString}${joinWith}${childStrings}`;
      };
      return (obj.elements || []).map(processElement).join("");
    }
    toString() {
      const obj = this.toJSON();
      function traverse(obj2, level = 1) {
        if (!obj2.elements) {
          let str = obj2.code;
          if (obj2.x !== 0 || obj2.y !== 0) {
            str = `${str}:${obj2.x},${obj2.y}`;
          }
          return str;
        }
        let delimiterMap = {
          1: "//",
          2: "/",
          3: ";"
        };
        let results = obj2.elements.map((subObj) => traverse(subObj, level + 1)).join(delimiterMap[level]);
        return results;
      }
      return traverse(obj);
    }
    toJSON() {
      let obj = {};
      if (__privateGet(this, _codeName) && __privateGet(this, _isAtomic)) {
        const element = {};
        element.code = this.codeName;
        element.width = this.width;
        element.x = __privateGet(this, _relativeToParentX);
        element.y = __privateGet(this, _relativeToParentY);
        obj = element;
      } else if (__privateGet(this, _children)) {
        obj.elements = [];
        for (const child of __privateGet(this, _children)) {
          obj.elements.push(child.toJSON());
        }
      }
      return obj;
    }
    toJSONOld4() {
      const obj = {};
      if (__privateGet(this, _codeName)) {
        const element = {};
        element.code = this.codeName;
        element.width = this.width;
        element.x = this.x;
        element.y = this.y;
        element.level = __privateGet(this, _level);
        obj.elements = [];
        obj.elements.push(element);
      } else if (__privateGet(this, _children)) {
        const elements = __privateGet(this, _children).map((child) => child.toJSON().elements);
        obj.elements = [];
        obj.elements = obj.elements.concat(...elements);
      }
      return obj;
    }
    toJSONOldNotWorking() {
      const obj = {};
      if (__privateGet(this, _codeName) && __privateGet(this, _isAtomic)) {
        const element = {};
        element.code = this.codeName;
        element.width = this.width;
        element.x = this.x;
        element.y = this.y;
        obj.atomicElements = [];
        obj.atomicElements.push(element);
      } else if (__privateGet(this, _children)) {
        const elements = __privateGet(this, _children).map((child) => child.toJSON().atomicElements);
        obj.elements = [];
        obj.elements = obj.elements.concat(...elements);
      }
      return obj;
    }
  };
  _level = new WeakMap();
  _extraPathOptions = new WeakMap();
  _isCharacter = new WeakMap();
  _isAtomic = new WeakMap();
  _isIndicator = new WeakMap();
  _isExternalGlyph = new WeakMap();
  _width = new WeakMap();
  _height = new WeakMap();
  _children = new WeakMap();
  _relativeToRootX = new WeakMap();
  _relativeToParentX = new WeakMap();
  _relativeToParentY = new WeakMap();
  _codeName = new WeakMap();
  _charSpacing = new WeakMap();
  _wordSpacing = new WeakMap();
  _sentenceSpacing = new WeakMap();
  _punctuationSpacing = new WeakMap();
  _initExplicitElement = new WeakSet();
  initExplicitElement_fn = function(definition) {
    __privateSet(this, _width, definition.width);
    __privateSet(this, _height, definition.height);
    this.getPath = (x = 0, y = 0) => definition.getPath(__privateGet(this, _relativeToParentX) + x, __privateGet(this, _relativeToParentY) + y, __privateGet(this, _extraPathOptions));
  };
  _initImplicitElement = new WeakSet();
  initImplicitElement_fn = function(parts) {
    for (const part of parts) {
      const child = new _BlissElement(part, __privateGet(this, _relativeToParentX));
      __privateGet(this, _children).push(child);
    }
    this.getPath = (x = 0, y = 0) => __privateGet(this, _children).map((child) => child.getPath(x + __privateGet(this, _relativeToParentX), y + __privateGet(this, _relativeToParentY))).join(" ");
  };
  let BlissElement = _BlissElement;
  class BlissSVGBuilder {
    constructor(input) {
      __privateAdd(this, _svgCode);
      const blissObj = BlissParser.parse(input);
      this.composition = new BlissElement(blissObj);
      this.options = {
        strokeWidth: 0.5,
        width: this.composition.width,
        height: this.composition.height,
        x: this.composition.x,
        y: this.composition.y,
        grid: true
      };
    }
    toString() {
      return this.composition.toString();
    }
    toJSON() {
      return this.composition.toJSON();
    }
    /**
     * Returns the main path element of the SVG as a string.
     * This is useful when you need only the primary graphical content of the SVG for manipulation or for use in complex SVG compositions.
     * 
     * @returns {string} SVG path string
     */
    get svgPath() {
      return `<path d="${this.composition.getPath()}"></path>`;
    }
    /**
     * Returns the SVG as a DOM Element.
     * This property is useful when you need to directly manipulate the SVG using the native DOM API.
     * 
     * @returns {HTMLElement} SVG DOM element
     */
    get svgElement() {
      const parser = new DOMParser();
      const doc = parser.parseFromString(__privateGet(this, _svgCode, svgCode_get), "image/svg+xml");
      return doc.documentElement;
    }
    /**
     * Returns the SVG code as a string, without the XML declaration.
     * This is suitable for embedding the SVG within HTML documents or using it with virtual DOM libraries like React and Preact.
     * 
     * @returns {string} SVG string without XML declaration
     */
    get svgCode() {
      return __privateGet(this, _svgCode, svgCode_get);
    }
    /**
     * Returns the SVG code as a string, including the XML declaration.
     * This is suitable for creating standalone SVG files.
     * 
     * @returns {string} SVG string with XML declaration
     */
    get standaloneSvg() {
      return `<?xml version="1.0" encoding="utf-8" standalone="yes"?>
${__privateGet(this, _svgCode, svgCode_get)}`;
    }
    set code(settingsAndCodesString) {
      if (typeof settingsAndCodesString !== "string")
        throw new Error("Code must be a string");
      const settings = this.parseSettings(settingsAndCodesString);
      this.validateSettings(settings);
      this.applySettings(settings);
      this.pathProperties.path = this.getFullPath(settingsAndCodesString);
      this.pathProperties.code = settingsAndCodesString;
    }
    parseSettings(settingsAndCodesString) {
    }
    validateSettings(settings) {
    }
    applySettings(settings) {
    }
    getFullPath(settingsAndCodesString) {
    }
    // ...more methods...
    /**
     * Extends the blissElementDefinitions with custom data.
     *
     * @static
     * @param {Object.<string, { codeString: string, isIndicator?: boolean, center?: number, width?: number }>} data 
     *     Character code in the format { B1: { codeString: "..." }, B2: { codeString: "..." } }
     *     Optional properties: isIndicator, center, width.
     *     Use this function before invoking new to extend Bliss-SVG-Builder with custom data.
     */
    static extendData(data) {
      if (data) {
        for (let key in data) {
          let entry = data[key];
          if (entry.hasOwnProperty("codeString") && typeof entry.codeString === "string") {
            let validEntry = { codeString: entry.codeString };
            if (entry.hasOwnProperty("isIndicator") && typeof entry.isIndicator === "boolean") {
              validEntry.isIndicator = entry.isIndicator;
            }
            if (entry.hasOwnProperty("center") && typeof entry.center === "number") {
              validEntry.center = entry.center;
            }
            if (entry.hasOwnProperty("width") && typeof entry.width === "number") {
              validEntry.width = entry.width;
            }
            blissElementDefinitions[key] = validEntry;
          } else {
            console.warn(`Invalid entry for key: ${key}`);
          }
        }
      }
    }
  }
  _svgCode = new WeakSet();
  svgCode_get = function() {
    const color = "black";
    const strokeWidth = 0.5;
    const cropTop = 0;
    const cropBottom = 0;
    const margin = 0.75;
    const width = this.composition.width;
    const height = 20;
    const viewBoxX = -margin;
    const viewBoxY = -margin + cropTop;
    const path = this.svgPath;
    const viewBoxWidth = width + margin * 2;
    const viewBoxHeight = height - cropTop - cropBottom + margin * 2;
    const svgAttributeMultiplier = 6;
    const svgWidth = svgAttributeMultiplier * viewBoxWidth;
    const svgHeight = svgAttributeMultiplier * viewBoxHeight;
    let title = "";
    let desc = "";
    let gridPath = "";
    let svgText = "";
    let backgroundRect = "";
    let svgStr = `<svg xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="tiny" width="${svgWidth}" height="${svgHeight}" viewBox="${viewBoxX} ${viewBoxY} ${viewBoxWidth} ${viewBoxHeight}" fill="none" stroke="${color}" stroke-linejoin="round" stroke-linecap="round" stroke-width="${strokeWidth}">
  ${title}${desc}${backgroundRect}${gridPath}${path}${svgText}
</svg>`;
    return svgStr;
  };
  if (typeof module !== "undefined" && typeof module.exports !== "undefined") {
    module.exports = { BlissSVGBuilder };
  }
  exports2.BlissSVGBuilder = BlissSVGBuilder;
  Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
});