@zzzen/pyright-internal 1.2.0-dev.20230903 → 1.2.0-dev.20230917

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 (139) hide show
  1. package/dist/analyzer/binder.d.ts +1 -0
  2. package/dist/analyzer/binder.js +8 -4
  3. package/dist/analyzer/binder.js.map +1 -1
  4. package/dist/analyzer/checker.js +81 -43
  5. package/dist/analyzer/checker.js.map +1 -1
  6. package/dist/analyzer/constraintSolver.js +6 -0
  7. package/dist/analyzer/constraintSolver.js.map +1 -1
  8. package/dist/analyzer/constructors.js +16 -7
  9. package/dist/analyzer/constructors.js.map +1 -1
  10. package/dist/analyzer/dataClasses.js +1 -1
  11. package/dist/analyzer/dataClasses.js.map +1 -1
  12. package/dist/analyzer/declarationUtils.js +14 -2
  13. package/dist/analyzer/declarationUtils.js.map +1 -1
  14. package/dist/analyzer/decorators.js +25 -3
  15. package/dist/analyzer/decorators.js.map +1 -1
  16. package/dist/analyzer/importResolver.js +4 -7
  17. package/dist/analyzer/importResolver.js.map +1 -1
  18. package/dist/analyzer/namedTuples.js +2 -2
  19. package/dist/analyzer/namedTuples.js.map +1 -1
  20. package/dist/analyzer/parameterUtils.d.ts +2 -0
  21. package/dist/analyzer/parameterUtils.js +53 -1
  22. package/dist/analyzer/parameterUtils.js.map +1 -1
  23. package/dist/analyzer/parentDirectoryCache.js +1 -1
  24. package/dist/analyzer/parentDirectoryCache.js.map +1 -1
  25. package/dist/analyzer/parseTreeUtils.d.ts +1 -0
  26. package/dist/analyzer/parseTreeUtils.js +16 -2
  27. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  28. package/dist/analyzer/patternMatching.js +39 -22
  29. package/dist/analyzer/patternMatching.js.map +1 -1
  30. package/dist/analyzer/program.d.ts +2 -2
  31. package/dist/analyzer/program.js +30 -24
  32. package/dist/analyzer/program.js.map +1 -1
  33. package/dist/analyzer/pythonPathUtils.js +10 -8
  34. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  35. package/dist/analyzer/service.js +14 -12
  36. package/dist/analyzer/service.js.map +1 -1
  37. package/dist/analyzer/typeDocStringUtils.js +1 -1
  38. package/dist/analyzer/typeEvaluator.js +223 -163
  39. package/dist/analyzer/typeEvaluator.js.map +1 -1
  40. package/dist/analyzer/typeEvaluatorTypes.d.ts +12 -10
  41. package/dist/analyzer/typeEvaluatorTypes.js +11 -8
  42. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  43. package/dist/analyzer/typeGuards.d.ts +9 -0
  44. package/dist/analyzer/typeGuards.js +60 -7
  45. package/dist/analyzer/typeGuards.js.map +1 -1
  46. package/dist/analyzer/typePrinter.js +3 -2
  47. package/dist/analyzer/typePrinter.js.map +1 -1
  48. package/dist/analyzer/typeUtils.d.ts +6 -4
  49. package/dist/analyzer/typeUtils.js +98 -58
  50. package/dist/analyzer/typeUtils.js.map +1 -1
  51. package/dist/analyzer/typedDicts.js +5 -5
  52. package/dist/analyzer/typedDicts.js.map +1 -1
  53. package/dist/analyzer/types.d.ts +1 -0
  54. package/dist/analyzer/types.js +11 -0
  55. package/dist/analyzer/types.js.map +1 -1
  56. package/dist/common/configOptions.js +2 -2
  57. package/dist/common/configOptions.js.map +1 -1
  58. package/dist/common/extensibility.d.ts +6 -0
  59. package/dist/common/extensibility.js.map +1 -1
  60. package/dist/common/pathUtils.d.ts +2 -15
  61. package/dist/common/pathUtils.js +9 -84
  62. package/dist/common/pathUtils.js.map +1 -1
  63. package/dist/common/realFileSystem.js +26 -12
  64. package/dist/common/realFileSystem.js.map +1 -1
  65. package/dist/languageServerBase.d.ts +1 -1
  66. package/dist/languageServerBase.js +2 -2
  67. package/dist/languageServerBase.js.map +1 -1
  68. package/dist/languageService/completionProvider.d.ts +3 -2
  69. package/dist/languageService/completionProvider.js +12 -6
  70. package/dist/languageService/completionProvider.js.map +1 -1
  71. package/dist/localization/localize.d.ts +17 -4
  72. package/dist/localization/localize.js +10 -2
  73. package/dist/localization/localize.js.map +1 -1
  74. package/dist/localization/package.nls.cs.json +8 -4
  75. package/dist/localization/package.nls.de.json +8 -4
  76. package/dist/localization/package.nls.en-us.json +12 -5
  77. package/dist/localization/package.nls.es.json +8 -4
  78. package/dist/localization/package.nls.fr.json +8 -4
  79. package/dist/localization/package.nls.it.json +8 -4
  80. package/dist/localization/package.nls.ja.json +8 -4
  81. package/dist/localization/package.nls.ko.json +8 -4
  82. package/dist/localization/package.nls.pl.json +8 -4
  83. package/dist/localization/package.nls.pt-br.json +8 -4
  84. package/dist/localization/package.nls.qps-ploc.json +8 -4
  85. package/dist/localization/package.nls.ru.json +8 -4
  86. package/dist/localization/package.nls.tr.json +8 -4
  87. package/dist/localization/package.nls.zh-cn.json +8 -4
  88. package/dist/localization/package.nls.zh-tw.json +8 -4
  89. package/dist/server.js +2 -1
  90. package/dist/server.js.map +1 -1
  91. package/dist/tests/checker.test.js +2 -2
  92. package/dist/tests/checker.test.js.map +1 -1
  93. package/dist/tests/completions.test.js +27 -0
  94. package/dist/tests/completions.test.js.map +1 -1
  95. package/dist/tests/config.test.js +5 -5
  96. package/dist/tests/config.test.js.map +1 -1
  97. package/dist/tests/fourslash/completions.dictionary.keys.complex.fourslash.js +5 -5
  98. package/dist/tests/fourslash/completions.dictionary.keys.complex.fourslash.js.map +1 -1
  99. package/dist/tests/fourslash/completions.dictionary.keys.expression.fourslash.js +11 -9
  100. package/dist/tests/fourslash/completions.dictionary.keys.expression.fourslash.js.map +1 -1
  101. package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js +14 -14
  102. package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js.map +1 -1
  103. package/dist/tests/fourslash/completions.dictionary.keys.simple.fourslash.js +12 -12
  104. package/dist/tests/fourslash/completions.dictionary.keys.simple.fourslash.js.map +1 -1
  105. package/dist/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.js +9 -9
  106. package/dist/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.js.map +1 -1
  107. package/dist/tests/fourslash/completions.dictionary.keys.symbols.fourslash.js +3 -3
  108. package/dist/tests/fourslash/completions.dictionary.keys.symbols.fourslash.js.map +1 -1
  109. package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js +3 -3
  110. package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js.map +1 -1
  111. package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js +4 -4
  112. package/dist/tests/fourslash/completions.indexer.keys.getitem.fourslash.js.map +1 -1
  113. package/dist/tests/fourslash/diagnostics.missingModuleSource.fourslash.js +8 -8
  114. package/dist/tests/fourslash/diagnostics.missingModuleSource.fourslash.js.map +1 -1
  115. package/dist/tests/fourslash/fourslash.d.ts +1 -0
  116. package/dist/tests/fourslash/importnotresolved.fourslash.js +2 -2
  117. package/dist/tests/fourslash/importnotresolved.fourslash.js.map +1 -1
  118. package/dist/tests/fourslash/missingModuleSource.fourslash.js +1 -1
  119. package/dist/tests/fourslash/missingModuleSource.fourslash.js.map +1 -1
  120. package/dist/tests/harness/fourslash/testState.Consts.d.ts +1 -0
  121. package/dist/tests/harness/fourslash/testState.Consts.js +2 -0
  122. package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
  123. package/dist/tests/harness/fourslash/testState.js +4 -1
  124. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  125. package/dist/tests/harness/vfs/filesystem.js +10 -6
  126. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  127. package/dist/tests/pathUtils.test.js +13 -21
  128. package/dist/tests/pathUtils.test.js.map +1 -1
  129. package/dist/tests/testState.test.js +1 -1
  130. package/dist/tests/testState.test.js.map +1 -1
  131. package/dist/tests/typeEvaluator2.test.js +1 -1
  132. package/dist/tests/typeEvaluator3.test.js +6 -2
  133. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  134. package/dist/tests/typeEvaluator4.test.js +8 -4
  135. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  136. package/dist/tests/typeEvaluator5.test.js +1 -1
  137. package/dist/workspaceFactory.js +8 -14
  138. package/dist/workspaceFactory.js.map +1 -1
  139. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"typePrinter.js","sourceRoot":"","sources":["../../../src/analyzer/typePrinter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typePrinter.js","sourceRoot":"","sources":["../../../src/analyzer/typePrinter.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;;;;;;AAEH,+DAAwD;AAExD,qDAAiD;AACjD,iEAAmD;AACnD,mCAwBiB;AACjB,2CAAgF;AAEhF,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC,IAAkB,cA6CjB;AA7CD,WAAkB,cAAc;IAC5B,mDAAQ,CAAA;IAER,yDAAyD;IACzD,iFAA4B,CAAA;IAE5B,iEAAiE;IACjE,+FAAmC,CAAA;IAEnC,yDAAyD;IACzD,2FAAiC,CAAA;IAEjC,8CAA8C;IAC9C,uDAAe,CAAA;IAEf,4DAA4D;IAC5D,eAAe;IACf,8EAA0B,CAAA;IAE1B,yDAAyD;IACzD,0EAAwB,CAAA;IAExB,6DAA6D;IAC7D,kCAAkC;IAClC,8FAAkC,CAAA;IAElC,2CAA2C;IAC3C,qFAA6B,CAAA;IAE7B,uCAAuC;IACvC,qEAAqB,CAAA;IAErB,mEAAmE;IACnE,iCAAiC;IACjC,2EAAwB,CAAA;IAExB,mFAAmF;IACnF,oFAA6B,CAAA;IAE7B,0CAA0C;IAC1C,sFAA8B,CAAA;IAE9B,kEAAkE;IAClE,yCAAyC;IACzC,0FAAgC,CAAA;AACpC,CAAC,EA7CiB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QA6C/B;AAID,SAAgB,SAAS,CACrB,IAAU,EACV,cAA8B,EAC9B,kBAA8C;IAE9C,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAC5E,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1B,OAAO,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC;AATD,8BASC;AAED,SAAgB,kBAAkB,CAC9B,IAAkB,EAClB,cAA8B,EAC9B,kBAA8C;IAE9C,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAC5E,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1B,OAAO,0BAA0B,CAAC,IAAI,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACtG,CAAC;AATD,gDASC;AAED,SAAgB,uBAAuB,CACnC,IAAe,EACf,cAA8B,EAC9B,kBAA8C;IAE9C,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAC5E,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE1B,OAAO,+BAA+B,CAAC,IAAI,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3G,CAAC;AATD,0DASC;AAED,SAAgB,iBAAiB,CAAC,IAAe,EAAE,SAAS,GAAG,GAAG;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACvC,IAAI,YAAY,KAAK,SAAS,EAAE;QAC5B,OAAO,EAAE,CAAC;KACb;IAED,IAAI,UAAkB,CAAC;IACvB,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;QAClC,IAAI,qBAAqB,GAAG,YAAY,CAAC;QAEzC,0CAA0C;QAC1C,MAAM,sBAAsB,GAAG,EAAE,CAAC;QAClC,IAAI,YAAY,CAAC,MAAM,GAAG,sBAAsB,EAAE;YAC9C,qBAAqB,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,sBAAsB,CAAC,GAAG,GAAG,CAAC;SACnF;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;YAC/B,IAAI,WAAW,GAAG,EAAE,CAAC;YAErB,uEAAuE;YACvE,qEAAqE;YACrE,qEAAqE;YACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnD,MAAM,IAAI,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAEpC,IAAI,QAAQ,IAAI,EAAE,IAAI,QAAQ,IAAI,GAAG,EAAE;oBACnC,IAAI,QAAQ,KAAK,EAAE,EAAE;wBACjB,WAAW,IAAI,IAAI,GAAG,IAAI,CAAC;qBAC9B;yBAAM;wBACH,WAAW,IAAI,IAAI,CAAC;qBACvB;iBACJ;qBAAM;oBACH,WAAW,IAAI,MAAM,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;iBAC/F;aACJ;YAED,UAAU,GAAG,KAAK,WAAW,GAAG,CAAC;SACpC;aAAM;YACH,0DAA0D;YAC1D,sDAAsD;YACtD,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9D,IAAI,SAAS,KAAK,GAAG,EAAE;gBACnB,UAAU,GAAG,IAAI,UAAU;qBACtB,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;qBACnC,OAAO,CAAC,uBAAuB,EAAE,GAAG,CAAC;qBACrC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,qFAAqF;aACjI;SACJ;KACJ;SAAM,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE;QAC1C,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;KAChD;SAAM,IAAI,YAAY,YAAY,mBAAW,EAAE;QAC5C,UAAU,GAAG,GAAG,YAAY,CAAC,SAAS,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;KACrE;SAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;QACzC,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC1B,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC/D;KACJ;SAAM;QACH,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;KACxC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AA/DD,8CA+DC;AAED,SAAS,iBAAiB,CACtB,IAAU,EACV,cAA8B,EAC9B,kBAA8C,EAC9C,aAA4B,EAC5B,cAAsB,EACtB,cAAsB;IAEtB,MAAM,sBAAsB,GAAG,cAAc,CAAC;IAC9C,MAAM,iBAAiB,GAAG,CAAC,cAAc,6BAAmC,CAAC,KAAK,CAAC,CAAC;IACpF,cAAc,IAAI,CAAC,CAAC,2DAAsE,CAAC,CAAC;IAE5F,IAAI,cAAc,GAAG,6BAAqB,EAAE;QACxC,IAAI,cAAc,yBAA8B,EAAE;YAC9C,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,aAAa,CAAC;KACxB;IACD,cAAc,EAAE,CAAC;IAEjB,qEAAqE;IACrE,0BAA0B;IAC1B,IAAI,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,cAAc,2BAAiC,CAAC,KAAK,CAAC,EAAE;YACzD,eAAe,GAAG,KAAK,CAAC;SAC3B;aAAM;YACH,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;gBACxC,eAAe,GAAG,KAAK,CAAC;aAC3B;SACJ;QAED,IAAI,CAAC,eAAe,EAAE;YAClB,IAAI;gBACA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,SAAS,GACT,CAAC,cAAc,oCAAwC,CAAC,KAAK,CAAC;oBAC1D,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ;oBAC7B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBAElC,yDAAyD;gBACzD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;oBACpC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;iBAC3C;gBAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;gBAErD,IAAI,UAAU,EAAE;oBACZ,IAAI,eAAqC,CAAC;oBAE1C,qEAAqE;oBACrE,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;wBAClC,IACI,CAAC,cAAc,qCAA4C,CAAC,KAAK,CAAC;4BAClE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAA,iBAAS,EAAC,OAAO,CAAC,CAAC,EACzE;4BACE,eAAe,GAAG,EAAE,CAAC;4BACrB,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gCACxD,yCAAyC;gCACzC,MAAM,SAAS,GACX,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gCAEtF,sEAAsE;gCACtE,IACI,IAAA,yBAAiB,EAAC,SAAS,CAAC;oCAC5B,IAAA,uBAAe,EAAC,OAAO,CAAC;oCACxB,IAAA,wBAAY,EAAC,OAAO,CAAC;oCACrB,OAAO,CAAC,kBAAkB,EAC5B;oCACE,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;wCAChD,eAAgB,CAAC,IAAI,CACjB,iBAAiB,CACb,YAAY,CAAC,IAAI,EACjB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CACJ,CAAC;oCACN,CAAC,CAAC,CAAC;iCACN;qCAAM;oCACH,eAAgB,CAAC,IAAI,CACjB,iBAAiB,CACb,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CACJ,CAAC;iCACL;4BACL,CAAC,CAAC,CAAC;yBACN;qBACJ;yBAAM;wBACH,IACI,CAAC,cAAc,qCAA4C,CAAC,KAAK,CAAC;4BAClE,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC,EACvD;4BACE,eAAe,GAAG,EAAE,CAAC;4BACrB,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gCAC7B,eAAgB,CAAC,IAAI,CACjB,iBAAiB,CACb,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CACJ,CAAC;4BACN,CAAC,CAAC,CAAC;yBACN;qBACJ;oBAED,IAAI,eAAe,EAAE;wBACjB,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9B,SAAS,IAAI,MAAM,CAAC;yBACvB;6BAAM;4BACH,SAAS,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;yBAClD;qBACJ;iBACJ;gBAED,qEAAqE;gBACrE,mDAAmD;gBACnD,IAAI,IAAI,CAAC,QAAQ,qBAAyB,EAAE;oBACxC,OAAO,SAAS,CAAC;iBACpB;aACJ;oBAAS;gBACN,cAAc,CAAC,GAAG,EAAE,CAAC;aACxB;SACJ;KACJ;IAED,IACI,cAAc,CAAC,IAAI,CACf,CAAC,CAAC,EAAE,EAAE;;QACF,OAAA,CAAC,KAAK,IAAI;YACV,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,CAAC,aAAa,CAAC,QAAQ,MAAK,MAAA,IAAI,CAAC,aAAa,0CAAE,QAAQ,CAAA,CAAC,CAAA;KAAA,CACnG;QACD,cAAc,CAAC,MAAM,GAAG,6BAAqB,EAC/C;QACE,qEAAqE;QACrE,qCAAqC;QACrC,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;YACtF,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;SAC9C;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;gBACpC,IAAI,IAAI,GACJ,CAAC,cAAc,oCAAwC,CAAC,KAAK,CAAC;oBAC1D,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ;oBAC7B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBAClC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAC/B,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;iBACtC;gBACD,OAAO,IAAI,CAAC;aACf;YAED,IAAI;gBACA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE1B,OAAO,iBAAiB,CACpB,IAAI,EACJ,cAAc,GAAG,yBAA+B,EAChD,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;aACL;oBAAS;gBACN,cAAc,CAAC,GAAG,EAAE,CAAC;aACxB;SACJ;QAED,OAAO,KAAK,CAAC;KAChB;IAED,IAAI;QACA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1B,MAAM,2BAA2B,GAC7B,CAAC,cAAc,GAAG,CAAC,2DAAsE,CAAC,CAAC,KAAK,CAAC,CAAC;QACtG,MAAM,uBAAuB,GAAG,CAAC,OAAa,EAAE,EAAE;YAC9C,OAAO,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,CAAC,CAAC;QAEF,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACnB,oBAAyB,CAAC,CAAC;gBACvB,IAAI,cAAc,yBAA8B,EAAE;oBAC9C,OAAO,KAAK,CAAC;iBAChB;gBACD,OAAO,SAAS,CAAC;aACpB;YAED,oBAAyB,CAAC,CAAC;gBACvB,IAAI,cAAc,GAAG,CAAC,oDAAgE,CAAC,EAAE;oBACrF,OAAO,KAAK,CAAC;iBAChB;gBACD,OAAO,SAAS,CAAC;aACpB;YAED,mBAAwB,CAAC,CAAC;gBACtB,IAAI,cAAc,yBAA8B,EAAE;oBAC9C,OAAO,KAAK,CAAC;iBAChB;gBACD,OAAO,WAAW,IAAI,CAAC,UAAU,IAAI,CAAC;aACzC;YAED,kBAAuB,CAAC,CAAC;gBACrB,IAAI,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;oBAC3B,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;wBACjC,OAAO,WAAW,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;qBAChD;oBAED,OAAO,GAAG,+BAA+B,CACrC,IAAI,EACJ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;iBACvC;qBAAM;oBACH,IAAI,UAAkB,CAAC;oBAEvB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;wBACjC,UAAU,GAAG,WAAW,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;qBACtD;yBAAM;wBACH,UAAU,GAAG,GAAG,+BAA+B,CAC3C,IAAI,EACJ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,EAAE,CAAC;qBACP;oBAED,OAAO,GAAG,wBAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;iBAC1F;aACJ;YAED,qBAA0B,CAAC,CAAC;gBACxB,IAAI,gBAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;oBAC/B,MAAM,UAAU,GAAG,iBAAiB,CAChC,oBAAY,CAAC,eAAe,CAAC,IAAI,CAAC,EAClC,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;oBACF,OAAO,QAAQ,UAAU,GAAG,CAAC;iBAChC;gBAED,OAAO,iBAAiB,CACpB,IAAI,EACJ,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;aACL;YAED,+BAAoC,CAAC,CAAC;gBAClC,MAAM,cAAc,GAAG,IAAI,CAAC;gBAC5B,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACxD,iBAAiB,CACb,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CACJ,CAAC;gBACF,IAAI,cAAc,yBAA8B,EAAE;oBAC9C,OAAO,oBAAoB,CAAC;iBAC/B;gBACD,OAAO,YAAY,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aAC9C;YAED,kBAAuB,CAAC,CAAC;gBACrB,yDAAyD;gBACzD,+DAA+D;gBAC/D,+BAA+B;gBAC/B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;gBAE5C,mEAAmE;gBACnE,gCAAgC;gBAChC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;gBAEzC,oEAAoE;gBACpE,MAAM,qBAAqB,GACvB,cAAc,iBAAwB;oBAClC,CAAC,CAAC,cAAc,iCAAsC;oBACtD,CAAC,CAAC,cAAc,CAAC;gBAEzB,2DAA2D;gBAC3D,IAAI,CAAC,cAAc,2BAAiC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBAClF,KAAK,MAAM,eAAe,IAAI,IAAI,CAAC,gBAAgB,EAAE;wBACjD,IAAI,kBAAkB,GAAG,IAAI,CAAC;wBAC9B,IAAI,4BAA4B,GAAG,IAAI,CAAC;wBACxC,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;wBAEpD,KAAK,MAAM,aAAa,IAAI,eAAe,CAAC,QAAQ,EAAE;4BAClD,IAAI,iBAAiB,GAAG,CAAC,CAAC;4BAC1B,IAAI,UAAU,GAAG,KAAK,CAAC;4BAEvB,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;gCACtC,IAAI,IAAA,kBAAU,EAAC,aAAa,EAAE,YAAY,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE;oCACpE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;wCAC3C,4BAA4B,GAAG,KAAK,CAAC;qCACxC;oCACD,yBAAyB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;oCACjD,UAAU,GAAG,IAAI,CAAC;oCAClB,MAAM;iCACT;gCAED,iBAAiB,EAAE,CAAC;6BACvB;4BAED,IAAI,CAAC,UAAU,EAAE;gCACb,kBAAkB,GAAG,KAAK,CAAC;gCAC3B,MAAM;6BACT;yBACJ;wBAED,IAAI,kBAAkB,IAAI,CAAC,4BAA4B,EAAE;4BACrD,cAAc,CAAC,GAAG,CACd,iBAAiB,CACb,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CACJ,CAAC;4BACF,yBAAyB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;yBAC9E;qBACJ;iBACJ;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAC,CAAC;gBAChF,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;oBACrD,MAAM,eAAe,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC;oBAClD,IAAI,IAAA,eAAO,EAAC,eAAe,CAAC,EAAE;wBAC1B,OAAO,MAAM,CAAC;qBACjB;oBAED,MAAM,YAAY,GAAG,iBAAiB,CAClC,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;oBAEF,IAAI,cAAc,iBAAwB,EAAE;wBACxC,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;wBAC7C,IAAI,iBAAiB,EAAE;4BACnB,OAAO,IAAI,WAAW,GAAG,CAAC;yBAC7B;wBACD,OAAO,WAAW,CAAC;qBACtB;oBAED,OAAO,WAAW,GAAG,YAAY,GAAG,GAAG,CAAC;iBAC3C;gBAED,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC/C,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC9C,IAAA,4BAAgB,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;oBACtC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;wBAC/B,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;4BAChE,oBAAoB,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;yBACxD;6BAAM,IAAI,IAAA,2BAAmB,EAAC,OAAO,CAAC,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;4BAC3E,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;yBACvD;6BAAM;4BACH,cAAc,CAAC,GAAG,CACd,iBAAiB,CACb,OAAO,EACP,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CACJ,CAAC;yBACL;qBACJ;gBACL,CAAC,CAAC,CAAC;gBAEH,MAAM,qBAAqB,GAAa,EAAE,CAAC;gBAC3C,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE7D,IAAI,oBAAoB,CAAC,IAAI,GAAG,CAAC,EAAE;oBAC/B,MAAM,cAAc,GAAa,EAAE,CAAC;oBACpC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5D,qBAAqB,CAAC,IAAI,CAAC,WAAW,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACvE;gBAED,IAAI,mBAAmB,CAAC,IAAI,GAAG,CAAC,EAAE;oBAC9B,MAAM,cAAc,GAAa,EAAE,CAAC;oBACpC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3D,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7E;gBAED,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;oBACpC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;iBACnC;gBAED,IAAI,cAAc,iBAAwB,EAAE;oBACxC,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtD,IAAI,iBAAiB,EAAE;wBACnB,OAAO,IAAI,WAAW,GAAG,CAAC;qBAC7B;oBACD,OAAO,WAAW,CAAC;iBACtB;gBAED,OAAO,SAAS,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;aACvD;YAED,qBAAyB,CAAC,CAAC;gBACvB,oEAAoE;gBACpE,wEAAwE;gBACxE,mEAAmE;gBACnE,+BAA+B;gBAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;oBAC5B,kEAAkE;oBAClE,uCAAuC;oBACvC,IAAI,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;wBACrC,IAAI,CAAC,cAAc,2BAAiC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;4BACnF,OAAO,iBAAiB,CACpB,gBAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;gCACrB,CAAC,CAAC,IAAA,6BAAiB,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;gCAC3C,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAC5B,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;yBACL;wBACD,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;qBAC9C;oBAED,0EAA0E;oBAC1E,uEAAuE;oBACvE,0CAA0C;oBAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;wBAC1D,IAAI,eAAe,GAAG,iBAAiB,CACnC,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,cAAc,GAAG,yBAA+B,EAChD,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;wBAEF,IAAI,CAAC,IAAA,sBAAc,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;4BACzC,IAAI,cAAc,yBAA8B,EAAE;gCAC9C,eAAe,GAAG,MAAM,CAAC;6BAC5B;iCAAM;gCACH,eAAe,GAAG,QAAQ,eAAe,EAAE,CAAC;6BAC/C;yBACJ;wBAED,IAAI,gBAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;4BAC/B,OAAO,GAAG,wBAAwB,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,CAAC;yBAC/D;wBAED,OAAO,eAAe,CAAC;qBAC1B;oBAED,OAAO,CAAC,cAAc,GAAG,CAAC,oDAAgE,CAAC,CAAC,KAAK,CAAC;wBAC9F,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,SAAS,CAAC;iBACnB;gBAED,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;oBAC1B,MAAM,aAAa,GAAG,uBAAuB,CACzC,IAAI,EACJ,CAAC,cAAc,yBAA8B,CAAC,KAAK,CAAC,CACvD,CAAC;oBAEF,IAAI,IAAI,CAAC,eAAe,EAAE;wBACtB,OAAO,GAAG,aAAa,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;qBACrD;oBACD,OAAO,aAAa,CAAC;iBACxB;gBAED,IAAI,WAAW,GAAG,uBAAuB,CAAC,IAAI,EAAE,CAAC,cAAc,yBAA8B,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtG,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBACzB,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;iBAC3D;gBAED,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBACxB,WAAW,GAAG,SAAS,WAAW,GAAG,CAAC;iBACzC;gBAED,IAAI,gBAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;oBAC/B,WAAW,GAAG,GAAG,wBAAwB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;iBAClE;gBAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,cAAc,kCAAsC,CAAC,KAAK,CAAC,EAAE;oBAC1F,MAAM,YAAY,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBACnD,IAAI,YAAY,EAAE;wBACd,WAAW,GAAG,GAAG,WAAW,KAAK,YAAY,GAAG,CAAC;qBACpD;iBACJ;gBAED,OAAO,WAAW,CAAC;aACtB;YAED,iBAAsB,CAAC,CAAC;gBACpB,OAAO,GACH,gBAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAClF,GAAG,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;aACtC;YAED,kBAAuB,CAAC,CAAC;gBACrB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;aACjD;YAED,gBAAqB,CAAC,CAAC;gBACnB,MAAM,OAAO,GAAG,IAAI,CAAC;gBACrB,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;aAC7C;SACJ;QAED,OAAO,EAAE,CAAC;KACb;YAAS;QACN,cAAc,CAAC,GAAG,EAAE,CAAC;KACxB;AACL,CAAC;AAED,SAAS,iBAAiB,CACtB,IAAkB,EAClB,cAA8B,EAC9B,kBAA8C,EAC9C,aAA4B,EAC5B,cAAsB,EACtB,cAAsB;IAEtB,IAAI,cAAc,yBAA8B,EAAE;QAC9C,yEAAyE;QACzE,IAAI,sBAAsB,GAAG,KAAK,CAAC;QACnC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,sBAAsB,GAAG,IAAI,CAAC;SACjC;aAAM;YACH,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,mBAA6B,CAAC,EAAE;gBACvF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC9E,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;oBACjB,sBAAsB,GAAG,IAAI,CAAC;iBACjC;aACJ;SACJ;QAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,UAAU,EAAE;YACZ,gBAAgB,GAAG,iBAAiB,CAChC,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;SACL;QAED,IAAI,sBAAsB,EAAE;YACxB,MAAM,UAAU,GAAa,EAAE,CAAC;YAEhC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC7C,IAAI,KAAK,CAAC,IAAI,EAAE;oBACZ,MAAM,SAAS,GAAG,oBAAY,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACtE,IAAI,cAAc,CAAC,MAAM,GAAG,6BAAqB,EAAE;wBAC/C,UAAU,CAAC,IAAI,CACX,iBAAiB,CACb,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CACJ,CAAC;qBACL;yBAAM;wBACH,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC1B;iBACJ;YACL,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBACxB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvB,OAAO,wBAAwB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAChD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IACnC,MAAM,gBAAgB,GAAG,CAAC;iBAC7B;gBAED,OAAO,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,gBAAgB,GAAG,CAAC;aAClF;YAED,OAAO,aAAa,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,gBAAgB,GAAG,CAAC;SACtE;aAAM;YACH,8DAA8D;YAC9D,0BAA0B;YAC1B,OAAO,iBAAiB,gBAAgB,GAAG,CAAC;SAC/C;KACJ;SAAM;QACH,MAAM,KAAK,GAAG,0BAA0B,CACpC,IAAI,EACJ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAElD,IAAI,oBAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;YACrC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;gBAChD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACtB;YAED,OAAO,cAAc,CAAC;SACzB;QAED,MAAM,aAAa,GAAG,GAAG,cAAc,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,oBAAoB,GAAG,CAAC,cAAc,iCAAsC,CAAC,KAAK,CAAC,CAAC;QAC1F,IAAI,oBAAoB,EAAE;YACtB,OAAO,IAAI,aAAa,GAAG,CAAC;SAC/B;QAED,OAAO,aAAa,CAAC;KACxB;AACL,CAAC;AAED,SAAS,+BAA+B,CACpC,IAAe,EACf,cAA8B,EAC9B,kBAA8C,EAC9C,aAA4B,EAC5B,cAAsB,EACtB,cAAsB;;IAEtB,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE;QACV,OAAO;YACH,CAAC,cAAc,oCAAwC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;KAClH;IAED,yDAAyD;IACzD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;KACnC;IAED,sEAAsE;IACtE,oDAAoD;IACpD,IAAI,CAAC,iBAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE;QACvC,MAAM,UAAU,GAAG,iBAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;QAE5E,gEAAgE;QAChE,MAAM,QAAQ,GACV,MAAA,IAAI,CAAC,kBAAkB,mCACvB,MAAA,IAAI,CAAC,aAAa,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1B,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QACP,IAAI,QAAQ,EAAE;YACV,sCAAsC;YACtC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrB,MAAM,cAAc,GAAa,EAAE,CAAC;gBACpC,IAAI,YAAY,GAAG,IAAI,CAAC;gBAExB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;oBAChC,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC5E,IACI,SAAS;wBACT,SAAS,CAAC,OAAO,CAAC,UAAU;wBAC5B,IAAA,uBAAe,EAAC,OAAO,CAAC,IAAI,CAAC;wBAC7B,iBAAS,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;wBAC1C,OAAO,CAAC,IAAI,CAAC,kBAAkB,EACjC;wBACE,kEAAkE;wBAClE,IAAI,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC9C,IAAI,CAAC,IAAA,iBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gCAC1B,YAAY,GAAG,KAAK,CAAC;6BACxB;4BAED,IAAI,KAAK,KAAK,CAAC,EAAE;gCACb,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;6BAClE;yBACJ;6BAAM;4BACH,IAAA,6BAAW,EACP,cAAc,EACd,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gCAC5C,IAAI,CAAC,IAAA,iBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oCAC1B,YAAY,GAAG,KAAK,CAAC;iCACxB;gCAED,MAAM,WAAW,GAAG,iBAAiB,CACjC,OAAO,CAAC,IAAI,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;gCAEF,IAAI,OAAO,CAAC,WAAW,EAAE;oCACrB,OAAO,YAAY,CAAC,SAAS,WAAW,QAAQ,EAAE,cAAc,CAAC,CAAC;iCACrE;gCAED,OAAO,WAAW,CAAC;4BACvB,CAAC,CAAC,CACL,CAAC;yBACL;qBACJ;yBAAM;wBACH,IAAI,CAAC,IAAA,iBAAS,EAAC,OAAO,CAAC,IAAI,CAAC,EAAE;4BAC1B,YAAY,GAAG,KAAK,CAAC;yBACxB;wBAED,MAAM,eAAe,GAAG,iBAAiB,CACrC,OAAO,CAAC,IAAI,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;wBAEF,IAAI,OAAO,CAAC,WAAW,EAAE;4BACrB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gCACvB,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;6BAC/C;iCAAM;gCACH,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,eAAe,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;6BACvF;yBACJ;6BAAM;4BACH,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;yBACxC;qBACJ;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,UAAU,EAAE;oBACjB,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;iBACnD;gBAED,IAAI,CAAC,cAAc,qCAA4C,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE;oBACrF,OAAO,IAAI,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;iBACpD;aACJ;iBAAM;gBACH,IAAI,IAAI,CAAC,UAAU,EAAE;oBACjB,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;iBACnD;gBAED,IAAI,iBAAS,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE;oBAC5C,OAAO,IAAI,MAAM,CAAC;iBACrB;aACJ;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;aACnD;YAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvB,IACI,CAAC,cAAc,qCAA4C,CAAC,KAAK,CAAC;oBAClE,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC,EACvD;oBACE,OAAO;wBACH,GAAG;4BACH,UAAU;iCACL,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;gCACf,OAAO,iBAAiB,CACpB,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;4BACN,CAAC,CAAC;iCACD,IAAI,CAAC,IAAI,CAAC;4BACf,GAAG,CAAC;iBACX;aACJ;SACJ;KACJ;IAED,0EAA0E;IAC1E,IAAI,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,cAAc,yBAA8B,CAAC,KAAK,CAAC,EAAE;YACtD,OAAO,GAAG,WAAW,OAAO,GAAG,CAAC;SACnC;KACJ;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,0BAA0B,CAC/B,IAAkB,EAClB,cAA8B,EAC9B,kBAA8C,EAC9C,aAA4B,EAC5B,cAAsB,EACtB,cAAsB;IAEtB,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7C,yDAAyD;QACzD,IACI,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAC5C,KAAK,CAAC,QAAQ,qBAA+B;YAC7C,IAAA,yBAAiB,EAAC,KAAK,CAAC,IAAI,CAAC,EAC/B;YACE,MAAM,oBAAoB,GAAG,oBAAY,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjF,IACI,IAAA,uBAAe,EAAC,oBAAoB,CAAC;gBACrC,iBAAS,CAAC,SAAS,CAAC,oBAAoB,EAAE,OAAO,CAAC;gBAClD,oBAAoB,CAAC,kBAAkB,EACzC;gBACE,oBAAoB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC1D,MAAM,WAAW,GAAG,iBAAiB,CACjC,SAAS,CAAC,IAAI,EACd,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;oBACF,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBACH,OAAO;aACV;SACJ;QAED,+CAA+C;QAC/C,IACI,IAAA,8BAAa,EAAC,KAAK,CAAC;YACpB,cAAc,iCAAqC;YACnD,KAAK,CAAC,IAAI,CAAC,QAAQ,kBAAuB,EAC5C;YACE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAClD,MAAM,eAAe,GAAG,iBAAiB,CACrC,CAAC,CAAC,SAAS,EACX,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,CAAC;gBACF,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,eAAe,EAAE,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YACH,OAAO;SACV;QAED,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,QAAQ,qBAA+B,EAAE;YAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;gBACzC,WAAW,IAAI,GAAG,CAAC;aACtB;SACJ;aAAM,IAAI,KAAK,CAAC,QAAQ,uBAAiC,EAAE;YACxD,WAAW,IAAI,IAAI,CAAC;SACvB;QAED,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;YACxC,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC;YAC1B,cAAc,GAAG,IAAI,CAAC;YACtB,gBAAgB,GAAG,IAAI,CAAC;SAC3B;aAAM,IAAI,cAAc,yBAA8B,EAAE;YACrD,WAAW,IAAI,MAAM,KAAK,EAAE,CAAC;YAC7B,cAAc,GAAG,IAAI,CAAC;YACtB,gBAAgB,GAAG,IAAI,CAAC;SAC3B;QAED,IAAI,sBAAsB,GAAG,GAAG,CAAC;QACjC,IAAI,0BAA0B,GAAG,KAAK,CAAC;QAEvC,IAAI,KAAK,CAAC,IAAI,EAAE;YACZ,4DAA4D;YAC5D,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,cAAc,EAAE;gBAC/C,MAAM,SAAS,GAAG,oBAAY,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACtE,IAAI,eAAe,GACf,cAAc,CAAC,MAAM,GAAG,6BAAqB;oBACzC,CAAC,CAAC,iBAAiB,CACb,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB;oBACH,CAAC,CAAC,EAAE,CAAC;gBAEb,IAAI,gBAAgB,EAAE;oBAClB,WAAW,IAAI,IAAI,CAAC;iBACvB;qBAAM,IAAI,KAAK,CAAC,QAAQ,qBAA+B,IAAI,CAAC,IAAA,kBAAU,EAAC,SAAS,CAAC,EAAE;oBAChF,WAAW,IAAI,GAAG,CAAC;iBACtB;gBAED,IAAI,KAAK,CAAC,QAAQ,uBAAiC,IAAI,IAAA,kBAAU,EAAC,SAAS,CAAC,EAAE;oBAC1E,IAAI,cAAc,yBAA8B,EAAE;wBAC9C,mEAAmE;wBACnE,eAAe,GAAG,UAAU,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;qBAC/D;yBAAM;wBACH,8EAA8E;wBAC9E,eAAe,GAAG,GAAG,GAAG,eAAe,CAAC;qBAC3C;iBACJ;gBAED,WAAW,IAAI,eAAe,CAAC;gBAE/B,IAAI,IAAA,mBAAW,EAAC,SAAS,CAAC,EAAE;oBACxB,IACI,KAAK,CAAC,QAAQ,qBAA+B;wBAC7C,KAAK,CAAC,QAAQ,uBAAiC,EACjD;wBACE,0BAA0B,GAAG,IAAI,CAAC;qBACrC;iBACJ;gBAED,4EAA4E;gBAC5E,2CAA2C;gBAC3C,sBAAsB,GAAG,KAAK,CAAC;aAClC;iBAAM,IAAI,CAAC,cAAc,qCAA4C,CAAC,KAAK,CAAC,EAAE;gBAC3E,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAC1B,WAAW,IAAI,IAAI,CAAC;iBACvB;gBACD,IAAI,cAAc,GAAG,CAAC,oDAAgE,CAAC,EAAE;oBACrF,WAAW,IAAI,KAAK,CAAC;iBACxB;qBAAM;oBACH,WAAW,IAAI,SAAS,CAAC;iBAC5B;gBACD,sBAAsB,GAAG,KAAK,CAAC;aAClC;SACJ;aAAM,IAAI,KAAK,CAAC,QAAQ,mBAA6B,EAAE;YACpD,IAAI,cAAc,EAAE;gBAChB,WAAW,IAAI,GAAG,CAAC;aACtB;iBAAM;gBACH,OAAO;aACV;SACJ;QAED,IAAI,KAAK,CAAC,UAAU,EAAE;YAClB,IAAI,KAAK,CAAC,sBAAsB,EAAE;gBAC9B,WAAW,IAAI,sBAAsB,GAAG,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;aACxG;iBAAM;gBACH,4EAA4E;gBAC5E,mFAAmF;gBACnF,0CAA0C;gBAC1C,WAAW,IAAI,sBAAsB,GAAG,KAAK,CAAC;aACjD;SACJ;QAED,wEAAwE;QACxE,IAAI,oBAAY,CAAC,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE;YAC1F,IAAI,KAAK,CAAC,QAAQ,qBAA+B,EAAE;gBAC/C,WAAW,GAAG,KAAK,CAAC;aACvB;iBAAM,IAAI,KAAK,CAAC,QAAQ,uBAAiC,EAAE;gBACxD,OAAO;aACV;SACJ;QAED,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;QACxB,IAAI,cAAc,yBAA8B,EAAE;YAC9C,gBAAgB,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,OAAO,CAAC,CAAC;YAC/D,gBAAgB,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,SAAS,SAAS,CAAC,CAAC;SACvE;aAAM;YACH,gBAAgB,CAAC,IAAI,CACjB,KAAK,iBAAiB,CAClB,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB,EAAE,CACN,CAAC;SACL;KACJ;IAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAClB,cAAc,CAAC,MAAM,GAAG,6BAAqB;QACzC,CAAC,CAAC,iBAAiB,CACb,UAAU,EACV,cAAc,6BAAmC,iCAAsC,EACvF,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,cAAc,CACjB;QACH,CAAC,CAAC,EAAE,CAAC;IAEb,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,YAAY,CAAC,UAAkB,EAAE,KAAqB;IAC3D,OAAO,KAAK,4BAAiC,CAAC,CAAC,CAAC,UAAU,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;AAC/F,CAAC;AAED,kEAAkE;AAClE,qCAAqC;AACrC,SAAS,wBAAwB,CAAC,IAAU,EAAE,UAAkB;;IAC5D,MAAM,WAAW,GAAG,CAAC,MAAA,IAAI,CAAC,wBAAwB,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAE7D,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,WAAW,EAAE,SAAS,EAAE,EAAE;QAC1D,UAAU,GAAG,QAAQ,UAAU,GAAG,CAAC;KACtC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAiB,EAAE,eAAwB;IACxE,IAAI,eAAe,EAAE;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;KAC5B;IAED,OAAO,mBAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAiB;;IAC9C,MAAM,gBAAgB,GAAG,MAAA,IAAI,CAAC,gBAAgB,mCAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAChF,IAAI,gBAAgB,sBAAuB,EAAE;QACzC,OAAO,WAAW,CAAC;KACtB;IAED,IAAI,gBAAgB,sBAAuB,EAAE;QACzC,OAAO,WAAW,CAAC;KACtB;IAED,IAAI,gBAAgB,0BAA2B,EAAE;QAC7C,OAAO,eAAe,CAAC;KAC1B;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,gFAAgF;AAChF,iDAAiD;AACjD,MAAM,aAAa;IAGf,YAAoB,eAA+B,EAAU,mBAA+C;QAAxF,oBAAe,GAAf,eAAe,CAAgB;QAAU,wBAAmB,GAAnB,mBAAmB,CAA4B;QAFpG,SAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEsE,CAAC;IAEhH,KAAK,CAAC,IAAU,EAAE,iBAAyB,EAAE,EAAE,cAAc,GAAG,CAAC;;QAC7D,IAAI,cAAc,GAAG,6BAAqB,EAAE;YACxC,OAAO;SACV;QACD,cAAc,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,eAAe,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,eAAe,2BAAiC,CAAC,KAAK,CAAC,EAAE;gBAC/D,eAAe,GAAG,KAAK,CAAC;aAC3B;iBAAM;gBACH,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE;oBACxC,eAAe,GAAG,KAAK,CAAC;iBAC3B;aACJ;YAED,IAAI,CAAC,eAAe,EAAE;gBAClB,MAAM,aAAa,GACf,CAAC,IAAI,CAAC,eAAe,oCAAwC,CAAC,KAAK,CAAC;oBAChE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ;oBAC7B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBAClC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAEpE,iDAAiD;gBACjD,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;oBAClC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE1B,IAAI;wBACA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;4BACjD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;wBACxD,CAAC,CAAC,CAAC;qBACN;4BAAS;wBACN,cAAc,CAAC,GAAG,EAAE,CAAC;qBACxB;iBACJ;gBAED,OAAO;aACV;SACJ;QAED,IAAI;YACA,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE1B,QAAQ,IAAI,CAAC,QAAQ,EAAE;gBACnB,qBAA0B,CAAC,CAAC;oBACxB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;wBACzC,MAAM,SAAS,GAAG,oBAAY,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACtE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;oBAC1D,CAAC,CAAC,CAAC;oBAEH,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAClD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;oBACvD,MAAM;iBACT;gBAED,+BAAoC,CAAC,CAAC;oBAClC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;wBAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;oBACH,MAAM;iBACT;gBAED,kBAAuB,CAAC,CAAC;oBACrB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE;wBACjC,MAAM;qBACT;oBAED,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC/B,IAAI,CAAC,SAAS,EAAE;wBACZ,SAAS;4BACL,CAAC,IAAI,CAAC,eAAe,oCAAwC,CAAC,KAAK,CAAC;gCAChE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gCACvB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;qBAC/B;oBAED,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oBAEnC,IAAI,CAAC,iBAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE;wBACvC,IAAI,IAAI,CAAC,kBAAkB,EAAE;4BACzB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gCACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;4BAC7D,CAAC,CAAC,CAAC;yBACN;6BAAM,IAAI,IAAI,CAAC,aAAa,EAAE;4BAC3B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gCACnC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;4BACxD,CAAC,CAAC,CAAC;yBACN;qBACJ;oBACD,MAAM;iBACT;gBAED,kBAAuB,CAAC,CAAC;oBACrB,IAAA,4BAAgB,EAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;wBAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;oBACxD,CAAC,CAAC,CAAC;oBAEH,MAAA,IAAI,CAAC,gBAAgB,0CAAE,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;wBAC/C,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;oBAChE,CAAC,CAAC,CAAC;oBACH,MAAM;iBACT;aACJ;SACJ;gBAAS;YACN,cAAc,CAAC,GAAG,EAAE,CAAC;SACxB;IACL,CAAC;IAED,QAAQ,CAAC,IAAY;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACxC,CAAC;IAEO,YAAY,CAAC,IAAY,EAAE,IAAU,EAAE,gBAAgB,GAAG,KAAK;QACnE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,aAAa,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/B;aAAM;YACH,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,EAAE;gBAC7E,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5B;SACJ;IACL,CAAC;IAEO,eAAe,CAAC,KAAW,EAAE,KAAW,EAAE,gBAAyB;;QACvE,IAAI,gBAAgB,EAAE;YAClB,OAAO,CAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,QAAQ,OAAK,MAAA,KAAK,CAAC,aAAa,0CAAE,QAAQ,CAAA,CAAC;SAC1E;QAED,IAAI,IAAA,eAAO,EAAC,KAAK,CAAC,IAAI,IAAA,eAAO,EAAC,KAAK,CAAC,EAAE;YAClC,OAAO,iBAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrD;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
@@ -16,8 +16,9 @@ export declare const enum ClassMemberLookupFlags {
16
16
  SkipBaseClasses = 2,
17
17
  SkipObjectBaseClass = 4,
18
18
  SkipInstanceVariables = 8,
19
- DeclaredTypesOnly = 16,
20
- SkipTypeBaseClass = 32
19
+ SkipClassVariables = 16,
20
+ DeclaredTypesOnly = 32,
21
+ SkipTypeBaseClass = 64
21
22
  }
22
23
  export declare const enum ClassIteratorFlags {
23
24
  Default = 0,
@@ -38,7 +39,8 @@ export declare const enum AssignTypeFlags {
38
39
  SkipSelfClsTypeCheck = 256,
39
40
  IgnoreTypeVarScope = 512,
40
41
  PopulatingExpectedType = 1024,
41
- AllowUnspecifiedTypeArguments = 2048
42
+ AllowUnspecifiedTypeArguments = 2048,
43
+ IgnoreProtocolAssignmentCheck = 4096
42
44
  }
43
45
  export interface ApplyTypeVarOptions {
44
46
  unknownIfNotFound?: boolean;
@@ -68,7 +70,7 @@ export declare function isTypeVarSame(type1: TypeVarType, type2: Type): boolean;
68
70
  export declare function makeInferenceContext(expectedType: undefined, isTypeIncomplete?: boolean, signatureTracker?: UniqueSignatureTracker): undefined;
69
71
  export declare function makeInferenceContext(expectedType: Type, isTypeIncomplete?: boolean, signatureTracker?: UniqueSignatureTracker): InferenceContext;
70
72
  export declare function makeInferenceContext(expectedType: Type | undefined, isTypeIncomplete?: boolean, signatureTracker?: UniqueSignatureTracker): InferenceContext | undefined;
71
- export declare function mapSubtypes(type: Type, callback: (type: Type) => Type | undefined): Type;
73
+ export declare function mapSubtypes(type: Type, callback: (type: Type) => Type | undefined, sortSubtypes?: boolean): Type;
72
74
  export declare function sortTypes(types: Type[]): Type[];
73
75
  export declare function doForEachSubtype(type: Type, callback: (type: Type, index: number, allSubtypes: Type[]) => void, sortSubtypes?: boolean): void;
74
76
  export declare function areTypesSame(types: Type[], options: TypeSameOptions): boolean;
@@ -33,12 +33,15 @@ var ClassMemberLookupFlags;
33
33
  // By default, both class and instance variables are searched.
34
34
  // If this flag is set, the instance variables are skipped.
35
35
  ClassMemberLookupFlags[ClassMemberLookupFlags["SkipInstanceVariables"] = 8] = "SkipInstanceVariables";
36
+ // By default, both class and instance variables are searched.
37
+ // If this flag is set, the class variables are skipped.
38
+ ClassMemberLookupFlags[ClassMemberLookupFlags["SkipClassVariables"] = 16] = "SkipClassVariables";
36
39
  // By default, the first symbol is returned even if it has only
37
40
  // an inferred type associated with it. If this flag is set,
38
41
  // the search looks only for symbols with declared types.
39
- ClassMemberLookupFlags[ClassMemberLookupFlags["DeclaredTypesOnly"] = 16] = "DeclaredTypesOnly";
42
+ ClassMemberLookupFlags[ClassMemberLookupFlags["DeclaredTypesOnly"] = 32] = "DeclaredTypesOnly";
40
43
  // Skip the 'type' base class in particular.
41
- ClassMemberLookupFlags[ClassMemberLookupFlags["SkipTypeBaseClass"] = 32] = "SkipTypeBaseClass";
44
+ ClassMemberLookupFlags[ClassMemberLookupFlags["SkipTypeBaseClass"] = 64] = "SkipTypeBaseClass";
42
45
  })(ClassMemberLookupFlags = exports.ClassMemberLookupFlags || (exports.ClassMemberLookupFlags = {}));
43
46
  var ClassIteratorFlags;
44
47
  (function (ClassIteratorFlags) {
@@ -100,6 +103,10 @@ var AssignTypeFlags;
100
103
  // default type arguments (typically "Unknown"). This flag skips
101
104
  // this step.
102
105
  AssignTypeFlags[AssignTypeFlags["AllowUnspecifiedTypeArguments"] = 2048] = "AllowUnspecifiedTypeArguments";
106
+ // PEP 544 says that if the dest type is a type[Proto] class,
107
+ // the source must be a "concrete" (non-protocol) class. This
108
+ // flag skips this check.
109
+ AssignTypeFlags[AssignTypeFlags["IgnoreProtocolAssignmentCheck"] = 4096] = "IgnoreProtocolAssignmentCheck";
103
110
  })(AssignTypeFlags = exports.AssignTypeFlags || (exports.AssignTypeFlags = {}));
104
111
  // Tracks whether a function signature has been seen before within
105
112
  // an expression. For example, in the expression "foo(foo, foo)", the
@@ -198,14 +205,15 @@ exports.makeInferenceContext = makeInferenceContext;
198
205
  // Calls a callback for each subtype and combines the results
199
206
  // into a final type. It performs no memory allocations if the
200
207
  // transformed type is the same as the original.
201
- function mapSubtypes(type, callback) {
208
+ function mapSubtypes(type, callback, sortSubtypes = false) {
202
209
  if ((0, types_1.isUnion)(type)) {
203
- for (let i = 0; i < type.subtypes.length; i++) {
204
- const subtype = type.subtypes[i];
210
+ const subtypes = sortSubtypes ? sortTypes(type.subtypes) : type.subtypes;
211
+ for (let i = 0; i < subtypes.length; i++) {
212
+ const subtype = subtypes[i];
205
213
  const transformedType = callback(subtype);
206
214
  // Avoid doing any memory allocations until a change is detected.
207
215
  if (subtype !== transformedType) {
208
- const typesToCombine = type.subtypes.slice(0, i);
216
+ const typesToCombine = subtypes.slice(0, i);
209
217
  // Create a helper lambda that accumulates transformed subtypes.
210
218
  const accumulateSubtype = (newSubtype) => {
211
219
  if (newSubtype) {
@@ -213,8 +221,8 @@ function mapSubtypes(type, callback) {
213
221
  }
214
222
  };
215
223
  accumulateSubtype(transformedType);
216
- for (i++; i < type.subtypes.length; i++) {
217
- accumulateSubtype(callback(type.subtypes[i]));
224
+ for (i++; i < subtypes.length; i++) {
225
+ accumulateSubtype(callback(subtypes[i]));
218
226
  }
219
227
  const newType = (0, types_1.combineTypes)(typesToCombine);
220
228
  // Do our best to retain type aliases.
@@ -240,8 +248,12 @@ function sortTypes(types) {
240
248
  });
241
249
  }
242
250
  exports.sortTypes = sortTypes;
243
- function compareTypes(a, b) {
251
+ function compareTypes(a, b, recursionCount = 0) {
244
252
  var _a, _b;
253
+ if (recursionCount > types_1.maxTypeRecursionCount) {
254
+ return 0;
255
+ }
256
+ recursionCount++;
245
257
  if (a.category !== b.category) {
246
258
  return b.category - a.category;
247
259
  }
@@ -331,7 +343,29 @@ function compareTypes(a, b) {
331
343
  // Sort by class name.
332
344
  const aName = a.details.name;
333
345
  const bName = b.details.name;
334
- return aName < bName ? -1 : aName === bName ? 0 : 1;
346
+ if (aName < bName) {
347
+ return -1;
348
+ }
349
+ else if (aName > bName) {
350
+ return 1;
351
+ }
352
+ // Sort by type argument count.
353
+ const aTypeArgCount = a.typeArguments ? a.typeArguments.length : 0;
354
+ const bTypeArgCount = bClass.typeArguments ? bClass.typeArguments.length : 0;
355
+ if (aTypeArgCount < bTypeArgCount) {
356
+ return -1;
357
+ }
358
+ else if (aTypeArgCount > bTypeArgCount) {
359
+ return 1;
360
+ }
361
+ // Sort by type argument.
362
+ for (let i = 0; i < aTypeArgCount; i++) {
363
+ const typeComparison = compareTypes(a.typeArguments[i], bClass.typeArguments[i], recursionCount);
364
+ if (typeComparison !== 0) {
365
+ return typeComparison;
366
+ }
367
+ }
368
+ return 0;
335
369
  }
336
370
  case 8 /* Module */: {
337
371
  const aName = a.moduleName;
@@ -991,7 +1025,7 @@ exports.lookUpClassMember = lookUpClassMember;
991
1025
  // If skipMroClass is defined, all MRO classes up to and including that class
992
1026
  // are skipped.
993
1027
  function* getClassMemberIterator(classType, memberName, flags = 0 /* Default */, skipMroClass) {
994
- const declaredTypesOnly = (flags & 16 /* DeclaredTypesOnly */) !== 0;
1028
+ const declaredTypesOnly = (flags & 32 /* DeclaredTypesOnly */) !== 0;
995
1029
  let skippedUndeclaredType = false;
996
1030
  if ((0, types_1.isClass)(classType)) {
997
1031
  let classFlags = 0 /* Default */;
@@ -1006,7 +1040,7 @@ function* getClassMemberIterator(classType, memberName, flags = 0 /* Default */,
1006
1040
  if (flags & 4 /* SkipObjectBaseClass */) {
1007
1041
  classFlags = classFlags | 2 /* SkipObjectBaseClass */;
1008
1042
  }
1009
- if (flags & 32 /* SkipTypeBaseClass */) {
1043
+ if (flags & 64 /* SkipTypeBaseClass */) {
1010
1044
  classFlags = classFlags | 4 /* SkipTypeBaseClass */;
1011
1045
  }
1012
1046
  const classItr = getClassIterator(classType, classFlags, skipMroClass);
@@ -1055,39 +1089,41 @@ function* getClassMemberIterator(classType, memberName, flags = 0 /* Default */,
1055
1089
  }
1056
1090
  }
1057
1091
  // Next look at class members.
1058
- const symbol = memberFields.get(memberName);
1059
- if (symbol && symbol.isClassMember()) {
1060
- const hasDeclaredType = symbol.hasTypedDeclarations();
1061
- if (!declaredTypesOnly || hasDeclaredType) {
1062
- let isInstanceMember = symbol.isInstanceMember();
1063
- let isClassMember = true;
1064
- // For data classes and typed dicts, variables that are declared
1065
- // within the class are treated as instance variables. This distinction
1066
- // is important in cases where a variable is a callable type because
1067
- // we don't want to bind it to the instance like we would for a
1068
- // class member.
1069
- const isDataclass = types_1.ClassType.isDataClass(specializedMroClass);
1070
- const isTypedDict = types_1.ClassType.isTypedDictClass(specializedMroClass);
1071
- if (hasDeclaredType && (isDataclass || isTypedDict)) {
1072
- const decls = symbol.getDeclarations();
1073
- if (decls.length > 0 && decls[0].type === 1 /* Variable */) {
1074
- isInstanceMember = true;
1075
- isClassMember = isDataclass;
1092
+ if ((flags & 16 /* SkipClassVariables */) === 0) {
1093
+ const symbol = memberFields.get(memberName);
1094
+ if (symbol && symbol.isClassMember()) {
1095
+ const hasDeclaredType = symbol.hasTypedDeclarations();
1096
+ if (!declaredTypesOnly || hasDeclaredType) {
1097
+ let isInstanceMember = symbol.isInstanceMember();
1098
+ let isClassMember = true;
1099
+ // For data classes and typed dicts, variables that are declared
1100
+ // within the class are treated as instance variables. This distinction
1101
+ // is important in cases where a variable is a callable type because
1102
+ // we don't want to bind it to the instance like we would for a
1103
+ // class member.
1104
+ const isDataclass = types_1.ClassType.isDataClass(specializedMroClass);
1105
+ const isTypedDict = types_1.ClassType.isTypedDictClass(specializedMroClass);
1106
+ if (hasDeclaredType && (isDataclass || isTypedDict)) {
1107
+ const decls = symbol.getDeclarations();
1108
+ if (decls.length > 0 && decls[0].type === 1 /* Variable */) {
1109
+ isInstanceMember = true;
1110
+ isClassMember = isDataclass;
1111
+ }
1076
1112
  }
1113
+ const cm = {
1114
+ symbol,
1115
+ isInstanceMember,
1116
+ isClassMember,
1117
+ isClassVar: symbol.isClassVar(),
1118
+ classType: specializedMroClass,
1119
+ isTypeDeclared: hasDeclaredType,
1120
+ skippedUndeclaredType,
1121
+ };
1122
+ yield cm;
1123
+ }
1124
+ else {
1125
+ skippedUndeclaredType = true;
1077
1126
  }
1078
- const cm = {
1079
- symbol,
1080
- isInstanceMember,
1081
- isClassMember,
1082
- isClassVar: symbol.isClassVar(),
1083
- classType: specializedMroClass,
1084
- isTypeDeclared: hasDeclaredType,
1085
- skippedUndeclaredType,
1086
- };
1087
- yield cm;
1088
- }
1089
- else {
1090
- skippedUndeclaredType = true;
1091
1127
  }
1092
1128
  }
1093
1129
  }
@@ -1335,7 +1371,8 @@ function specializeClassType(type) {
1335
1371
  const typeVarContext = new typeVarContext_1.TypeVarContext(getTypeVarScopeId(type));
1336
1372
  const typeParams = types_1.ClassType.getTypeParameters(type);
1337
1373
  typeParams.forEach((typeParam) => {
1338
- typeVarContext.setTypeVarType(typeParam, types_1.UnknownType.create());
1374
+ var _a;
1375
+ typeVarContext.setTypeVarType(typeParam, applySolvedTypeVars((_a = typeParam.details.defaultType) !== null && _a !== void 0 ? _a : types_1.UnknownType.create(), typeVarContext));
1339
1376
  });
1340
1377
  return applySolvedTypeVars(type, typeVarContext);
1341
1378
  }
@@ -2472,10 +2509,23 @@ class TypeVarTransformer {
2472
2509
  // _pendingTypeVarTransformations set.
2473
2510
  if (!this._isTypeVarScopePending(type.scopeId)) {
2474
2511
  if (type.details.isParamSpec) {
2475
- if (!type.paramSpecAccess) {
2476
- const paramSpecValue = this.transformParamSpec(type, recursionCount);
2477
- if (paramSpecValue) {
2478
- replacementType = convertParamSpecValueToType(paramSpecValue);
2512
+ let paramSpecWithoutAccess = type;
2513
+ if (type.paramSpecAccess) {
2514
+ paramSpecWithoutAccess = types_1.TypeVarType.cloneForParamSpecAccess(type, /* access */ undefined);
2515
+ }
2516
+ const paramSpecValue = this.transformParamSpec(paramSpecWithoutAccess, recursionCount);
2517
+ if (paramSpecValue) {
2518
+ const paramSpecType = convertParamSpecValueToType(paramSpecValue);
2519
+ if (type.paramSpecAccess) {
2520
+ if ((0, types_1.isParamSpec)(paramSpecType)) {
2521
+ replacementType = types_1.TypeVarType.cloneForParamSpecAccess(paramSpecType, type.paramSpecAccess);
2522
+ }
2523
+ else {
2524
+ replacementType = types_1.UnknownType.create();
2525
+ }
2526
+ }
2527
+ else {
2528
+ replacementType = paramSpecType;
2479
2529
  }
2480
2530
  }
2481
2531
  }
@@ -2958,16 +3008,6 @@ class ApplySolvedTypeVarsTransformer extends TypeVarTransformer {
2958
3008
  // don't transform that type variable.
2959
3009
  if (typeVar.scopeId && this._typeVarContext.hasSolveForScope(typeVar.scopeId)) {
2960
3010
  let replacement = signatureContext.getTypeVarType(typeVar, !!this._options.useNarrowBoundOnly);
2961
- // If the type is unknown, see if there's a known wide bound that we can use.
2962
- if (replacement &&
2963
- (0, types_1.isUnknown)(replacement) &&
2964
- !this._options.useNarrowBoundOnly &&
2965
- this._options.unknownIfNotFound) {
2966
- const entry = signatureContext.getTypeVar(typeVar);
2967
- if (entry === null || entry === void 0 ? void 0 : entry.wideBound) {
2968
- replacement = entry === null || entry === void 0 ? void 0 : entry.wideBound;
2969
- }
2970
- }
2971
3011
  // If there was no narrow bound but there is a wide bound that
2972
3012
  // contains literals or a TypeVar, we'll use the wide bound even if
2973
3013
  // "useNarrowBoundOnly" is specified.