hybridtm 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/hybridtm.js +1 -1
  2. package/dist/hybridtm.js.map +1 -1
  3. package/dist/match.d.ts +7 -2
  4. package/dist/match.js +14 -2
  5. package/dist/match.js.map +1 -1
  6. package/package.json +13 -7
  7. package/dist/batchimporter.d.ts +0 -22
  8. package/dist/batchimporter.js +0 -203
  9. package/dist/constants.d.ts +0 -15
  10. package/dist/constants.js +0 -16
  11. package/dist/constants.js.map +0 -1
  12. package/dist/debug-progress.d.ts +0 -12
  13. package/dist/debug-progress.js +0 -49
  14. package/dist/debug-progress.js.map +0 -1
  15. package/dist/ngramIndex.d.ts +0 -31
  16. package/dist/ngramIndex.js +0 -132
  17. package/dist/ngramIndex.js.map +0 -1
  18. package/dist/ngrams.d.ts +0 -21
  19. package/dist/ngrams.js +0 -73
  20. package/dist/ngrams.js.map +0 -1
  21. package/dist/package.json +0 -35
  22. package/dist/progressProvider.d.ts +0 -17
  23. package/dist/progressProvider.js +0 -14
  24. package/dist/progressProvider.js.map +0 -1
  25. package/dist/simplexlifftest.d.ts +0 -1
  26. package/dist/simplexlifftest.js +0 -23
  27. package/dist/simplexlifftest.js.map +0 -1
  28. package/dist/test-import.d.ts +0 -12
  29. package/dist/test-import.js +0 -101
  30. package/dist/test-import.js.map +0 -1
  31. package/dist/test-progress-fix.d.ts +0 -1
  32. package/dist/test-progress-fix.js +0 -32
  33. package/dist/test-progress-fix.js.map +0 -1
  34. package/dist/test-progress.d.ts +0 -12
  35. package/dist/test-progress.js +0 -32
  36. package/dist/test-progress.js.map +0 -1
  37. package/dist/tests/vectorSimilarityComparison.d.ts +0 -12
  38. package/dist/tests/vectorSimilarityComparison.js +0 -153
  39. package/dist/tests/vectorSimilarityComparison.js.map +0 -1
  40. package/dist/tmxreader.d.ts +0 -25
  41. package/dist/tmxreader.js +0 -51
  42. package/dist/tmxtest.d.ts +0 -16
  43. package/dist/tmxtest.js +0 -316
  44. package/dist/tmxtest.js.map +0 -1
  45. package/dist/ts/batchImporter.js.map +0 -1
  46. package/dist/ts/hybridtm.d.ts +0 -67
  47. package/dist/ts/hybridtm.js +0 -932
  48. package/dist/ts/hybridtm.js.map +0 -1
  49. package/dist/ts/hybridtmFactory.d.ts +0 -43
  50. package/dist/ts/hybridtmFactory.js +0 -165
  51. package/dist/ts/hybridtmFactory.js.map +0 -1
  52. package/dist/ts/importOptions.d.ts +0 -21
  53. package/dist/ts/importOptions.js +0 -24
  54. package/dist/ts/importOptions.js.map +0 -1
  55. package/dist/ts/index.d.ts +0 -25
  56. package/dist/ts/index.js +0 -22
  57. package/dist/ts/index.js.map +0 -1
  58. package/dist/ts/langEntry.d.ts +0 -64
  59. package/dist/ts/langEntry.js +0 -13
  60. package/dist/ts/langEntry.js.map +0 -1
  61. package/dist/ts/match.d.ts +0 -22
  62. package/dist/ts/match.js +0 -38
  63. package/dist/ts/match.js.map +0 -1
  64. package/dist/ts/matchQuality.d.ts +0 -16
  65. package/dist/ts/matchQuality.js +0 -83
  66. package/dist/ts/matchQuality.js.map +0 -1
  67. package/dist/ts/pendingEntry.d.ts +0 -24
  68. package/dist/ts/pendingEntry.js +0 -13
  69. package/dist/ts/pendingEntry.js.map +0 -1
  70. package/dist/ts/searchFilters.d.ts +0 -24
  71. package/dist/ts/searchFilters.js +0 -13
  72. package/dist/ts/searchFilters.js.map +0 -1
  73. package/dist/ts/tmxHandler.d.ts +0 -61
  74. package/dist/ts/tmxHandler.js +0 -347
  75. package/dist/ts/tmxHandler.js.map +0 -1
  76. package/dist/ts/tmxReader.js.map +0 -1
  77. package/dist/ts/tmxtest.d.ts +0 -16
  78. package/dist/ts/tmxtest.js +0 -316
  79. package/dist/ts/tmxtest.js.map +0 -1
  80. package/dist/ts/utils.d.ts +0 -17
  81. package/dist/ts/utils.js +0 -49
  82. package/dist/ts/utils.js.map +0 -1
  83. package/dist/ts/xliffHandler.d.ts +0 -67
  84. package/dist/ts/xliffHandler.js +0 -522
  85. package/dist/ts/xliffHandler.js.map +0 -1
  86. package/dist/ts/xliffReader.js.map +0 -1
  87. package/dist/ts/xlifftest.d.ts +0 -54
  88. package/dist/ts/xlifftest.js +0 -245
  89. package/dist/ts/xlifftest.js.map +0 -1
  90. package/dist/vectorSimilarityTester.d.ts +0 -56
  91. package/dist/vectorSimilarityTester.js +0 -164
  92. package/dist/vectorSimilarityTester.js.map +0 -1
  93. package/dist/xliffreader.d.ts +0 -25
  94. package/dist/xliffreader.js +0 -50
  95. package/dist/xlifftest.d.ts +0 -54
  96. package/dist/xlifftest.js +0 -245
  97. package/dist/xlifftest.js.map +0 -1
  98. /package/dist/{ts/batchImporter.d.ts → batchImporter.d.ts} +0 -0
  99. /package/dist/{ts/batchImporter.js → batchImporter.js} +0 -0
  100. /package/dist/{batchimporter.js.map → batchImporter.js.map} +0 -0
  101. /package/dist/{tmxhandler.d.ts → tmxHandler.d.ts} +0 -0
  102. /package/dist/{tmxhandler.js → tmxHandler.js} +0 -0
  103. /package/dist/{tmxhandler.js.map → tmxHandler.js.map} +0 -0
  104. /package/dist/{ts/tmxReader.d.ts → tmxReader.d.ts} +0 -0
  105. /package/dist/{ts/tmxReader.js → tmxReader.js} +0 -0
  106. /package/dist/{tmxreader.js.map → tmxReader.js.map} +0 -0
  107. /package/dist/{xliffhandler.d.ts → xliffHandler.d.ts} +0 -0
  108. /package/dist/{xliffhandler.js → xliffHandler.js} +0 -0
  109. /package/dist/{xliffhandler.js.map → xliffHandler.js.map} +0 -0
  110. /package/dist/{ts/xliffReader.d.ts → xliffReader.d.ts} +0 -0
  111. /package/dist/{ts/xliffReader.js → xliffReader.js} +0 -0
  112. /package/dist/{xliffreader.js.map → xliffReader.js.map} +0 -0
