@uapkg/cli 1.1.9 → 1.2.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.
- package/dist/app/CompositionRoot.d.ts +6 -0
- package/dist/app/CompositionRoot.d.ts.map +1 -1
- package/dist/app/CompositionRoot.js +16 -0
- package/dist/app/CompositionRoot.js.map +1 -1
- package/dist/app/UAPKGApplication.d.ts.map +1 -1
- package/dist/app/UAPKGApplication.js +62 -2
- package/dist/app/UAPKGApplication.js.map +1 -1
- package/dist/build/BuildMetadata.d.ts +12 -0
- package/dist/build/BuildMetadata.d.ts.map +1 -0
- package/dist/build/BuildMetadata.js +6 -0
- package/dist/cli/UAPKGCommandLine.d.ts +98 -3
- package/dist/cli/UAPKGCommandLine.d.ts.map +1 -1
- package/dist/cli/UAPKGCommandLine.js +69 -0
- package/dist/cli/UAPKGCommandLine.js.map +1 -1
- package/dist/cli/parsing/UAPKGCommandLineParser.d.ts.map +1 -1
- package/dist/cli/parsing/UAPKGCommandLineParser.js +8 -1
- package/dist/cli/parsing/UAPKGCommandLineParser.js.map +1 -1
- package/dist/cli/parsing/UAPKGParserRegistry.d.ts.map +1 -1
- package/dist/cli/parsing/UAPKGParserRegistry.js +12 -0
- package/dist/cli/parsing/UAPKGParserRegistry.js.map +1 -1
- package/dist/cli/parsing/modules/LifecycleCommandModule.d.ts +11 -0
- package/dist/cli/parsing/modules/LifecycleCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/LifecycleCommandModule.js +56 -0
- package/dist/cli/parsing/modules/LifecycleCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/LoginCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/LoginCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/LoginCommandModule.js +34 -0
- package/dist/cli/parsing/modules/LoginCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/LogoutCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/LogoutCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/LogoutCommandModule.js +29 -0
- package/dist/cli/parsing/modules/LogoutCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/PublishCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/PublishCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/PublishCommandModule.js +50 -0
- package/dist/cli/parsing/modules/PublishCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/RegistryCommandModule.d.ts.map +1 -1
- package/dist/cli/parsing/modules/RegistryCommandModule.js +31 -2
- package/dist/cli/parsing/modules/RegistryCommandModule.js.map +1 -1
- package/dist/cli/parsing/modules/RequestsCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/RequestsCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/RequestsCommandModule.js +63 -0
- package/dist/cli/parsing/modules/RequestsCommandModule.js.map +1 -0
- package/dist/cli/parsing/modules/WhoamiCommandModule.d.ts +7 -0
- package/dist/cli/parsing/modules/WhoamiCommandModule.d.ts.map +1 -0
- package/dist/cli/parsing/modules/WhoamiCommandModule.js +29 -0
- package/dist/cli/parsing/modules/WhoamiCommandModule.js.map +1 -0
- package/dist/cli-bootstrap.d.ts +2 -0
- package/dist/cli-bootstrap.d.ts.map +1 -0
- package/dist/cli-bootstrap.js +17 -0
- package/dist/cli-bootstrap.js.map +1 -0
- package/dist/cli.js +24 -17
- package/dist/commands/InstallCommand.d.ts.map +1 -1
- package/dist/commands/InstallCommand.js +21 -6
- package/dist/commands/InstallCommand.js.map +1 -1
- package/dist/commands/LoginCommand.d.ts +17 -0
- package/dist/commands/LoginCommand.d.ts.map +1 -0
- package/dist/commands/LoginCommand.js +73 -0
- package/dist/commands/LoginCommand.js.map +1 -0
- package/dist/commands/LogoutCommand.d.ts +15 -0
- package/dist/commands/LogoutCommand.d.ts.map +1 -0
- package/dist/commands/LogoutCommand.js +38 -0
- package/dist/commands/LogoutCommand.js.map +1 -0
- package/dist/commands/PackageLifecycleCommand.d.ts +28 -0
- package/dist/commands/PackageLifecycleCommand.d.ts.map +1 -0
- package/dist/commands/PackageLifecycleCommand.js +134 -0
- package/dist/commands/PackageLifecycleCommand.js.map +1 -0
- package/dist/commands/PostinstallCandidateBuilder.d.ts +1 -1
- package/dist/commands/PostinstallCandidateBuilder.d.ts.map +1 -1
- package/dist/commands/PostinstallCandidateBuilder.js +4 -1
- package/dist/commands/PostinstallCandidateBuilder.js.map +1 -1
- package/dist/commands/PublishCommand.d.ts +32 -0
- package/dist/commands/PublishCommand.d.ts.map +1 -0
- package/dist/commands/PublishCommand.js +260 -0
- package/dist/commands/PublishCommand.js.map +1 -0
- package/dist/commands/RegistryCommand.d.ts +13 -3
- package/dist/commands/RegistryCommand.d.ts.map +1 -1
- package/dist/commands/RegistryCommand.js +115 -11
- package/dist/commands/RegistryCommand.js.map +1 -1
- package/dist/commands/RequestsCommand.d.ts +21 -0
- package/dist/commands/RequestsCommand.d.ts.map +1 -0
- package/dist/commands/RequestsCommand.js +98 -0
- package/dist/commands/RequestsCommand.js.map +1 -0
- package/dist/commands/WhoamiCommand.d.ts +32 -0
- package/dist/commands/WhoamiCommand.d.ts.map +1 -0
- package/dist/commands/WhoamiCommand.js +75 -0
- package/dist/commands/WhoamiCommand.js.map +1 -0
- package/dist/commands/add/DependencyAddResolver.d.ts.map +1 -1
- package/dist/commands/add/DependencyAddResolver.js +4 -2
- package/dist/commands/add/DependencyAddResolver.js.map +1 -1
- package/dist/control-plane/AccountManager.d.ts +110 -0
- package/dist/control-plane/AccountManager.d.ts.map +1 -0
- package/dist/control-plane/AccountManager.js +1014 -0
- package/dist/control-plane/AccountManager.js.map +1 -0
- package/dist/control-plane/ArtifactObserver.d.ts +24 -0
- package/dist/control-plane/ArtifactObserver.d.ts.map +1 -0
- package/dist/control-plane/ArtifactObserver.js +63 -0
- package/dist/control-plane/ArtifactObserver.js.map +1 -0
- package/dist/control-plane/AuthMetadataStore.d.ts +15 -0
- package/dist/control-plane/AuthMetadataStore.d.ts.map +1 -0
- package/dist/control-plane/AuthMetadataStore.js +116 -0
- package/dist/control-plane/AuthMetadataStore.js.map +1 -0
- package/dist/control-plane/AuthStoragePaths.d.ts +11 -0
- package/dist/control-plane/AuthStoragePaths.d.ts.map +1 -0
- package/dist/control-plane/AuthStoragePaths.js +17 -0
- package/dist/control-plane/AuthStoragePaths.js.map +1 -0
- package/dist/control-plane/AuthenticationSelector.d.ts +21 -0
- package/dist/control-plane/AuthenticationSelector.d.ts.map +1 -0
- package/dist/control-plane/AuthenticationSelector.js +64 -0
- package/dist/control-plane/AuthenticationSelector.js.map +1 -0
- package/dist/control-plane/ControlPlaneClient.d.ts +32 -0
- package/dist/control-plane/ControlPlaneClient.d.ts.map +1 -0
- package/dist/control-plane/ControlPlaneClient.js +280 -0
- package/dist/control-plane/ControlPlaneClient.js.map +1 -0
- package/dist/control-plane/ControlPlaneEndpoints.d.ts +13 -0
- package/dist/control-plane/ControlPlaneEndpoints.d.ts.map +1 -0
- package/dist/control-plane/ControlPlaneEndpoints.js +19 -0
- package/dist/control-plane/ControlPlaneEndpoints.js.map +1 -0
- package/dist/control-plane/ControlPlaneTypes.d.ts +168 -0
- package/dist/control-plane/ControlPlaneTypes.d.ts.map +1 -0
- package/dist/control-plane/ControlPlaneTypes.js +93 -0
- package/dist/control-plane/ControlPlaneTypes.js.map +1 -0
- package/dist/control-plane/CredentialStore.d.ts +28 -0
- package/dist/control-plane/CredentialStore.d.ts.map +1 -0
- package/dist/control-plane/CredentialStore.js +87 -0
- package/dist/control-plane/CredentialStore.js.map +1 -0
- package/dist/control-plane/DPoPKeyStore.d.ts +11 -0
- package/dist/control-plane/DPoPKeyStore.d.ts.map +1 -0
- package/dist/control-plane/DPoPKeyStore.js +54 -0
- package/dist/control-plane/DPoPKeyStore.js.map +1 -0
- package/dist/control-plane/GitHubActionsOidcCredentialProvider.d.ts +6 -0
- package/dist/control-plane/GitHubActionsOidcCredentialProvider.d.ts.map +1 -0
- package/dist/control-plane/GitHubActionsOidcCredentialProvider.js +67 -0
- package/dist/control-plane/GitHubActionsOidcCredentialProvider.js.map +1 -0
- package/dist/control-plane/PublishIdempotencyStore.d.ts +18 -0
- package/dist/control-plane/PublishIdempotencyStore.d.ts.map +1 -0
- package/dist/control-plane/PublishIdempotencyStore.js +71 -0
- package/dist/control-plane/PublishIdempotencyStore.js.map +1 -0
- package/dist/control-plane/RegistryGrantLock.d.ts +35 -0
- package/dist/control-plane/RegistryGrantLock.d.ts.map +1 -0
- package/dist/control-plane/RegistryGrantLock.js +199 -0
- package/dist/control-plane/RegistryGrantLock.js.map +1 -0
- package/dist/control-plane/RegistryTrustResolver.d.ts +17 -0
- package/dist/control-plane/RegistryTrustResolver.d.ts.map +1 -0
- package/dist/control-plane/RegistryTrustResolver.js +140 -0
- package/dist/control-plane/RegistryTrustResolver.js.map +1 -0
- package/dist/index.d.ts +16 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -2
- package/dist/index.js.map +1 -1
- package/dist/postinstall/markers/MarkerIntegrityValidator.d.ts +1 -1
- package/dist/prompts/InkPromptService.d.ts +1 -0
- package/dist/prompts/InkPromptService.d.ts.map +1 -1
- package/dist/prompts/InkPromptService.js +20 -0
- package/dist/prompts/InkPromptService.js.map +1 -1
- package/dist/prompts/PromptService.d.ts +2 -0
- package/dist/prompts/PromptService.d.ts.map +1 -1
- package/dist/reporting/JsonReporter.d.ts +2 -0
- package/dist/reporting/JsonReporter.d.ts.map +1 -1
- package/dist/reporting/JsonReporter.js +6 -0
- package/dist/reporting/JsonReporter.js.map +1 -1
- package/package.json +21 -15
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccountManager.js","sourceRoot":"","sources":["../../src/control-plane/AccountManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0D,MAAM,WAAW,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAGL,yCAAyC,GAE1C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,IAAI,MAAM,OAAO,CAAC;AACzB,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAA+B,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,2BAA2B,EAC3B,0BAA0B,EAC1B,wBAAwB,EAGxB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,GAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAA0B,MAAM,wBAAwB,CAAC;AAEvF,MAAM,4BAA4B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACnD,MAAM,yCAAyC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5D,MAAM,mCAAmC,GAAG,CAAC,GAAG,IAAI,CAAC;AACrD,MAAM,4BAA4B,GAAG,EAAE,GAAG,IAAI,CAAC;AAC/C,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAC3C,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AACtD,MAAM,iCAAiC,GAAG,yBAAyB,CAAC;AAwBpE,MAAM,OAAO,UAAW,SAAQ,KAAK;IAEjB;IAEA;IAHlB,YACkB,IAAyB,EACzC,OAAe,EACC,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAqB;QAEzB,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAcD,MAAM,OAAO,cAAc;IAUN;IACA;IACA;IAIA;IAEA;IACA;IAlBF,QAAQ,CAAe;IACvB,gBAAgB,GAAG,IAAI,GAAG,EAGxC,CAAC;IACa,mBAAmB,GAAG,IAAI,GAAG,EAAyB,CAAC;IACvD,SAAS,CAAoB;IAE9C,YACmB,WAAW,IAAI,iBAAiB,EAAE,EAClC,cAAc,IAAI,eAAe,EAAE,EACnC,cAA6B,KAAK,EAAE,GAAG,EAAE,EAAE;QAC1D,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnC,CAAC,EACgB,qBAAqB,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EACzG,SAA6B,EACZ,4BAA4B,4BAA4B,EACxD,wCAAwC,yCAAyC;QATjF,aAAQ,GAAR,QAAQ,CAA0B;QAClC,gBAAW,GAAX,WAAW,CAAwB;QACnC,gBAAW,GAAX,WAAW,CAG3B;QACgB,uBAAkB,GAAlB,kBAAkB,CAAsE;QAExF,8BAAyB,GAAzB,yBAAyB,CAA+B;QACxD,0CAAqC,GAArC,qCAAqC,CAA4C;QAElG,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACnF,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAI,qBAAqB,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,CAAC;IAChH,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,KAAoB;QACxC,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3E,CAAC;IAEM,2BAA2B,CAAC,KAAoB;QACrD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,KAAoB,EAAE,UAAwB,EAAE;QACjE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;QAEzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1E,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,8CAA8C,KAAK,CAAC,KAAK,mCAAmC,KAAK,CAAC,KAAK,iCAAiC,CACzI,CAAC;QACJ,CAAC;QAED,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACzF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,0BAA0B,CAAC,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,6BAA6B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,kBAAsC,CAAC;QAC3C,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,eAAyD,CAAC;QAC9D,IAAI,sBAAmD,CAAC;QACxD,IAAI,mBAA+C,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,KAAK,CAAC,0BAA0B,EAAE,CAAC;YACxD,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAAC;YAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAC1C,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,CAAC,CAAC;YAC1E,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE3D,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC;gBACrC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,YAAY,EAAE,QAAQ,CAAC,WAAW;gBAClC,aAAa,EAAE,MAAM;gBACrB,cAAc,EAAE,aAAa;gBAC7B,qBAAqB,EAAE,MAAM;gBAC7B,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW,EAAE,KAAK,CAAC,UAAU;gBAC7B,2BAA2B,EAAE,KAAK,CAAC,qBAAqB;gBACxD,WAAW,EAAE,UAAU;gBACvB,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,IAAI,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC/C,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACtC,CAAC;YACD,MAAM,0BAA0B,GAAG,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7F,IAAI,0BAA0B,EAAE,CAAC;gBAC/B,UAAU,CAAC,GAAG,CAAC,kBAAkB,EAAE,0BAA0B,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC1C,GAAG,EAAE,CACH,KAAK,CAAC,0BAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE;gBACrE,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,4BAA4B,CAAC;aAChE,CAAC,EACJ,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,kCAAkC,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAC7E,CAAC;YAEF,IAAI,CAAC,EAAE,CAAC,sBAAsB,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;YAC3F,CAAC;YACD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC;YAC5D,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACjE,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YAErE,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE;oBACpC,IAAI,EAAE,qBAAqB;oBAC3B,gBAAgB,EAAE,gBAAgB,CAAC,IAAI;iBACxC,CAAC,CAAC;YACL,CAAC;YACD,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC;YACxE,eAAe,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9F,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC;YAC/C,mBAAmB,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,sBAAsB,EAAE,KAAK,CAAC,6BAA6B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5E,CAAC,EAAE,IAAI,CAAC,qCAAqC,CAAC,CAAC;YAC/C,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,MAAM,CAAC;YACzD,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC;YACxC,IAAI,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;gBACzD,MAAM,IAAI,UAAU,CAClB,sCAAsC,EACtC,6FAA6F,CAC9F,CAAC;YACJ,CAAC;YAED,IAAI,kBAAmC,CAAC;YACxC,IAAI,CAAC;gBACH,kBAAkB,GAAG,KAAK,CAAC,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YAClF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,+BAA+B,CAAC,KAAK,CAAC,CAAC;YAC/C,CAAC;YACD,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC1C,GAAG,EAAE,CACH,KAAK,CAAC,6BAA6B,CACjC,EAAE,EACF,MAAM,EACN,KAAK,CAAC,IAAI,EAAE,EACZ,kBAAkB,EAClB,QAAQ,CAAC,WAAW,EACpB,YAAY,EACZ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAC3C,EACH,CAAC,QAAQ,EAAE,EAAE,CACX,KAAK,CAAC,gCAAgC,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;gBAC3D,aAAa,EAAE,KAAK;gBACpB,MAAM,EAAE,GAAG;gBACX,cAAc,EAAE,IAAI;aACrB,CAAC,CACL,CAAC;YACF,kBAAkB,CAAC,cAAc,EAAE,CAAC;YAEpC,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACvF,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACzF,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;YAC1C,kBAAkB,GAAG,YAAY,CAAC;YAElC,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9D,MAAM,gBAAgB,GAA2B;gBAC/C,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,MAAM,CAAC,YAAY;gBAChC,IAAI;gBACJ,aAAa,EAAE,KAAK,CAAC,KAAK;gBAC1B,eAAe,EAAE,gBAAgB;aAClC,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;YAC9F,kBAAkB,CAAC,cAAc,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,KAAK,0BAA0B,EAAE,CAAC;gBAC9D,MAAM,4BAA4B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;YACpG,CAAC;YACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7F,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,+DAA+D,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9G,CAAC;YACD,IACE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS;gBAC/B,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EACjF,CAAC;gBACD,MAAM,IAAI,UAAU,CAClB,6BAA6B,EAC7B,4FAA4F,KAAK,CAAC,KAAK,kBAAkB,CAC1H,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3G,MAAM,qBAAqB,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACjH,MAAM,QAAQ,GAA0B;gBACtC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,OAAO;gBACP,QAAQ,EAAE,MAAM,CAAC,SAAS;gBAC1B,YAAY;gBACZ,qBAAqB;gBACrB,mBAAmB;gBACnB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;gBACjC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;gBAClD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;gBACxC,aAAa,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;gBACzD,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;aAC1D,CAAC;YAEF,IAAI,kBAAqD,CAAC;YAC1D,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;gBACnD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;gBACjF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;oBACpD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;wBACxB,MAAM,iCAAiC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACvD,CAAC;oBACD,MAAM,IAAI,KAAK,CACb,8CAA8C,KAAK,CAAC,KAAK,mCAAmC,KAAK,CAAC,KAAK,iCAAiC,CACzI,CAAC;gBACJ,CAAC;gBACD,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;oBAC5C,MAAM,IAAI,KAAK,CACb,8CAA8C,KAAK,CAAC,KAAK,mCAAmC,KAAK,CAAC,KAAK,iCAAiC,CACzI,CAAC;gBACJ,CAAC;gBACD,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBAC5E,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;gBACtG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACpC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;oBAC3E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACjD,YAAY,EACZ,gBAAgB,EAChB,QAAQ,CAAC,OAAO,EAChB,0BAA0B,EAC1B,kBAAkB,EAClB,KAAK,CAAC,KAAK,CACZ,CAAC;oBACF,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBACnC,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;wBAC5D,MAAM,UAAU,CAAC,KAAK,CAAC;oBACzB,CAAC;oBACD,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBACpC,mBAAmB,GAAG,IAAI,CAAC;wBAC3B,MAAM,UAAU,CAAC,KAAK,CAAC;oBACzB,CAAC;gBACH,CAAC;gBAED,mBAAmB,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,mBAAmB,EAAE,CAAC;oBACxB,YAAY,CAAC,mBAAmB,CAAC,CAAC;oBAClC,mBAAmB,GAAG,SAAS,CAAC;gBAClC,CAAC;gBACD,kBAAkB,GAAG,eAAe,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,MAAM,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,QAAQ,GAAsB,EAAE,CAAC;YACrC,IAAI,kBAAkB,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,QAAQ,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,CACxD,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CACnE,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,QAAQ,GAAG;wBACT,8KAA8K;qBAC/K,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,mBAAmB,EAAE,CAAC;gBACxB,YAAY,CAAC,mBAAmB,CAAC,CAAC;gBAClC,mBAAmB,GAAG,SAAS,CAAC;YAClC,CAAC;YACD,MAAM,OAAO,GACX,KAAK,YAAY,UAAU;gBACzB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,sBAAsB,EAAE,MAAM,CAAC,OAAO,IAAI,sBAAsB,CAAC,MAAM,CAAC,MAAM,YAAY,UAAU;oBACpG,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM;oBACtC,CAAC,CAAC,KAAK,CAAC;YACd,IAAI,kBAAkB,IAAI,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvE,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtF,CAAC;YACD,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAChF,MAAM,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,UAAU,CAAC;QACnB,CAAC;gBAAS,CAAC;YACT,IAAI,mBAAmB;gBAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;YAC3D,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,KAAoB,EAAE,MAAgC;QACrF,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,0BAA0B,CAAC,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YACrD,OAAO;gBACL,KAAK;gBACL,UAAU,EAAE;oBACV,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,MAAM,CAAC,KAAK;oBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,aAAa,EAAE,KAAK,CAAC,KAAK;oBAC1B,eAAe;iBAChB;aACF,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YACpD,qEAAqE;YACrE,qEAAqE;YACrE,uDAAuD;YACvD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;YAChF,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACnE,IAAI,eAAe,IAAI,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;gBACvE,OAAO;oBACL,KAAK,EAAE,YAAY;oBACnB,UAAU,EAAE;wBACV,IAAI,EAAE,MAAM;wBACZ,WAAW,EAAE,eAAe,CAAC,KAAK;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;wBAC1B,aAAa,EAAE,KAAK,CAAC,KAAK;wBAC1B,eAAe;qBAChB;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI;gBAAE,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,YAAY,CAAC,mBAAmB,EAAE,CAAC;gBAC5E,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YAED,wEAAwE;YACxE,mEAAmE;YACnE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;YACpF,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,wBAAwB,KAAK,CAAC,KAAK,2EAA2E,KAAK,CAAC,KAAK,WAAW,CACrI,CAAC;YACJ,CAAC;YACD,IAAI,aAA0C,CAAC;YAC/C,IAAI,CAAC;gBACH,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC3C,GAAG,EAAE,CACH,KAAK,CAAC,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE;oBACrE,IAAI,EAAE,IAAI;oBACV,oBAAoB,EAAE;wBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;qBACjC;iBACF,CAAC,EACJ,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CACtE,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;oBAChF,MAAM,YAAY,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAChF,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAChC,CAAC;oBACF,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC;oBAC/E,MAAM,IAAI,2BAA2B,CACnC,yFAAyF,EACzF,KAAK,CAAC,KAAK,EACX,eAAe,EACf,eAAe,EACf,aAAa,EACb,GAAG,EACH,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;gBACJ,CAAC;gBACD,IACE,KAAK,YAAY,KAAK,CAAC,iBAAiB;oBACxC,CAAC,KAAK,CAAC,KAAK,KAAK,eAAe,IAAI,KAAK,CAAC,KAAK,KAAK,eAAe,CAAC,EACpE,CAAC;oBACD,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,CAAC,KAAK,sDAAsD,KAAK,CAAC,KAAK,yCAAyC,EAC9I,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,IAAI,aAAa,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;YAC/F,CAAC;YACD,IAAI,aAAa,CAAC,aAAa,IAAI,aAAa,CAAC,aAAa,KAAK,YAAY,EAAE,CAAC;gBAChF,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,qBAAqB,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;YAC9F,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;YACnF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACnG,OAAO;gBACL,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE;oBACV,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,aAAa,CAAC,YAAY;oBACvC,IAAI;oBACJ,aAAa,EAAE,KAAK,CAAC,KAAK;oBAC1B,eAAe;iBAChB;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAoB,EAAE,SAAS,GAAG,KAAK;QACzD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK;gBAAE,OAAO,eAAe,CAAC;YAEnC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CACb,4CAA4C,KAAK,CAAC,KAAK,uIAAuI,EAC9L,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;gBACxC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC;aACrD,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,KAAoB;QACnD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACvE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,KAAK,mCAAmC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;QAC/G,CAAC;QACD,IAAI,KAAK,CAAC,qBAAqB,KAAK,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CACb,kCAAkC,KAAK,CAAC,KAAK,2FAA2F,KAAK,CAAC,KAAK,mBAAmB,CACvK,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,yEAAyE;QACzE,2EAA2E;QAC3E,sEAAsE;QACtE,WAAW;QACX,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,CAAC,KAAK,+CAA+C,KAAK,CAAC,KAAK,WAAW,CAC1G,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,KAA4B;QACzD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC7E,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;QACvG,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACpG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC,KAAK,KAAK,CAAC,mBAAmB,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,YAAgC,EAChC,UAAkC,EAClC,eAAuB,EACvB,0BAAyC,EACzC,MAAmB,EACnB,aAAqB;QAErB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACzE,IAAI,SAAS,CAAC,EAAE,KAAK,eAAe,IAAI,SAAS,CAAC,eAAe,KAAK,0BAA0B,EAAE,CAAC;gBACjG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,CAAC;YACD,OAAO,IAAI,CAAC,sBAAsB,CAChC,YAAY,EACZ,UAAU,EACV,eAAe,EACf,0BAA0B,EAC1B,aAAa,CACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,iCAAiC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iCAAiC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/E,CAAC;YACD,IAAI,yCAAyC,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;YACzF,OAAO,IAAI,CAAC,sBAAsB,CAChC,YAAY,EACZ,UAAU,EACV,eAAe,EACf,0BAA0B,EAC1B,aAAa,CACd,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,YAAgC,EAChC,UAAkC,EAClC,eAAuB,EACvB,0BAAyC,EACzC,aAAqB;QAErB,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QACxE,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAChF,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,eAAe,IAAI,QAAQ,CAAC,KAAK,CAAC,eAAe,KAAK,0BAA0B,EAAE,CAAC;gBAC3G,eAAe,GAAG,KAAK,CAAC;YAC1B,CAAC;iBAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC9C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yEAAyE;QAC3E,CAAC;QAED,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBACzE,IAAI,SAAS,CAAC,EAAE,KAAK,eAAe,IAAI,SAAS,CAAC,eAAe,KAAK,0BAA0B,EAAE,CAAC;oBACjG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,mEAAmE;gBACnE,yDAAyD;YAC3D,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAChF,IACE,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,eAAe;gBACrC,QAAQ,CAAC,KAAK,CAAC,eAAe,KAAK,0BAA0B;gBAC7D,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,EAClC,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,+BAA+B,CAAC,aAAa,CAAC,EAAE,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,QAA+B,EAC/B,OAA4B,EAC5B,YAAoB,EACpB,QAAgC,EAChC,MAAoB;QAEpB,IAAI,sBAAsB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;YACzE,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,sBAAsB,GAAG,IAAI,CAAC;YAC9B,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,EAAE,cAAc,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAuB;gBAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC3C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;aACxD,CAAC;YACF,IAAI,qBAAyC,CAAC;YAC9C,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;gBACvC,OAAO,CAAC,IAAI,CACV,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CACvG,CAAC;YACJ,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACzD,IAAI,qBAAqB,KAAK,SAAS,IAAI,cAAc,CAAC,qBAAqB,CAAC,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxG,MAAM,IAAI,UAAU,CAClB,cAAc,EACd,2HAA2H,CAC5H,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,QAA+B,EAC/B,QAAgC;QAEhC,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACvD,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC;SACvG,CAAC,CAAC;QACH,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,UAAU,CAClB,cAAc,EACd,+HAA+H,CAChI,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAC3C,QAA+B,EAC/B,QAAgC;QAEhC,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,IACE,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO;YACrC,CAAC,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY;gBAC9C,QAAQ,CAAC,qBAAqB,KAAK,QAAQ,CAAC,qBAAqB,CAAC,EACpE,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SACxD,CAAC,CAAC;QACH,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,EAAE,CAAC;YAC/D,QAAQ,CAAC,IAAI,CACX,6LAA6L,CAC9L,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,EAA6B,EAC7B,MAAoB,EACpB,YAAoB,EACpB,IAAsB;QAEtB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,IAAI,CAAC,kBAAkB,CAC3B,GAAG,EAAE,CACH,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE;YAC9D,oBAAoB,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE;YAC1D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,4BAA4B,CAAC;YACzD,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;gBAC1C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC3D,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACtC,OAAO,QAAQ,CAAC;YAClB,CAAC;SACF,CAAC,EACJ,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CACxD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,MAAW;QAChC,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE;gBAC9C,SAAS,EAAE,MAAM;gBACjB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,4BAA4B,CAAC;aAC1D,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,8DAA8D,MAAM,CAAC,IAAI,yBAAyB,YAAY,CAAC,IAAI,IAAI,CACxH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,mDAAmD,MAAM,CAAC,IAAI,yBAAyB,YAAY,CAAC,IAAI,WAAW,QAAQ,CAAC,MAAM,IAAI,CACvI,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,2BAA2B,CAAC,EAA6B;QAC/D,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,CAAC,EAAE,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC,qCAAqC,EAAE,CAAC;YAClG,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAC;QAChH,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,EAAE,CAAC,gCAAgC,IAAI,CAAC,EAAE,CAAC,gCAAgC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjG,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,EAAE,CAAC,iCAAiC,IAAI,CAAC,EAAE,CAAC,iCAAiC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACpG,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAEO,0BAA0B,CAChC,EAA6B,EAC7B,KAAoB,EACpB,eAAyC;QAEzC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChG,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1F,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,0BAA0B,CAAC,KAAK,CAAC,KAAK,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAEO,MAAM;QACZ,OAAO;YACL,SAAS,EAAE,mBAAmB;YAC9B,0BAA0B,EAAE,MAAM;SACnC,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,KAAoB;QAC5C,IACE,KAAK,CAAC,MAAM,KAAK,0BAA0B;YAC3C,KAAK,CAAC,UAAU,KAAK,uBAAuB;YAC5C,KAAK,CAAC,QAAQ,KAAK,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,EACrD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAEO,sBAAsB;QAC5B,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAAE,OAAO;QACtC,MAAM,IAAI,KAAK,CACb;YACE,uDAAuD;YACvD,EAAE;YACF,6DAA6D;YAC7D,EAAE;YACF,8EAA8E;YAC9E,4FAA4F;SAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,OAAgC,EAChC,eAAmD;QAEnD,IAAI,CAAC;YACH,OAAO,MAAM,eAAe,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAChD,OAAO,eAAe,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,KAA4B,EAAE,MAAgC;QACxF,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAI,KAAoB,EAAE,SAA2B;QACxF,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACxE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;QACvG,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CACtB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAOD,SAAS,iBAAiB,CAAC,MAAwB;IACjD,MAAM,MAAM,GAAG,MAA2B,CAAC;IAC3C,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AASD,MAAM,OAAO,6BAA6B;IAYrB;IACA;IACA;IACA;IACD;IAfV,eAAe,CAAyC;IACxD,eAAe,CAAmD;IAClE,cAAc,CAA+B;IAC7C,eAAe,CAAgC;IAC/C,OAAO,CAAkB;IACzB,KAAK,GAA0B,WAAW,CAAC;IAC3C,aAAa,CAAc;IAC3B,eAAe,CAAkB;IACjC,UAAU,CAAiB;IAEnC,YACmB,MAAc,EACd,YAAoB,EACpB,YAAoB,EACpB,aAAkB,EACnB,WAAmB;QAJlB,WAAM,GAAN,MAAM,CAAQ;QACd,iBAAY,GAAZ,YAAY,CAAQ;QACpB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,kBAAa,GAAb,aAAa,CAAK;QACnB,gBAAW,GAAX,WAAW,CAAQ;IAClC,CAAC;IAEG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAW;QACpC,MAAM,YAAY,GAAG,sBAAsB,CAAC;QAC5C,IAAI,QAAmD,CAAC;QACxD,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC9B,OAAO;YACT,CAAC;YACD,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,YAAY,GAAG,aAAa,OAAO,CAAC,IAAI,EAAE,CAAC;QACjD,QAAQ,GAAG,IAAI,6BAA6B,CAC1C,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,IAAI,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,EAC/C,UAAU,YAAY,GAAG,YAAY,EAAE,CACxC,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,aAAsB;QACpE,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QACtD,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,aAAa,IAAI,IAAI,UAAU,CAAC,cAAc,EAAE,gDAAgD,CAAC,CAAC;QAC/G,CAAC;QACD,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,OAAO,CAA+B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnF,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;oBAAE,OAAO;gBACvC,IAAI,CAAC,SAAS,CACZ,IAAI,UAAU,CACZ,6BAA6B,EAC7B,aAAa;oBACX,CAAC,CAAC,yFAAyF,aAAa,kBAAkB;oBAC1H,CAAC,CAAC,0FAA0F,CAC/F,CACF,CAAC;YACJ,CAAC,EAAE,SAAS,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,cAAc,EAAE,gDAAgD,CAAC,CAAC,CAAC;IACnG,CAAC;IAEO,OAAO,CAAC,OAAwB,EAAE,QAAwB;QAChE,IACE,IAAI,CAAC,KAAK,KAAK,WAAW;YAC1B,OAAO,CAAC,MAAM,KAAK,KAAK;YACxB,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY;YAC1C,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,EACxF,CAAC;YACD,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,GAAQ,CAAC;QACb,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1F,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC;QACjC,IAAI,IAAI,CAAC,OAAO;YAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,MAAM,OAAO,GAAiC;YAC5C,GAAG;YACH,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;SACxD,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QAC/B,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IAClC,CAAC;IAEO,QAAQ,CAAC,QAAwB,EAAE,OAA+B;QACxE,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC9C,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,MAAM,GAAG,GAAG,EAAE;gBAClB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;gBACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE/B,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;gBACjD,MAAM,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7C,QAAQ,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpE,IAAI,CAAC;gBACH,QAAQ;qBACL,SAAS,CAAC,GAAG,EAAE;oBACd,QAAQ,EAAE,QAAQ,CAAC,IAAI;oBACvB,eAAe,EAAE,UAAU;oBAC3B,iBAAiB,EAAE,aAAa;oBAChC,gBAAgB,EAAE,GAAG;oBACrB,wBAAwB,EAAE,SAAS;oBACnC,UAAU,EAAE,OAAO;iBACpB,CAAC;qBACD,GAAG,EAAE,CAAC;YACX,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEO,SAAS,CAAC,KAAiB;QACjC,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO;QACpC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO;YAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,CAAC;YAChE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF;AAED,SAAS,qBAAqB,CAAC,QAAwB;IACrD,QAAQ;SACL,SAAS,CAAC,GAAG,EAAE;QACd,eAAe,EAAE,UAAU;QAC3B,cAAc,EAAE,2BAA2B;QAC3C,wBAAwB,EAAE,SAAS;KACpC,CAAC;SACD,GAAG,CAAC,YAAY,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC;IACpE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAW;IACnC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC,YAAY,CAAC,QAAQ,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,mCAAmC,CAAC;IACxG,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,eAAe,CAAC,KAAoB;IAC3C,OAAO,IAAI,KAAK,CACd;QACE,wBAAwB,KAAK,CAAC,KAAK,kFAAkF;QACrH,EAAE;QACF,4FAA4F;QAC5F,uEAAuE;QACvE,EAAE;QACF,gCAAgC,KAAK,CAAC,KAAK,kDAAkD;KAC9F,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CAAC,aAAqB;IAC1D,OAAO,IAAI,UAAU,CACnB,6BAA6B,EAC7B,0HAA0H,aAAa,kBAAkB,CAC1J,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CAAC,aAAqB;IAC5D,OAAO,IAAI,UAAU,CACnB,cAAc,EACd;QACE,qEAAqE;QACrE,qFAAqF;QACrF,iCAAiC,aAAa,wCAAwC;KACvF,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CAAC,aAAqB;IAC9D,OAAO,IAAI,UAAU,CACnB,gCAAgC,EAChC,wBAAwB,aAAa,sHAAsH,aAAa,yDAAyD,CAClO,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,aAAqB;IACzD,OAAO,IAAI,UAAU,CACnB,gCAAgC,EAChC,sFAAsF,aAAa,iEAAiE,aAAa,gCAAgC,CAClN,CAAC;AACJ,CAAC;AAED,SAAS,iCAAiC,CAAC,KAAwB;IACjE,OAAO,IAAI,UAAU,CAAC,gCAAgC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,iCAAiC,CAAC,KAAc;IACvD,OAAO,KAAK,YAAY,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,oCAAoC,CAAC;AACnG,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAA2C,EAC3C,OAA0C;IAE1C,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,KAAK,OAAO,CAAC;IACvD,OAAO,CACL,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;QACpC,QAAQ,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY;QAC9C,QAAQ,CAAC,qBAAqB,KAAK,OAAO,CAAC,qBAAqB,CACjE,CAAC;AACJ,CAAC;AAED,SAAS,yCAAyC,CAAC,KAAc;IAC/D,IAAI,CAAC,CAAC,KAAK,YAAY,iBAAiB,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtF,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IAC5D,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAsC,EAAE,KAAyB;IAC1F,IAAI,CAAC;QACH,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;IAC3D,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CAAC,KAAc;IACrD,IAAI,KAAK,YAAY,KAAK,CAAC,0BAA0B,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,4BAA4B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,6BAA6B,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC3E,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;YACnC,OAAO,IAAI,UAAU,CACnB,qBAAqB,EACrB,iBAAiB,WAAW,IAAI,qCAAqC,kBAAkB,EACvF,UAAU,CACX,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,UAAU,CACnB,mBAAmB,EACnB,iBAAiB,WAAW,IAAI,gDAAgD,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EACzH,UAAU,CACX,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,UAAU,CACnB,sCAAsC,EACtC,0EAA0E,CAC3E,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,iCAAiC,CAAC,KAAK,CAAC;QAAE,OAAO,iCAAiC,CAAC,KAAK,CAAC,CAAC;IAC9F,IAAI,KAAK,YAAY,KAAK,CAAC,0BAA0B;QAAE,OAAO,+BAA+B,CAAC,KAAK,CAAC,CAAC;IACrG,IAAI,KAAK,YAAY,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,4BAA4B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,6BAA6B,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC3E,OAAO,IAAI,UAAU,CACnB,mBAAmB,EACnB,iBAAiB,WAAW,IAAI,gDAAgD,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EACzH,UAAU,CACX,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,cAAc,EAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAyB;IAC7D,OAAO,KAAK,IAAI,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/E,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAyB;IAC9D,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,EAAE;QAChD,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,iCAAiC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,CAAC,CAAC;SACC,IAAI,CAAC,EAAE,CAAC;SACR,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IACV,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,SAAS,iCAAiC,CAAC,SAAiB;IAC1D,OAAO,CACL,SAAS,IAAI,IAAI;QACjB,CAAC,SAAS,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC;QACxC,SAAS,KAAK,MAAM;QACpB,SAAS,KAAK,MAAM;QACpB,SAAS,KAAK,MAAM;QACpB,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC;QAC5C,SAAS,KAAK,MAAM;QACpB,SAAS,KAAK,MAAM;QACpB,CAAC,SAAS,IAAI,MAAM,IAAI,SAAS,IAAI,MAAM,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO;QACL,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;KAC/C,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAc,EAAE,SAAiB;IAC9E,MAAM,UAAU,GACd,KAAK,YAAY,iBAAiB,IAAI,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACpH,MAAM,MAAM,GACV,KAAK,YAAY,iBAAiB;QAClC,KAAK,CAAC,MAAM,KAAK,SAAS;QAC1B,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9B,KAAK,CAAC,MAAM,IAAI,GAAG;QACnB,KAAK,CAAC,MAAM,IAAI,GAAG;QACjB,CAAC,CAAC,KAAK,CAAC,MAAM;QACd,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,IAAI,GAAG;QACX,SAAS;QACT,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5C,CAAC;IACF,OAAO,yCAAyC,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,IAAI,KAAK,YAAY,UAAU;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACtD,IAAI,KAAK,YAAY,2BAA2B,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnF,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QACnE,OAAO,yBAAyB,IAAI,IAAI,MAAM,mDAAmD,KAAK,CAAC,aAAa,8EAA8E,CAAC;IACrM,CAAC;IACD,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAClE,OAAO,GAAG,KAAK,CAAC,OAAO,gDAAgD,CAAC;QAC1E,CAAC;QACD,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY;IAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,CACL,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;QAC9B,UAAU,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACxC,UAAU,KAAK,uCAAuC;QACtD,UAAU,KAAK,0BAA0B;QACzC,UAAU,KAAK,0BAA0B,CAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface ObservedArtifact {
|
|
2
|
+
/** Exactly `sha256:` + 64 lowercase hex characters. */
|
|
3
|
+
readonly sha256: string;
|
|
4
|
+
readonly sizeBytes: number;
|
|
5
|
+
/** Local path of the exact bytes that were hashed (source of claims). */
|
|
6
|
+
readonly archivePath: string;
|
|
7
|
+
/** Removes any temporary download; no-op for caller-provided archives. */
|
|
8
|
+
cleanup(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Produces the client-observed artifact facts for a publish submission:
|
|
12
|
+
* the exact bytes are hashed and later read for packaged claims, so the
|
|
13
|
+
* archive — not the working tree — is what gets published (archive wins).
|
|
14
|
+
*/
|
|
15
|
+
export declare class ArtifactObserver {
|
|
16
|
+
/** Observes a caller-provided local archive without copying it. */
|
|
17
|
+
observeLocalArchive(archivePath: string): Promise<ObservedArtifact>;
|
|
18
|
+
/**
|
|
19
|
+
* Downloads the named uploaded release asset over unauthenticated HTTPS
|
|
20
|
+
* (redirects followed) and observes the received bytes.
|
|
21
|
+
*/
|
|
22
|
+
downloadReleaseAsset(repository: string, releaseTag: string, assetName: string): Promise<ObservedArtifact>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ArtifactObserver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArtifactObserver.d.ts","sourceRoot":"","sources":["../../src/control-plane/ArtifactObserver.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAiBD;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,mEAAmE;IACtD,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAShF;;;OAGG;IACU,oBAAoB,CAC/B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC;CA0B7B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { createReadStream, createWriteStream } from 'node:fs';
|
|
3
|
+
import { mkdtemp, rm, stat } from 'node:fs/promises';
|
|
4
|
+
import { tmpdir } from 'node:os';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { Readable } from 'node:stream';
|
|
7
|
+
import { pipeline } from 'node:stream/promises';
|
|
8
|
+
async function hashFile(path) {
|
|
9
|
+
const hash = createHash('sha256');
|
|
10
|
+
let sizeBytes = 0;
|
|
11
|
+
const source = createReadStream(path);
|
|
12
|
+
source.on('data', (chunk) => {
|
|
13
|
+
sizeBytes += typeof chunk === 'string' ? Buffer.byteLength(chunk) : chunk.length;
|
|
14
|
+
hash.update(chunk);
|
|
15
|
+
});
|
|
16
|
+
await new Promise((resolve, reject) => {
|
|
17
|
+
source.on('end', resolve);
|
|
18
|
+
source.on('error', reject);
|
|
19
|
+
});
|
|
20
|
+
return { sha256: `sha256:${hash.digest('hex')}`, sizeBytes };
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Produces the client-observed artifact facts for a publish submission:
|
|
24
|
+
* the exact bytes are hashed and later read for packaged claims, so the
|
|
25
|
+
* archive — not the working tree — is what gets published (archive wins).
|
|
26
|
+
*/
|
|
27
|
+
export class ArtifactObserver {
|
|
28
|
+
/** Observes a caller-provided local archive without copying it. */
|
|
29
|
+
async observeLocalArchive(archivePath) {
|
|
30
|
+
const fileInfo = await stat(archivePath).catch(() => null);
|
|
31
|
+
if (!fileInfo?.isFile()) {
|
|
32
|
+
throw new Error(`The archive at "${archivePath}" does not exist or is not a file.`);
|
|
33
|
+
}
|
|
34
|
+
const digest = await hashFile(archivePath);
|
|
35
|
+
return { ...digest, archivePath, cleanup: async () => { } };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Downloads the named uploaded release asset over unauthenticated HTTPS
|
|
39
|
+
* (redirects followed) and observes the received bytes.
|
|
40
|
+
*/
|
|
41
|
+
async downloadReleaseAsset(repository, releaseTag, assetName) {
|
|
42
|
+
const url = `https://github.com/${repository}/releases/download/${encodeURIComponent(releaseTag)}/${encodeURIComponent(assetName)}`;
|
|
43
|
+
const tempDir = await mkdtemp(join(tmpdir(), 'uapkg-publish-'));
|
|
44
|
+
const archivePath = join(tempDir, assetName);
|
|
45
|
+
const cleanup = async () => {
|
|
46
|
+
await rm(tempDir, { recursive: true, force: true });
|
|
47
|
+
};
|
|
48
|
+
try {
|
|
49
|
+
const response = await fetch(url, { redirect: 'follow', signal: AbortSignal.timeout(120_000) });
|
|
50
|
+
if (!response.ok || !response.body) {
|
|
51
|
+
throw new Error(`Unable to download the release asset (${response.status}). Confirm the GitHub Release "${releaseTag}" has an uploaded asset named "${assetName}" and that the repository is accessible without credentials.`);
|
|
52
|
+
}
|
|
53
|
+
await pipeline(Readable.fromWeb(response.body), createWriteStream(archivePath));
|
|
54
|
+
const digest = await hashFile(archivePath);
|
|
55
|
+
return { ...digest, archivePath, cleanup };
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
await cleanup();
|
|
59
|
+
throw error instanceof Error ? error : new Error(String(error));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=ArtifactObserver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArtifactObserver.js","sourceRoot":"","sources":["../../src/control-plane/ArtifactObserver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { RegistryGrantMetadata } from './ControlPlaneTypes.js';
|
|
2
|
+
import { type RegistryGrantLock } from './RegistryGrantLock.js';
|
|
3
|
+
export declare class AuthMetadataStore {
|
|
4
|
+
private readonly filePath;
|
|
5
|
+
private readonly mutationLock;
|
|
6
|
+
constructor(filePath?: string, mutationLock?: RegistryGrantLock);
|
|
7
|
+
get path(): string;
|
|
8
|
+
find(issuer: string, registryId: string): Promise<RegistryGrantMetadata | undefined>;
|
|
9
|
+
upsert(metadata: RegistryGrantMetadata): Promise<void>;
|
|
10
|
+
remove(issuer: string, registryId: string): Promise<void>;
|
|
11
|
+
private read;
|
|
12
|
+
private write;
|
|
13
|
+
private withMutationLock;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=AuthMetadataStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthMetadataStore.d.ts","sourceRoot":"","sources":["../../src/control-plane/AuthMetadataStore.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAoB,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAsCvF,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAH3B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;gBAG9B,QAAQ,SAAyC,EAClE,YAAY,CAAC,EAAE,iBAAiB;IAKlC,IAAW,IAAI,IAAI,MAAM,CAExB;IAEY,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAIpF,MAAM,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAatD,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAWxD,IAAI;YA+BJ,KAAK;YAUL,gBAAgB;CAG/B"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { mkdir, readFile, rename, writeFile } from 'node:fs/promises';
|
|
4
|
+
import { dirname, resolve } from 'node:path';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { resolveAuthStoragePaths } from './AuthStoragePaths.js';
|
|
7
|
+
import { FileRegistryGrantLock } from './RegistryGrantLock.js';
|
|
8
|
+
const AUTH_METADATA_LOCK_NAMESPACE = 'urn:uapkg:auth-metadata';
|
|
9
|
+
const accountSchema = z
|
|
10
|
+
.object({
|
|
11
|
+
id: z.uuid(),
|
|
12
|
+
username: z.string().min(1),
|
|
13
|
+
displayName: z.string().min(1),
|
|
14
|
+
})
|
|
15
|
+
.strict();
|
|
16
|
+
const grantSchema = z
|
|
17
|
+
.object({
|
|
18
|
+
issuer: z.url(),
|
|
19
|
+
registryId: z.uuid(),
|
|
20
|
+
registryName: z.string().min(1),
|
|
21
|
+
grantId: z.uuid(),
|
|
22
|
+
clientId: z.string().min(1),
|
|
23
|
+
keyReference: z.string().min(1),
|
|
24
|
+
refreshTokenReference: z.string().min(1),
|
|
25
|
+
publicKeyThumbprint: z.string().min(1),
|
|
26
|
+
deviceName: z.string().min(1),
|
|
27
|
+
repositoryFingerprint: z.string().regex(/^sha256:[0-9a-f]{64}$/),
|
|
28
|
+
account: accountSchema,
|
|
29
|
+
createdAt: z.number().int().nonnegative(),
|
|
30
|
+
idleExpiresAt: z.number().int().positive(),
|
|
31
|
+
expiresAt: z.number().int().positive(),
|
|
32
|
+
})
|
|
33
|
+
.strict();
|
|
34
|
+
const fileSchema = z
|
|
35
|
+
.object({
|
|
36
|
+
schemaVersion: z.literal(1),
|
|
37
|
+
grants: z.record(z.string(), grantSchema),
|
|
38
|
+
})
|
|
39
|
+
.strict();
|
|
40
|
+
export class AuthMetadataStore {
|
|
41
|
+
filePath;
|
|
42
|
+
mutationLock;
|
|
43
|
+
constructor(filePath = resolveAuthStoragePaths().metadataFile, mutationLock) {
|
|
44
|
+
this.filePath = filePath;
|
|
45
|
+
this.mutationLock = mutationLock ?? new FileRegistryGrantLock(resolveAuthStoragePaths(filePath).locksDirectory);
|
|
46
|
+
}
|
|
47
|
+
get path() {
|
|
48
|
+
return this.filePath;
|
|
49
|
+
}
|
|
50
|
+
async find(issuer, registryId) {
|
|
51
|
+
return (await this.read()).grants[grantKey(issuer, registryId)];
|
|
52
|
+
}
|
|
53
|
+
async upsert(metadata) {
|
|
54
|
+
await this.withMutationLock(async () => {
|
|
55
|
+
const current = await this.read();
|
|
56
|
+
await this.write({
|
|
57
|
+
schemaVersion: 1,
|
|
58
|
+
grants: {
|
|
59
|
+
...current.grants,
|
|
60
|
+
[grantKey(metadata.issuer, metadata.registryId)]: metadata,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
async remove(issuer, registryId) {
|
|
66
|
+
await this.withMutationLock(async () => {
|
|
67
|
+
const current = await this.read();
|
|
68
|
+
const key = grantKey(issuer, registryId);
|
|
69
|
+
if (!(key in current.grants))
|
|
70
|
+
return;
|
|
71
|
+
const next = { ...current.grants };
|
|
72
|
+
delete next[key];
|
|
73
|
+
await this.write({ schemaVersion: 1, grants: next });
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
async read() {
|
|
77
|
+
if (!existsSync(this.filePath)) {
|
|
78
|
+
return { schemaVersion: 1, grants: {} };
|
|
79
|
+
}
|
|
80
|
+
let raw;
|
|
81
|
+
try {
|
|
82
|
+
raw = await readFile(this.filePath, 'utf8');
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
throw new Error(`Unable to read saved UAPKG login metadata at ${this.filePath}.`, { cause: error });
|
|
86
|
+
}
|
|
87
|
+
let json;
|
|
88
|
+
try {
|
|
89
|
+
json = JSON.parse(raw);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
throw new Error(`Saved UAPKG login metadata at ${this.filePath} is not valid JSON. Move it aside and run \`uapkg login\` again.`, { cause: error });
|
|
93
|
+
}
|
|
94
|
+
const parsed = fileSchema.safeParse(json);
|
|
95
|
+
if (!parsed.success) {
|
|
96
|
+
throw new Error(`Saved UAPKG login metadata at ${this.filePath} is invalid. Move it aside and run \`uapkg login\` again.`);
|
|
97
|
+
}
|
|
98
|
+
return parsed.data;
|
|
99
|
+
}
|
|
100
|
+
async write(value) {
|
|
101
|
+
await mkdir(dirname(this.filePath), { recursive: true });
|
|
102
|
+
const temporaryPath = `${this.filePath}.${process.pid}.${randomUUID()}.tmp`;
|
|
103
|
+
await writeFile(temporaryPath, `${JSON.stringify(value, null, 2)}\n`, {
|
|
104
|
+
encoding: 'utf8',
|
|
105
|
+
mode: 0o600,
|
|
106
|
+
});
|
|
107
|
+
await rename(temporaryPath, this.filePath);
|
|
108
|
+
}
|
|
109
|
+
async withMutationLock(operation) {
|
|
110
|
+
return this.mutationLock.withLock(AUTH_METADATA_LOCK_NAMESPACE, resolve(this.filePath), operation);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function grantKey(issuer, registryId) {
|
|
114
|
+
return `${issuer.replace(/\/+$/, '')}|${registryId.toLowerCase()}`;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=AuthMetadataStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthMetadataStore.js","sourceRoot":"","sources":["../../src/control-plane/AuthMetadataStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface AuthStoragePaths {
|
|
2
|
+
readonly metadataFile: string;
|
|
3
|
+
readonly locksDirectory: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Resolves the CLI-owned files used for persistent authentication state.
|
|
7
|
+
* An explicit metadata path keeps the historical custom-store behavior by
|
|
8
|
+
* placing its locks alongside that file.
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveAuthStoragePaths(metadataFile?: string): AuthStoragePaths;
|
|
11
|
+
//# sourceMappingURL=AuthStoragePaths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthStoragePaths.d.ts","sourceRoot":"","sources":["../../src/control-plane/AuthStoragePaths.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAM/E"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { dirname, join } from 'node:path';
|
|
2
|
+
import { resolveActiveUapkgProfileRoot } from '@uapkg/common';
|
|
3
|
+
const AUTH_METADATA_FILE_NAME = 'auth.json';
|
|
4
|
+
const AUTH_LOCKS_DIRECTORY_NAME = 'auth-locks';
|
|
5
|
+
/**
|
|
6
|
+
* Resolves the CLI-owned files used for persistent authentication state.
|
|
7
|
+
* An explicit metadata path keeps the historical custom-store behavior by
|
|
8
|
+
* placing its locks alongside that file.
|
|
9
|
+
*/
|
|
10
|
+
export function resolveAuthStoragePaths(metadataFile) {
|
|
11
|
+
const resolvedMetadataFile = metadataFile ?? join(resolveActiveUapkgProfileRoot(), AUTH_METADATA_FILE_NAME);
|
|
12
|
+
return {
|
|
13
|
+
metadataFile: resolvedMetadataFile,
|
|
14
|
+
locksDirectory: join(dirname(resolvedMetadataFile), AUTH_LOCKS_DIRECTORY_NAME),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=AuthStoragePaths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthStoragePaths.js","sourceRoot":"","sources":["../../src/control-plane/AuthStoragePaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,uBAAuB,GAAG,WAAW,CAAC;AAC5C,MAAM,yBAAyB,GAAG,YAAY,CAAC;AAO/C;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,YAAqB;IAC3D,MAAM,oBAAoB,GAAG,YAAY,IAAI,IAAI,CAAC,6BAA6B,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAC5G,OAAO;QACL,YAAY,EAAE,oBAAoB;QAClC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,yBAAyB,CAAC;KAC/E,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { PromptService } from '../prompts/PromptService.js';
|
|
2
|
+
import type { AccountManager } from './AccountManager.js';
|
|
3
|
+
import type { ControlPlaneCredential } from './ControlPlaneClient.js';
|
|
4
|
+
import type { ControlPlaneAuthMode, RegistryTrust, UAPKGCliScope } from './ControlPlaneTypes.js';
|
|
5
|
+
import { GitHubActionsOidcCredentialProvider } from './GitHubActionsOidcCredentialProvider.js';
|
|
6
|
+
export interface SelectedAuthentication {
|
|
7
|
+
readonly kind: 'oidc' | 'login' | 'gat';
|
|
8
|
+
readonly credential: ControlPlaneCredential;
|
|
9
|
+
readonly otp?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class AuthenticationSelector {
|
|
12
|
+
private readonly account;
|
|
13
|
+
private readonly prompts;
|
|
14
|
+
private readonly oidc;
|
|
15
|
+
private readonly isInteractive;
|
|
16
|
+
constructor(account: AccountManager, prompts: PromptService, oidc?: GitHubActionsOidcCredentialProvider, isInteractive?: () => boolean);
|
|
17
|
+
select(mode: ControlPlaneAuthMode, trust: RegistryTrust, scopes: readonly UAPKGCliScope[], requireFreshOtp: boolean): Promise<SelectedAuthentication>;
|
|
18
|
+
private readOtp;
|
|
19
|
+
private assertInteractiveFreshOtp;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=AuthenticationSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthenticationSelector.d.ts","sourceRoot":"","sources":["../../src/control-plane/AuthenticationSelector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAE/F,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAHb,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,aAAa,EACtB,IAAI,sCAA4C,EAChD,aAAa,gBAAsE;IAGzF,MAAM,CACjB,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,eAAe,EAAE,OAAO,GACvB,OAAO,CAAC,sBAAsB,CAAC;YA0CpB,OAAO;IASrB,OAAO,CAAC,yBAAyB;CAMlC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import isCI from 'is-ci';
|
|
2
|
+
import { GitHubActionsOidcCredentialProvider } from './GitHubActionsOidcCredentialProvider.js';
|
|
3
|
+
export class AuthenticationSelector {
|
|
4
|
+
account;
|
|
5
|
+
prompts;
|
|
6
|
+
oidc;
|
|
7
|
+
isInteractive;
|
|
8
|
+
constructor(account, prompts, oidc = new GitHubActionsOidcCredentialProvider(), isInteractive = () => Boolean(process.stdin.isTTY && process.stdout.isTTY && !isCI)) {
|
|
9
|
+
this.account = account;
|
|
10
|
+
this.prompts = prompts;
|
|
11
|
+
this.oidc = oidc;
|
|
12
|
+
this.isInteractive = isInteractive;
|
|
13
|
+
}
|
|
14
|
+
async select(mode, trust, scopes, requireFreshOtp) {
|
|
15
|
+
if (mode === 'oidc' || (mode === 'auto' && this.oidc.isAvailable())) {
|
|
16
|
+
const accessToken = await this.oidc.exchange(trust);
|
|
17
|
+
return { kind: 'oidc', credential: { kind: 'bearer', accessToken } };
|
|
18
|
+
}
|
|
19
|
+
if (mode === 'login' || (mode === 'auto' && (await this.account.hasGrant(trust)))) {
|
|
20
|
+
if (requireFreshOtp)
|
|
21
|
+
this.assertInteractiveFreshOtp();
|
|
22
|
+
const access = await this.account.getAccessCredential(trust, scopes);
|
|
23
|
+
return {
|
|
24
|
+
kind: 'login',
|
|
25
|
+
credential: access.credential,
|
|
26
|
+
otp: requireFreshOtp ? await this.readOtp() : undefined,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const environmentToken = process.env.UAPKG_TOKEN?.trim();
|
|
30
|
+
if (mode === 'gat' || (mode === 'auto' && environmentToken)) {
|
|
31
|
+
if (!this.isInteractive()) {
|
|
32
|
+
throw new Error('Human GAT authentication requires an attended TTY. Headless publishing must use a configured GitHub Actions OIDC trusted publisher.');
|
|
33
|
+
}
|
|
34
|
+
const accessToken = environmentToken || (await this.prompts.secret('UAPKG granular access token')).trim();
|
|
35
|
+
if (!accessToken)
|
|
36
|
+
throw new Error('A granular access token is required.');
|
|
37
|
+
return {
|
|
38
|
+
kind: 'gat',
|
|
39
|
+
credential: { kind: 'bearer', accessToken },
|
|
40
|
+
otp: requireFreshOtp ? await this.readOtp() : undefined,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
throw new Error([
|
|
44
|
+
`No supported publishing credential is available for "${trust.alias}".`,
|
|
45
|
+
'',
|
|
46
|
+
`Run \`uapkg login --registry ${trust.alias}\` on a browser-capable workstation,`,
|
|
47
|
+
'set UAPKG_TOKEN for an attended GAT publish, or configure GitHub Actions OIDC.',
|
|
48
|
+
].join('\n'));
|
|
49
|
+
}
|
|
50
|
+
async readOtp() {
|
|
51
|
+
this.assertInteractiveFreshOtp();
|
|
52
|
+
const otp = (await this.prompts.secret('Current TOTP code')).trim();
|
|
53
|
+
if (!/^[0-9]{6,10}$/.test(otp)) {
|
|
54
|
+
throw new Error('A current numeric TOTP code is required for interactive publishing.');
|
|
55
|
+
}
|
|
56
|
+
return otp;
|
|
57
|
+
}
|
|
58
|
+
assertInteractiveFreshOtp() {
|
|
59
|
+
if (this.isInteractive())
|
|
60
|
+
return;
|
|
61
|
+
throw new Error('Fresh TOTP confirmation requires an attended TTY. Human publishing is not supported in headless environments.');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=AuthenticationSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthenticationSelector.js","sourceRoot":"","sources":["../../src/control-plane/AuthenticationSelector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as oauth from 'oauth4webapi';
|
|
2
|
+
import { type AccountSelf, type ActivatedCliLoginGrant, type CliLoginConfirmation, type RegistryOperation, type RegistryRequestStatus, type RegistryRequestSubmission, type RegistryRequestSummary, type UAPKGCliScope } from './ControlPlaneTypes.js';
|
|
3
|
+
export type ControlPlaneCredential = {
|
|
4
|
+
readonly kind: 'dpop';
|
|
5
|
+
readonly accessToken: string;
|
|
6
|
+
readonly dpop: oauth.DPoPHandle;
|
|
7
|
+
readonly registryAlias: string;
|
|
8
|
+
readonly requestedScopes: readonly UAPKGCliScope[];
|
|
9
|
+
} | {
|
|
10
|
+
readonly kind: 'bearer';
|
|
11
|
+
readonly accessToken: string;
|
|
12
|
+
};
|
|
13
|
+
export declare class ControlPlaneClient {
|
|
14
|
+
private readonly apiBaseUrl;
|
|
15
|
+
constructor(apiBaseUrl?: string);
|
|
16
|
+
getSelf(credential: ControlPlaneCredential, signal?: AbortSignal): Promise<AccountSelf>;
|
|
17
|
+
getCliLoginConfirmation(credential: ControlPlaneCredential, signal?: AbortSignal): Promise<CliLoginConfirmation>;
|
|
18
|
+
confirmCliLogin(credential: ControlPlaneCredential, signal?: AbortSignal): Promise<ActivatedCliLoginGrant>;
|
|
19
|
+
submitRegistryRequest(credential: ControlPlaneCredential, operation: RegistryOperation, submission: RegistryRequestSubmission, options?: {
|
|
20
|
+
readonly idempotencyKey?: string;
|
|
21
|
+
readonly otp?: string;
|
|
22
|
+
}): Promise<{
|
|
23
|
+
requestId: string;
|
|
24
|
+
status: RegistryRequestStatus;
|
|
25
|
+
message: string;
|
|
26
|
+
}>;
|
|
27
|
+
getRegistryRequest(credential: ControlPlaneCredential, requestId: string): Promise<RegistryRequestSummary>;
|
|
28
|
+
listRegistryRequests(credential: ControlPlaneCredential, registryId: string, status?: RegistryRequestStatus): Promise<RegistryRequestSummary[]>;
|
|
29
|
+
private requestJson;
|
|
30
|
+
private withDPoPNonceRetry;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ControlPlaneClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlPlaneClient.d.ts","sourceRoot":"","sources":["../../src/control-plane/ControlPlaneClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAQzB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,sBAAsB,GAC9B;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,SAAS,aAAa,EAAE,CAAC;CACpD,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B,CAAC;AAqFN,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAEjB,UAAU,SAA0B;IAQ1C,OAAO,CAAC,UAAU,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAavF,uBAAuB,CAClC,UAAU,EAAE,sBAAsB,EAClC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,oBAAoB,CAAC;IAgBnB,eAAe,CAC1B,UAAU,EAAE,sBAAsB,EAClC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,sBAAsB,CAAC;IAYrB,qBAAqB,CAChC,UAAU,EAAE,sBAAsB,EAClC,SAAS,EAAE,iBAAiB,EAC5B,UAAU,EAAE,yBAAyB,EACrC,OAAO,GAAE;QAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAO,GACxE,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,qBAAqB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAuBpE,kBAAkB,CAC7B,UAAU,EAAE,sBAAsB,EAClC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,CAAC;IASrB,oBAAoB,CAC/B,UAAU,EAAE,sBAAsB,EAClC,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,sBAAsB,EAAE,CAAC;YAoBtB,WAAW;YA2DX,kBAAkB;CAQjC"}
|