package/dist/hybridtm.js CHANGED
@@ -546,7 +546,7 @@ export class HybridTM {
546
546
  try {
547
547
  const sourceElement = Utils.buildXMLElement(sourceEntry.element);
548
548
  const targetElement = Utils.buildXMLElement(targetEntry.element);
549
- const match = new Match(sourceElement, targetElement, this.name, semanticScore, fuzzyScore);
549
+ const match = new Match(targetEntry.id, sourceElement, targetElement, this.name, semanticScore, fuzzyScore, targetEntry.metadata?.properties);
550
550
  const rankingScore = this.computeRankingScore(match.hybridScore(), sourceEntry, targetEntry);
551
551
  rankedMatches.push({ match, score: rankingScore });
552
552
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hybridtm.js","sourceRoot":"","sources":["../ts/hybridtm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,OAAO,EAAE,OAAO,EAAqB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAA6B,QAAQ,EAAU,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAiB,oBAAoB,EAAoB,MAAM,oBAAoB,CAAC;AAE3F,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,OAAO,QAAQ;IAEjB,mBAAmB;IACnB,MAAM,CAAU,WAAW,GAAW,0BAA0B,CAAC,CAAW,mCAAmC;IAC/G,MAAM,CAAU,aAAa,GAAW,cAAc,CAAC,CAAqB,kCAAkC;IAC9G,MAAM,CAAU,cAAc,GAAW,8BAA8B,CAAC,CAAI,yCAAyC;IAE7G,IAAI,CAAS;IACb,EAAE,GAAsB,IAAI,CAAC;IAC7B,KAAK,GAAiB,IAAI,CAAC;IAC3B,MAAM,GAAW,EAAE,CAAC;IACpB,QAAQ,GAAqC,IAAI,CAAC;IAClD,SAAS,GAAW,EAAE,CAAC;IACvB,WAAW,GAAY,KAAK,CAAC;IAC7B,qBAAqB,GAAyB,IAAI,CAAC;IAE3D,YAAY,IAAY,EAAE,QAAgB,EAAE,YAAoB,QAAQ,CAAC,aAAa;QAClF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,+BAA+B;IAC/B,yBAAyB;IACzB,+BAA+B;IAEvB,KAAK,CAAC,qBAAqB;QAC/B,IAAI,CAAC;YACD,iCAAiC;YACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAC7E,CAAC;YAED,kCAAkC;YAClC,MAAM,UAAU,GAAW,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACnD,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,IAAI;aAClB,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3I,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU;QACpB,IAAI,CAAC;YACD,+CAA+C;YAC/C,MAAM,OAAO,CAAC,GAAG,CAAC;gBACd,IAAI,CAAC,kBAAkB,EAAE;gBACzB,IAAI,CAAC,kBAAkB,EAAE;aAC5B,CAAC,CAAC;QACP,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7G,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC5B,IAAI,CAAC;YACD,qBAAqB;YACrB,IAAI,CAAC,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAErC,0CAA0C;YAC1C,MAAM,UAAU,GAAa,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;YACxD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACpC,gCAAgC;gBAChC,MAAM,UAAU,GAAW,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAE9D,8CAA8C;gBAC9C,MAAM,MAAM,GAAW,IAAI,MAAM,CAAC;oBAC9B,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;oBAClC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;oBACxC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;oBACxC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;oBACvC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;oBACtC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;oBACxC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;oBACtC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,KAAK,EAAE,EAAE,KAAK,CAAC;oBAC7C,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,KAAK,EAAE,EAAE,KAAK,CAAC;oBAC7C,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBAC5C,KAAK,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBAC/C,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,KAAK,EAAE,EAAE,IAAI,CAAC;oBAC/C,KAAK,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBACnD,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBACjD,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBACjD,KAAK,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBAC/C,KAAK,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBACnD,KAAK,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBAC1D,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBAC9C,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBAC5C,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,KAAK,EAAE,EAAE,IAAI,CAAC;oBAClD,KAAK,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBACpD,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBACjD,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC;oBAC9C,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;iBACrG,CAAC,CAAC;gBAEH,+BAA+B;gBAC/B,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACtD,CAAC;QACL,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAClD,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC5B,IAAI,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,MAAM,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;YACnD,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAY;QACxC,IAAI,CAAC;YACD,iCAAiC;YACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACrD,CAAC;YAED,kDAAkD;YAClD,MAAM,MAAM,GAAW,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC7C,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,0BAA0B;YAC1B,MAAM,SAAS,GAAa,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpD,OAAO,SAAS,CAAC;QACrB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAClD,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC3B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,qBAAqB,CAAC;YACjC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/C,MAAM,IAAI,CAAC,qBAAqB,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,WAAW;QACrB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAEO,cAAc,CAAC,IAAe;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,EAAE,CAA4B,CAAC,CAAC,CAAC;IACjG,CAAC;IAEO,YAAY,CAAC,GAA4B;QAC7C,MAAM,QAAQ,GAAkB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAY,GAAG,CAAC,MAAM,CAAC;QACvC,MAAM,MAAM,GAAa,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YAC9C,CAAC,CAAC,UAAsB;YACxB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC5B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAyC,CAAC;gBACvD,CAAC,CAAC,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,IAAI,OAAQ,UAA0C,CAAC,OAAO,KAAK,UAAU;oBAChI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAG,UAAyC,CAAC,OAAO,EAAkC,CAAC;oBACnG,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,QAAQ,GAA4B,EAAE,GAAG,GAAG,EAAE,CAAC;QACrD,QAAQ,CAAC,EAAE,GAAG,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,QAAQ,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,QAAQ,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,QAAQ,CAAC,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,QAAQ,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,QAAQ,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,QAAQ,CAAC,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC9D,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC9D,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,OAAO,QAAqB,CAAC;IACjC,CAAC;IAEO,YAAY,CAAC,KAAgB;QACjC,MAAM,cAAc,GAA4B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrF,OAAO;YACH,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,cAAc;SACpB,CAAC;IACN,CAAC;IAEO,iBAAiB,CAAC,KAAgB;QACtC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;QACxB,CAAC;QACD,OAAO;YACH,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;SAC3B,CAAC;IACN,CAAC;IAEO,YAAY,CAAC,MAAc,EAAE,MAAc,EAAE,YAAoB,EAAE,IAAY;QACnF,OAAO,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC;IACnE,CAAC;IAEO,eAAe,CAAC,QAAmC;QACvD,MAAM,YAAY,GAAkB,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO;YACH,aAAa,EAAE,YAAY,CAAC,KAAK,IAAI,IAAI;YACzC,gBAAgB,EAAE,YAAY,CAAC,QAAQ,IAAI,IAAI;YAC/C,eAAe,EAAE,OAAO,YAAY,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YACvF,oBAAoB,EAAE,YAAY,CAAC,YAAY,IAAI,IAAI;YACvD,kBAAkB,EAAE,YAAY,CAAC,UAAU,IAAI,IAAI;YACnD,kBAAkB,EAAE,YAAY,CAAC,UAAU,IAAI,IAAI;YACnD,gBAAgB,EAAE,YAAY,CAAC,QAAQ,IAAI,IAAI;YAC/C,oBAAoB,EAAE,YAAY,CAAC,YAAY,IAAI,IAAI;YACvD,2BAA2B,EAAE,YAAY,CAAC,mBAAmB,IAAI,IAAI;YACrE,eAAe,EAAE,YAAY,CAAC,OAAO,IAAI,IAAI;YAC7C,aAAa,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;YAC7E,kBAAkB,EAAE,OAAO,YAAY,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;YAChG,qBAAqB,EAAE,YAAY,CAAC,aAAa,IAAI,IAAI;YACzD,kBAAkB,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;YAC5F,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;SACtF,CAAC;IACN,CAAC;IAEO,iBAAiB,CAAC,GAA4B;QAClD,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,CAAC,KAAc,EAAsB,EAAE;YAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,OAAO,SAAS,CAAC;QACrB,CAAC,CAAC;QACF,MAAM,GAAG,GAAG,CAAC,KAAc,EAAsB,EAAE;YAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;oBACxB,OAAO,MAAM,CAAC;gBAClB,CAAC;YACL,CAAC;YACD,OAAO,SAAS,CAAC;QACrB,CAAC,CAAC;QACF,MAAM,UAAU,GAAuB,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAa,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/E,IAAI,UAAU,IAAI,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACnD,QAAQ,CAAC,KAAK,GAAG,UAA8B,CAAC;QACpD,CAAC;QACD,MAAM,aAAa,GAAuB,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpE,IAAI,aAAa,EAAE,CAAC;YAChB,QAAQ,CAAC,QAAQ,GAAG,aAAa,CAAC;QACtC,CAAC;QACD,MAAM,YAAY,GAAuB,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAClE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC7B,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC;QACpC,CAAC;QACD,MAAM,iBAAiB,GAAuB,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC5E,IAAI,iBAAiB,EAAE,CAAC;YACpB,QAAQ,CAAC,YAAY,GAAG,iBAAiB,CAAC;QAC9C,CAAC;QACD,MAAM,eAAe,GAAuB,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACxE,IAAI,eAAe,EAAE,CAAC;YAClB,QAAQ,CAAC,UAAU,GAAG,eAAe,CAAC;QAC1C,CAAC;QACD,MAAM,eAAe,GAAuB,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACxE,IAAI,eAAe,EAAE,CAAC;YAClB,QAAQ,CAAC,UAAU,GAAG,eAAe,CAAC;QAC1C,CAAC;QACD,MAAM,aAAa,GAAuB,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpE,IAAI,aAAa,EAAE,CAAC;YAChB,QAAQ,CAAC,QAAQ,GAAG,aAAa,CAAC;QACtC,CAAC;QACD,MAAM,iBAAiB,GAAuB,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAC5E,IAAI,iBAAiB,EAAE,CAAC;YACpB,QAAQ,CAAC,YAAY,GAAG,iBAAiB,CAAC;QAC9C,CAAC;QACD,MAAM,wBAAwB,GAAuB,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC1F,IAAI,wBAAwB,EAAE,CAAC;YAC3B,QAAQ,CAAC,mBAAmB,GAAG,wBAAwB,CAAC;QAC5D,CAAC;QACD,MAAM,YAAY,GAAuB,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAClE,IAAI,YAAY,EAAE,CAAC;YACf,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC;QACpC,CAAC;QACD,MAAM,UAAU,GAAyB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5E,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC;QAChC,CAAC;QACD,MAAM,eAAe,GAAuB,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACxE,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAChC,QAAQ,CAAC,UAAU,GAAG,eAAe,CAAC;QAC1C,CAAC;QACD,MAAM,kBAAkB,GAAuB,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC9E,IAAI,kBAAkB,EAAE,CAAC;YACrB,QAAQ,CAAC,aAAa,GAAG,kBAAkB,CAAC;QAChD,CAAC;QACD,MAAM,UAAU,GAAuC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACpG,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnD,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;QACrC,CAAC;QACD,MAAM,OAAO,GAAgC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACpF,IAAI,OAAO,EAAE,CAAC;YACV,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/B,CAAC;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,UAAU,CAAC,KAAc;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,CAAC;YACD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAa,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;YACtF,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,YAAY,CAAC,KAAc;QAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,CAAC;YACD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACvC,OAAO,MAAyB,CAAC;YACrC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,eAAe,CAAC,KAAc;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,CAAC;YACD,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACvC,MAAM,MAAM,GAA2B,EAAE,CAAC;gBAC1C,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAoB,EAAE,EAAE;oBACxF,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;wBAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;oBACtB,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAClB,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,WAAW,CAAC,KAAc,EAAE,QAAgB;QAChD,MAAM,MAAM,GAAuB,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAChF,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC3E,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBACf,CAAC,CAAC,SAAS,CAAC;QACpB,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC;YACD,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACV,gDAAgD;YACpD,CAAC;QACL,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;IACL,CAAC;IAED,+BAA+B;IAC/B,iBAAiB;IACjB,+BAA+B;IAE/B,KAAK,CAAC,iBAAiB,CAAC,YAAoB,EAAE,QAAgB,EAAE,QAAgB,GAAG,EAAE,OAAwB;QACzG,yGAAyG;QACzG,IAAI,CAAC;YACD,MAAM,KAAK,GAAU,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAE9C,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7E,MAAM,eAAe,GAAW,aAAa,CAAC,YAAY,CAAC,CAAC;YAE5D,MAAM,aAAa,GAAW,aAAa,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,0BAA0B,GAAG,IAAI,GAAG,eAAe,GAAG,KAAK,CAAC;YACnI,MAAM,eAAe,GAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK;iBAC/D,KAAK,EAAE;iBACP,KAAK,CAAC,aAAa,CAAC;iBACpB,KAAK,CAAC,KAAK,CAAC;iBACZ,OAAO,EAAE,CAAC,CAAC;YAEhB,MAAM,eAAe,GAAgB,OAAO;gBACxC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,KAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAC7F,CAAC,CAAC,eAAe,CAAC;YAEtB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,EAAE,CAAC;YACd,CAAC;YAED,MAAM,kBAAkB,GAA2E,IAAI,GAAG,EAAE,CAAC;YAC7G,eAAe,CAAC,OAAO,CAAC,CAAC,KAAgB,EAAE,EAAE;gBACzC,MAAM,YAAY,GAAW,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7F,MAAM,aAAa,GAAW,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,CAAC;gBACrF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;oBACzC,kBAAkB,CAAC,GAAG,CAAC,aAAa,EAAE;wBAClC,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,YAAY;qBACf,CAAC,CAAC;gBACP,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAA8B,EAAE,CAAC;YAE7C,KAAK,MAAM,UAAU,IAAI,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnD,MAAM,aAAa,GAAW,UAAU,CAAC,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,YAAY,GAAG,GAAG,CAAC;gBAChH,MAAM,eAAe,GAAW,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC7D,MAAM,eAAe,GAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK;qBAC/D,KAAK,EAAE;qBACP,KAAK,CAAC,kBAAkB,GAAG,IAAI,GAAG,eAAe,GAAG,KAAK,CAAC;qBAC1D,OAAO,EAAE,CAAC,CAAC;gBAEhB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,SAAS;gBACb,CAAC;gBAED,MAAM,WAAW,GAA4B,IAAI,GAAG,EAAsB,CAAC;gBAC3E,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;oBACpC,IAAI,CAAC;wBACD,MAAM,UAAU,GAAe,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBACtE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAClD,CAAC;oBAAC,OAAO,QAAiB,EAAE,CAAC;wBACzB,MAAM,YAAY,GAAW,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAC7F,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,OAAO,CAAC,EAAE,GAAG,IAAI,GAAG,YAAY,CAAC,CAAC;oBAC5F,CAAC;gBACL,CAAC;gBAED,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACzB,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM;oBACV,CAAC;gBACL,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;YAC3D,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,QAAgB,EAAE,QAAgB,EAAE,EAAE,OAAwB;QAClG,IAAI,CAAC;YACD,MAAM,KAAK,GAAU,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,cAAc,GAAa,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACzE,MAAM,OAAO,GAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK;iBACvD,YAAY,CAAC,cAAc,CAAC;iBAC5B,KAAK,CAAC,aAAa,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;iBAC7C,KAAK,CAAC,KAAK,CAAC;iBACZ,OAAO,EAAE,CAAC,CAAC;YAChB,MAAM,QAAQ,GAAgB,OAAO;gBACjC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACrF,CAAC,CAAC,OAAO,CAAC;YACd,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;YACxD,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,SAAiB,EAAE,OAAe,EAAE,OAAe,EAAE,UAAkB,EAAE,QAAgB,GAAG,EAAE,OAAkC;QAC5J,IAAI,CAAC;YACD,MAAM,KAAK,GAAU,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAE9C,2CAA2C;YAC3C,MAAM,cAAc,GAAa,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEzE,0CAA0C;YAC1C,MAAM,aAAa,GAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK;iBAC7D,YAAY,CAAC,cAAc,CAAC;iBAC5B,KAAK,CAAC,aAAa,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;iBAC5C,OAAO,EAAE,CAAC,CAAC;YAChB,MAAM,aAAa,GAA4C,EAAE,CAAC;YAClE,MAAM,cAAc,GAA+B,OAAO,EAAE,MAAM,CAAC;YACnE,MAAM,cAAc,GAA+B,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,CAAC;YAEtF,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;oBAC/C,SAAS;gBACb,CAAC;gBAED,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC;oBAChF,SAAS;gBACb,CAAC;gBAED,kCAAkC;gBAClC,MAAM,WAAW,GAAY,WAAW,CAAC,SAAS,CAAC;gBACnD,MAAM,UAAU,GAAW,OAAO,WAAW,KAAK,QAAQ;oBACtD,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;wBAC7F,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;wBACrB,CAAC,CAAC,CAAC,CAAC;gBACZ,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC1E,MAAM,UAAU,GAAW,YAAY,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACpF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEjE,kEAAkE;gBAClE,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;oBAC5B,MAAM,WAAW,GAAqB,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;oBAC9G,IAAI,CAAC,WAAW,EAAE,CAAC;wBACf,SAAS;oBACb,CAAC;oBACD,IAAI,cAAc,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC;wBAChF,SAAS;oBACb,CAAC;oBACD,IAAI,CAAC;wBACD,MAAM,aAAa,GAAe,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBAC7E,MAAM,aAAa,GAAe,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBAC7E,MAAM,KAAK,GAAU,IAAI,KAAK,CAC1B,aAAa,EACb,aAAa,EACb,IAAI,CAAC,IAAI,EACT,aAAa,EACb,UAAU,CACb,CAAC;wBACF,MAAM,YAAY,GAAW,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;wBACrG,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;oBACvD,CAAC;oBAAC,OAAO,QAAiB,EAAE,CAAC;wBACzB,OAAO,CAAC,KAAK,CAAC,wDAAwD,GAAG,CAAC,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAChJ,CAAC;gBACL,CAAC;YACL,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAChD,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAC;YACrE,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,KAAY,EAAE,WAAsB,EAAE,OAAe,EAAE,OAAwB;QACzG,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAW,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACrH,MAAM,YAAY,GAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK;aAC5D,KAAK,EAAE;aACP,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;aAC3D,OAAO,EAAE,CAAC,CAAC;QAChB,MAAM,UAAU,GAA0B,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACzH,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,MAAM,UAAU,GAAW,WAAW,CAAC,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC;QAC/E,MAAM,eAAe,GAAW,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,aAAa,GAAW,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK;aAC3D,KAAK,EAAE;aACP,KAAK,CAAC,kBAAkB,GAAG,IAAI,GAAG,eAAe,GAAG,qBAAqB,GAAG,IAAI,GAAG,aAAa,GAAG,IAAI,CAAC;aACxG,KAAK,CAAC,EAAE,CAAC;aACT,OAAO,EAAE,CAAC,CAAC;QAEhB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,SAAS,GAA0B,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACvH,OAAO,SAAS,IAAI,IAAI,CAAC;IAC7B,CAAC;IAEO,mBAAmB,CAAC,SAAiB,EAAE,WAAsB,EAAE,WAAsB;QACzF,IAAI,KAAK,GAAW,SAAS,CAAC;QAE9B,IAAI,WAAW,CAAC,YAAY,GAAG,CAAC,IAAI,WAAW,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC/D,KAAK,IAAI,WAAW,CAAC,YAAY,KAAK,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,OAAO,GAAuB,WAAW,CAAC,QAAQ,IAAI,OAAO,WAAW,CAAC,QAAQ,CAAC,OAAO,KAAK,QAAQ;YACxG,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO;YAC9B,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAClD,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QACtD,CAAC;QAED,MAAM,gBAAgB,GAAuB,IAAI,CAAC,sBAAsB,CACpE,WAAW,CAAC,QAAQ,EAAE,UAAU,IAAI,WAAW,CAAC,QAAQ,EAAE,YAAY,CACzE,CAAC;QACF,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,OAAO,GAAW,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,GAAG,QAAQ,CAAC;YACnE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBAC3C,MAAM,UAAU,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;gBACzE,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,EAAE,KAAK,KAAK,OAAO,EAAE,CAAC;YAC1C,KAAK,IAAI,CAAC,CAAC;QACf,CAAC;aAAM,IAAI,WAAW,CAAC,QAAQ,EAAE,KAAK,KAAK,UAAU,EAAE,CAAC;YACpD,KAAK,IAAI,CAAC,CAAC;QACf,CAAC;aAAM,IAAI,WAAW,CAAC,QAAQ,EAAE,KAAK,KAAK,YAAY,EAAE,CAAC;YACtD,KAAK,IAAI,CAAC,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,sBAAsB,CAAC,KAAyB;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,MAAM,GAAW,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IACrD,CAAC;IAEO,wBAAwB,CAAC,OAAoB,EAAE,mBAA2B,EAAE,OAAwB;QACxG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,QAAQ,GAAgB,OAAO;YACjC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrF,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,KAAK,GAA0B,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,mBAAmB,CAAC,CAAC;YACrH,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QACD,MAAM,YAAY,GAA0B,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACxG,IAAI,YAAY,EAAE,CAAC;YACf,OAAO,YAAY,CAAC;QACxB,CAAC;QACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAEO,eAAe,CAAC,QAAmC,EAAE,MAAuB;QAChF,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7D,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,YAAY,GAAW,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,YAAY,KAAK,CAAC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1E,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;gBAC/E,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,YAAY,GAAW,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,MAAM,UAAU,GAAY,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC1H,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACtE,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAuB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;YAChE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,KAAmC;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,CAAC,CAAC;QACb,CAAC;QACD,QAAQ,KAAK,EAAE,CAAC;YACZ,KAAK,SAAS;gBACV,OAAO,CAAC,CAAC;YACb,KAAK,YAAY;gBACb,OAAO,CAAC,CAAC;YACb,KAAK,UAAU;gBACX,OAAO,CAAC,CAAC;YACb,KAAK,OAAO;gBACR,OAAO,CAAC,CAAC;YACb;gBACI,OAAO,CAAC,CAAC;QACjB,CAAC;IACL,CAAC;IAED,+BAA+B;IAC/B,0BAA0B;IAC1B,+BAA+B;IAE/B,KAAK,CAAC,cAAc,CAChB,MAAc,EACd,QAAgB,EAChB,MAAc,EACd,IAAY,EACZ,QAAgB,EAChB,OAAmB,EACnB,UAAqB,EACrB,eAAuB,CAAC,EACxB,eAAuB,CAAC,EACxB,QAAwB;QAExB,IAAI,CAAC;YACD,MAAM,KAAK,GAAU,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,eAAe,GAAW,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,eAAe,GAAW,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,gBAAgB,GAAW,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACrF,MAAM,gBAAgB,GAAW,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACzG,MAAM,OAAO,GAAW,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;YACpG,MAAM,eAAe,GAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK;iBAC/D,KAAK,EAAE;iBACP,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;iBACtC,OAAO,EAAE,CAAC,CAAC;YAEhB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,aAAa,GAAc,eAAe,CAAC,CAAC,CAAC,CAAC;gBACpD,MAAM,cAAc,GAAY,CAC5B,aAAa,CAAC,QAAQ,KAAK,QAAQ;oBACnC,aAAa,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,EAAE;oBAC5C,aAAa,CAAC,QAAQ,KAAK,QAAQ,CACtC,CAAC;gBAEF,IAAI,CAAC,cAAc,EAAE,CAAC;oBAClB,OAAO;gBACX,CAAC;YACL,CAAC;YAED,sCAAsC;YACtC,IAAI,gBAA0B,CAAC;YAC/B,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,gBAAgB,GAAG,UAAU,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACJ,gBAAgB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,KAAK,GAAc;gBACrB,EAAE,EAAE,OAAO;gBACX,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE;gBAC3B,MAAM,EAAE,eAAe;gBACvB,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,eAAe;gBACvB,MAAM,EAAE,gBAAgB;gBACxB,YAAY,EAAE,gBAAgB;gBAC9B,YAAY,EAAE,gBAAgB;gBAC9B,QAAQ,EAAE,QAAQ,IAAI,EAAE;aAC3B,CAAC;YAEF,wDAAwD;YACxD,IAAI,CAAC;gBACD,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,SAAkB,EAAE,CAAC;gBAC1B,uCAAuC;YAC3C,CAAC;YAED,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;YACpD,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAuB;QAC3C,IAAI,CAAC;YACD,MAAM,KAAK,GAAU,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,WAAW,GAAgB,EAAE,CAAC;YAEpC,0CAA0C;YAC1C,MAAM,QAAQ,GAAa,EAAE,CAAC;YAE9B,6DAA6D;YAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,eAAe,GAAW,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClE,MAAM,eAAe,GAAW,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClE,MAAM,gBAAgB,GAAa,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAChF,MAAM,gBAAgB,GAAW,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjG,MAAM,gBAAgB,GAAW,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3H,MAAM,OAAO,GAAW,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAE9G,MAAM,SAAS,GAAc;oBACzB,EAAE,EAAE,OAAO;oBACX,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;oBACjC,MAAM,EAAE,eAAe;oBACvB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,eAAe;oBACvB,MAAM,EAAE,gBAAgB;oBACxB,YAAY,EAAE,gBAAgB;oBAC9B,YAAY,EAAE,gBAAgB;oBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;iBACjC,CAAC;gBAEF,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YAED,mEAAmE;YACnE,gFAAgF;YAChF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,SAAS,GAAW,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzE,IAAI,CAAC;oBACD,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,SAAkB,EAAE,CAAC;oBAC1B,0DAA0D;gBAC9D,CAAC;YACL,CAAC;YAED,kCAAkC;YAClC,MAAM,gBAAgB,GAA8B,WAAW,CAAC,GAAG,CAAC,CAAC,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YAClH,MAAM,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;YACnD,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,MAAc,EAAE,IAAY,EAAE,eAAuB,CAAC;QACpF,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,eAAe,GAAW,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,eAAe,GAAW,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAW,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YAChG,MAAM,eAAe,GAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,KAAK;iBACpE,KAAK,EAAE;iBACP,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;iBACtC,OAAO,EAAE,CAAC,CAAC;YAEhB,OAAO,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,MAAc,EAAE,IAAY,EAAE,eAAuB,CAAC;QACrF,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,eAAe,GAAW,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,eAAe,GAAW,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAW,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YAChG,MAAM,eAAe,GAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,KAAK;iBACpE,KAAK,EAAE;iBACP,KAAK,CAAC,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;iBACtC,OAAO,EAAE,CAAC,CAAC;YAEhB,OAAO,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClE,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,MAAc,EAAE,IAAY,EAAE,eAAuB,CAAC;QACxF,IAAI,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,eAAe,GAAW,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,eAAe,GAAW,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAW,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YAEhG,8BAA8B;YAC9B,MAAM,MAAM,GAAY,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YACnF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,mBAAmB;YACnB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,+BAA+B;IAC/B,sBAAsB;IACtB,+BAA+B;IAE/B,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,OAAuB;QACvD,yDAAyD;QACzD,MAAM,eAAe,GAAkB,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,MAAM,GAAgB,IAAI,WAAW,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACvE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,uDAAuD;QACvD,MAAM,QAAQ,GAAkB,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAC1G,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,OAAuB;QACrD,uDAAuD;QACvD,MAAM,eAAe,GAAkB,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,MAAM,GAAc,IAAI,SAAS,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACnE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,uDAAuD;QACvD,MAAM,QAAQ,GAAkB,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAC1G,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,OAAuB;QACvD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAClG,MAAM,YAAY,GAAW,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACzD,MAAM,WAAW,GAAQ,MAAM,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACrF,MAAM,WAAW,GAAW,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC;QAC5D,MAAM,OAAO,GAAW,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;QACpD,MAAM,QAAQ,GAAa,IAAI,QAAQ,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5F,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,QAAQ,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC5C,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7B,CAAC"}
1
+ {"version":3,"file":"hybridtm.js","sourceRoot":"","sources":["../ts/hybridtm.ts"],"names":[],"mappings":"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"}
package/dist/match.d.ts CHANGED
@@ -10,13 +10,18 @@
10
10
  * Maxprograms - initial API and implementation
11
11
  *******************************************************************************/
12
12
  import { XMLElement } from "typesxml";
13
- export declare class Match {
13
+ import type { Match as SharedMatch, MatchType } from "typesmatch";
14
+ export declare class Match implements SharedMatch {
15
+ id: string;
14
16
  source: XMLElement;
15
17
  target: XMLElement;
16
18
  origin: string;
19
+ type: MatchType;
20
+ similarity: number;
21
+ properties: Record<string, string>;
17
22
  semantic: number;
18
23
  fuzzy: number;
19
- constructor(source: XMLElement, target: XMLElement, origin: string, semantic: number, fuzzy: number);
24
+ constructor(id: string, source: XMLElement, target: XMLElement, origin: string, semantic: number, fuzzy: number, properties?: Record<string, string>);
20
25
  toJSON(): any;
21
26
  hybridScore(): number;
22
27
  }
package/dist/match.js CHANGED
@@ -10,29 +10,41 @@
10
10
  * Maxprograms - initial API and implementation
11
11
  *******************************************************************************/
12
12
  export class Match {
13
+ id;
13
14
  source;
14
15
  target;
15
16
  origin;
17
+ type;
18
+ similarity;
19
+ properties;
16
20
  semantic;
17
21
  fuzzy;
18
- constructor(source, target, origin, semantic, fuzzy) {
22
+ constructor(id, source, target, origin, semantic, fuzzy, properties) {
23
+ this.id = id;
19
24
  this.source = source;
20
25
  this.target = target;
21
26
  this.origin = origin;
27
+ this.type = 'tm';
22
28
  this.semantic = semantic;
23
29
  this.fuzzy = fuzzy;
30
+ this.similarity = Math.round((semantic + fuzzy) / 2);
31
+ this.properties = properties === undefined ? {} : properties;
24
32
  }
25
33
  toJSON() {
26
34
  return {
35
+ id: this.id,
27
36
  source: this.source.toString(),
28
37
  target: this.target.toString(),
29
38
  origin: this.origin,
39
+ type: this.type,
40
+ similarity: this.similarity,
41
+ properties: this.properties,
30
42
  semantic: this.semantic,
31
43
  fuzzy: this.fuzzy
32
44
  };
33
45
  }
34
46
  hybridScore() {
35
- return Math.round((this.semantic + this.fuzzy) / 2);
47
+ return this.similarity;
36
48
  }
37
49
  }
38
50
  //# sourceMappingURL=match.js.map
package/dist/match.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"match.js","sourceRoot":"","sources":["../ts/match.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAIjF,MAAM,OAAO,KAAK;IAEd,MAAM,CAAa;IACnB,MAAM,CAAa;IACnB,MAAM,CAAS;IACf,QAAQ,CAAS;IACjB,KAAK,CAAS;IAEd,YAAY,MAAkB,EAAE,MAAkB,EAAE,MAAc,EAAE,QAAgB,EAAE,KAAY;QAC9F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,MAAM;QACF,OAAO;YACH,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAA;IACL,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;CAEJ"}
1
+ {"version":3,"file":"match.js","sourceRoot":"","sources":["../ts/match.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAKjF,MAAM,OAAO,KAAK;IAEd,EAAE,CAAS;IACX,MAAM,CAAa;IACnB,MAAM,CAAa;IACnB,MAAM,CAAS;IACf,IAAI,CAAY;IAChB,UAAU,CAAS;IACnB,UAAU,CAAyB;IACnC,QAAQ,CAAS;IACjB,KAAK,CAAS;IAEd,YAAY,EAAU,EAAE,MAAkB,EAAE,MAAkB,EAAE,MAAc,EAAE,QAAgB,EAAE,KAAa,EAC3G,UAAmC;QACnC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;IACjE,CAAC;IAED,MAAM;QACF,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAA;IACL,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CAEJ"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "hybridtm",
3
3
  "productName": "HybridTM",
4
- "version": "0.4.0",
4
+ "version": "0.6.0",
5
5
  "description": "HybridTM is a Translation Memory (TM) engine that combines semantic embeddings with fuzzy string matching.",
6
6
  "main": "dist/index.js",
7
7
  "type": "module",
@@ -10,7 +10,8 @@
10
10
  "/dist"
11
11
  ],
12
12
  "scripts": {
13
- "build": "tsc"
13
+ "clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
14
+ "build": "npm run clean && tsc"
14
15
  },
15
16
  "author": {
16
17
  "name": "Rodolfo M. Raya",
@@ -27,12 +28,17 @@
27
28
  "@lancedb/lancedb": "^0.27.2",
28
29
  "@xenova/transformers": "^2.17.2",
29
30
  "apache-arrow": "^18.1.0",
30
- "sdltm": "^2.2.0",
31
- "typesbcp47": "^1.21.0",
32
- "typesxml": "^2.0.0"
31
+ "sdltm": "^2.5.0",
32
+ "typesbcp47": "^1.24.0",
33
+ "typesmatch": "^0.1.0",
34
+ "typesxml": "^2.2.0"
33
35
  },
34
36
  "devDependencies": {
35
- "@types/node": "^24.12.2",
36
- "typescript": "^6.0.2"
37
+ "@types/node": "^24.13.2",
38
+ "typescript": "^6.0.3"
39
+ },
40
+ "allowScripts": {
41
+ "protobufjs@6.11.6": true,
42
+ "sharp@0.32.6": true
37
43
  }
38
44
  }
@@ -1,22 +0,0 @@
1
- /*******************************************************************************
2
- * Copyright (c) 2025-2026 Maxprograms.
3
- *
4
- * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
6
- * which accompanies this distribution, and is available at
7
- * https://www.eclipse.org/org/documents/epl-v10.html
8
- *
9
- * Contributors:
10
- * Maxprograms - initial API and implementation
11
- *******************************************************************************/
12
- import { HybridTM } from './hybridtm.js';
13
- export declare class BatchImporter {
14
- private tm;
15
- private tempFilePath;
16
- private batchSize;
17
- private totalEntries;
18
- constructor(tm: HybridTM, tempFilePath: string, totalEntries?: number, batchSize?: number);
19
- import(): Promise<void>;
20
- private parseMetadata;
21
- private cleanup;
22
- }
@@ -1,203 +0,0 @@
1
- /*******************************************************************************
2
- * Copyright (c) 2025-2026 Maxprograms.
3
- *
4
- * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
6
- * which accompanies this distribution, and is available at
7
- * https://www.eclipse.org/org/documents/epl-v10.html
8
- *
9
- * Contributors:
10
- * Maxprograms - initial API and implementation
11
- *******************************************************************************/
12
- import { createReadStream, existsSync, unlinkSync } from "node:fs";
13
- import { createInterface } from 'node:readline';
14
- import { Utils } from './utils.js';
15
- export class BatchImporter {
16
- tm;
17
- tempFilePath;
18
- batchSize;
19
- totalEntries;
20
- constructor(tm, tempFilePath, totalEntries = 0, batchSize = 1000) {
21
- this.tm = tm;
22
- this.tempFilePath = tempFilePath;
23
- this.totalEntries = totalEntries;
24
- this.batchSize = batchSize;
25
- }
26
- async import() {
27
- try {
28
- console.log('Starting batch import from ' + this.tempFilePath + '...');
29
- if (this.totalEntries > 0) {
30
- console.log('Total entries to import: ' + this.totalEntries.toLocaleString());
31
- }
32
- const fileStream = createReadStream(this.tempFilePath, { encoding: 'utf8' });
33
- const rl = createInterface({
34
- input: fileStream,
35
- crlfDelay: Infinity
36
- });
37
- let batch = [];
38
- let totalProcessed = 0;
39
- let batchCount = 0;
40
- const startTime = Date.now();
41
- for await (const line of rl) {
42
- if (!line.trim()) {
43
- continue; // Skip empty lines
44
- }
45
- try {
46
- const jsonEntry = JSON.parse(line);
47
- const segmentIndex = typeof jsonEntry.segmentIndex === 'number' ? jsonEntry.segmentIndex : 0;
48
- const segmentCount = typeof jsonEntry.segmentCount === 'number' ? jsonEntry.segmentCount : 1;
49
- const metadata = this.parseMetadata(jsonEntry.metadata);
50
- // Convert JSON entry to PendingEntry
51
- const entry = {
52
- language: jsonEntry.language,
53
- fileId: jsonEntry.fileId,
54
- original: jsonEntry.original,
55
- unitId: jsonEntry.unitId,
56
- pureText: jsonEntry.pureText,
57
- element: Utils.buildXMLElement(jsonEntry.element),
58
- segmentIndex,
59
- segmentCount,
60
- metadata
61
- };
62
- batch.push(entry);
63
- // Process batch when it reaches the batch size
64
- if (batch.length >= this.batchSize) {
65
- batchCount++;
66
- await this.tm.storeBatchEntries(batch);
67
- totalProcessed += batch.length;
68
- // Calculate progress and ETA
69
- const elapsed = Date.now() - startTime;
70
- const rate = totalProcessed / (elapsed / 1000); // entries per second
71
- if (this.totalEntries > 0) {
72
- const progress = (totalProcessed / this.totalEntries) * 100;
73
- const remaining = this.totalEntries - totalProcessed;
74
- const etaSeconds = remaining / rate;
75
- const etaMinutes = Math.floor(etaSeconds / 60);
76
- const etaSecondsRemainder = Math.floor(etaSeconds % 60);
77
- console.log('Progress: ' + totalProcessed.toLocaleString() + '/' + this.totalEntries.toLocaleString() + ' (' + progress.toFixed(1) + '%) - ETA: ' + etaMinutes + 'm ' + etaSecondsRemainder + 's - ' + rate.toFixed(1) + ' entries/sec');
78
- }
79
- else {
80
- console.log('Processed: ' + totalProcessed.toLocaleString() + ' entries - ' + rate.toFixed(1) + ' entries/sec');
81
- }
82
- batch = [];
83
- }
84
- }
85
- catch (parseErr) {
86
- console.error('Error parsing JSONL line: ' + parseErr);
87
- // Continue with next line
88
- }
89
- }
90
- // Process any remaining entries in the final batch
91
- if (batch.length > 0) {
92
- batchCount++;
93
- await this.tm.storeBatchEntries(batch);
94
- totalProcessed += batch.length;
95
- }
96
- const totalTime = (Date.now() - startTime) / 1000;
97
- const minutes = Math.floor(totalTime / 60);
98
- const seconds = Math.floor(totalTime % 60);
99
- const avgRate = totalProcessed / totalTime;
100
- console.log('\nBatch import complete!');
101
- console.log('Total entries imported: ' + totalProcessed.toLocaleString());
102
- console.log('Total time: ' + minutes + 'm ' + seconds + 's');
103
- console.log('Average rate: ' + avgRate.toFixed(1) + ' entries/sec');
104
- // Clean up the temporary file
105
- await this.cleanup();
106
- }
107
- catch (err) {
108
- console.error('Error during batch import:', err);
109
- throw err;
110
- }
111
- }
112
- parseMetadata(metadata) {
113
- if (!metadata || typeof metadata !== 'object') {
114
- return {};
115
- }
116
- const result = {};
117
- const source = metadata;
118
- const copyString = (key) => {
119
- const value = source[key];
120
- if (typeof value === 'string' && value.length > 0) {
121
- result[key] = value;
122
- }
123
- };
124
- const copyNumber = (key) => {
125
- const value = source[key];
126
- if (typeof value === 'number' && !Number.isNaN(value)) {
127
- result[key] = value;
128
- }
129
- };
130
- copyString('state');
131
- copyString('subState');
132
- copyNumber('quality');
133
- copyString('creationDate');
134
- copyString('creationId');
135
- copyString('changeDate');
136
- copyString('changeId');
137
- copyString('creationTool');
138
- copyString('creationToolVersion');
139
- copyString('context');
140
- copyNumber('usageCount');
141
- copyString('lastUsageDate');
142
- const notes = source.notes;
143
- if (Array.isArray(notes)) {
144
- const filtered = notes.filter((item) => typeof item === 'string' && item.length > 0);
145
- if (filtered.length > 0) {
146
- result.notes = filtered;
147
- }
148
- }
149
- const properties = source.properties;
150
- if (properties && typeof properties === 'object') {
151
- const props = {};
152
- Object.entries(properties).forEach(([key, value]) => {
153
- if (typeof value === 'string') {
154
- props[key] = value;
155
- }
156
- });
157
- if (Object.keys(props).length > 0) {
158
- result.properties = props;
159
- }
160
- }
161
- const segment = source.segment;
162
- if (segment && typeof segment === 'object') {
163
- const segmentSource = segment;
164
- const segmentMetadata = {};
165
- const copySegmentString = (key) => {
166
- const value = segmentSource[key];
167
- if (typeof value === 'string' && value.length > 0) {
168
- segmentMetadata[key] = value;
169
- }
170
- };
171
- const copySegmentNumber = (key) => {
172
- const value = segmentSource[key];
173
- if (typeof value === 'number' && !Number.isNaN(value)) {
174
- segmentMetadata[key] = value;
175
- }
176
- };
177
- copySegmentString('provider');
178
- copySegmentString('fileHash');
179
- copySegmentString('fileId');
180
- copySegmentString('unitId');
181
- copySegmentString('segmentId');
182
- copySegmentString('segmentKey');
183
- copySegmentNumber('segmentIndex');
184
- copySegmentNumber('segmentCount');
185
- if (Object.keys(segmentMetadata).length > 0) {
186
- result.segment = segmentMetadata;
187
- }
188
- }
189
- return Object.keys(result).length > 0 ? result : {};
190
- }
191
- async cleanup() {
192
- try {
193
- if (existsSync(this.tempFilePath)) {
194
- unlinkSync(this.tempFilePath);
195
- }
196
- }
197
- catch (err) {
198
- console.error('Error cleaning up temporary file ' + this.tempFilePath + ':', err);
199
- // Don't throw - cleanup failure shouldn't fail the import
200
- }
201
- }
202
- }
203
- //# sourceMappingURL=batchImporter.js.map
@@ -1,15 +0,0 @@
1
- /*******************************************************************************
2
- * Copyright (c) 2025-2026 Maxprograms.
3
- *
4
- * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
6
- * which accompanies this distribution, and is available at
7
- * https://www.eclipse.org/org/documents/epl-v10.html
8
- *
9
- * Contributors:
10
- * Maxprograms - initial API and implementation
11
- *******************************************************************************/
12
- export declare class Constants {
13
- static readonly VERSION: string;
14
- static readonly BUILD: string;
15
- }
package/dist/constants.js DELETED
@@ -1,16 +0,0 @@
1
- /*******************************************************************************
2
- * Copyright (c) 2025-2026 Maxprograms.
3
- *
4
- * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse License 1.0
6
- * which accompanies this distribution, and is available at
7
- * https://www.eclipse.org/org/documents/epl-v10.html
8
- *
9
- * Contributors:
10
- * Maxprograms - initial API and implementation
11
- *******************************************************************************/
12
- export class Constants {
13
- static VERSION = "1.0.0";
14
- static BUILD = "20260104_0539";
15
- }
16
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../ts/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;iFAUiF;AAEjF,MAAM,OAAO,SAAS;IACX,MAAM,CAAU,OAAO,GAAW,OAAO,CAAC;IAC1C,MAAM,CAAU,KAAK,GAAW,eAAe,CAAC"}
@@ -1,12 +0,0 @@
1
- /*******************************************************************************
2
- * Copyright (c) 2025 Maxprograms.
3
- *
4
- * This program and the accompanying materials
5
- * are made available under the terms of the Eclipse Public License 1.0
6
- * which accompanies this distribution, and is available at
7
- * https://www.eclipse.org/org/documents/epl-v10.html
8
- *
9
- * Contributors:
10
- * Maxprograms - initial API and implementation
11
- *******************************************************************************/
12
- export {};
@@ -1,49 +0,0 @@
1
- "use strict";
2
- /*******************************************************************************
3
- * Copyright (c) 2025 Maxprograms.
4
- *
5
- * This program and the accompanying materials
6
- * are made available under the terms of the Eclipse Public License 1.0
7
- * which accompanies this distribution, and is available at
8
- * https://www.eclipse.org/org/documents/epl-v10.html
9
- *
10
- * Contributors:
11
- * Maxprograms - initial API and implementation
12
- *******************************************************************************/
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- const hybridtm_1 = require("./hybridtm");
15
- async function debugProgress() {
16
- console.log('Debugging progress tracking during actual TMX import...\n');
17
- const tm = new hybridtm_1.HybridTM('/tmp/debug-progress.lancedb', hybridtm_1.HybridTM.SPEED_MODEL);
18
- // Start progress monitoring with debugging
19
- let pollCount = 0;
20
- const progressInterval = setInterval(() => {
21
- const progress = tm.getImportProgress();
22
- pollCount++;
23
- console.log(`Poll ${pollCount}: processed=${progress.entriesProcessed}, pending=${progress.entriesPending}, importing=${progress.isImporting}, fileName='${progress.fileName}'`);
24
- if (!progress.isImporting && pollCount > 5) {
25
- console.log('Import appears to have finished');
26
- clearInterval(progressInterval);
27
- }
28
- }, 1000); // Check every 1 second for debugging
29
- try {
30
- console.log('Starting TMX import...');
31
- await tm.importTMX('/Users/rmraya/Desktop/Norden/NordenTM_2023_rev2.tmx');
32
- console.log('TMX import completed');
33
- }
34
- catch (error) {
35
- console.error('Import failed:', error);
36
- }
37
- finally {
38
- clearInterval(progressInterval);
39
- }
40
- const finalProgress = tm.getImportProgress();
41
- console.log(`Final: processed=${finalProgress.entriesProcessed}, pending=${finalProgress.entriesPending}`);
42
- await tm.close();
43
- console.log('✓ Progress debug completed');
44
- }
45
- debugProgress().catch(error => {
46
- console.error('Debug failed:', error);
47
- process.exit(1);
48
- });
49
- //# sourceMappingURL=debug-progress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-progress.js","sourceRoot":"","sources":["../ts/debug-progress.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;iFAUiF;;AAEjF,yCAAsC;AAEtC,KAAK,UAAU,aAAa;IACxB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAEzE,MAAM,EAAE,GAAG,IAAI,mBAAQ,CAAC,6BAA6B,EAAE,mBAAQ,CAAC,WAAW,CAAC,CAAC;IAE7E,2CAA2C;IAC3C,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,MAAM,QAAQ,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACxC,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,SAAS,eAAe,QAAQ,CAAC,gBAAgB,aAAa,QAAQ,CAAC,cAAc,eAAe,QAAQ,CAAC,WAAW,eAAe,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;QAEjL,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;IACL,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,qCAAqC;IAE/C,IAAI,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,MAAM,EAAE,CAAC,SAAS,CAAC,qDAAqD,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;YAAS,CAAC;QACP,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,aAAa,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,oBAAoB,aAAa,CAAC,gBAAgB,aAAa,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;IAE3G,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAC9C,CAAC;AAED,aAAa,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IAC1B,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}