@interop/wallet-core 0.49.0 → 0.51.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/README.md +5 -2
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts +127 -0
- package/dist/clientAnnex/credentialAnchoredGenesis.d.ts.map +1 -0
- package/dist/clientAnnex/credentialAnchoredGenesis.js +195 -0
- package/dist/clientAnnex/credentialAnchoredGenesis.js.map +1 -0
- package/dist/clientAnnex/forget.d.ts +138 -0
- package/dist/clientAnnex/forget.d.ts.map +1 -0
- package/dist/clientAnnex/forget.js +133 -0
- package/dist/clientAnnex/forget.js.map +1 -0
- package/dist/clientAnnex/forgetLast.d.ts +291 -0
- package/dist/clientAnnex/forgetLast.d.ts.map +1 -0
- package/dist/clientAnnex/forgetLast.js +408 -0
- package/dist/clientAnnex/forgetLast.js.map +1 -0
- package/dist/{webvh/companionGc.d.ts → clientAnnex/gc.d.ts} +50 -16
- package/dist/clientAnnex/gc.d.ts.map +1 -0
- package/dist/{webvh/companionGc.js → clientAnnex/gc.js} +103 -71
- package/dist/clientAnnex/gc.js.map +1 -0
- package/dist/clientAnnex/index.d.ts +60 -0
- package/dist/clientAnnex/index.d.ts.map +1 -0
- package/dist/clientAnnex/index.js +60 -0
- package/dist/clientAnnex/index.js.map +1 -0
- package/dist/{unlock → clientAnnex}/ladder.d.ts +89 -15
- package/dist/clientAnnex/ladder.d.ts.map +1 -0
- package/dist/clientAnnex/ladder.js +474 -0
- package/dist/clientAnnex/ladder.js.map +1 -0
- package/dist/clientAnnex/ladderAnchored.d.ts +276 -0
- package/dist/clientAnnex/ladderAnchored.d.ts.map +1 -0
- package/dist/clientAnnex/ladderAnchored.js +631 -0
- package/dist/clientAnnex/ladderAnchored.js.map +1 -0
- package/dist/{webvh/companion.d.ts → clientAnnex/log.d.ts} +333 -119
- package/dist/clientAnnex/log.d.ts.map +1 -0
- package/dist/{webvh/companion.js → clientAnnex/log.js} +583 -199
- package/dist/clientAnnex/log.js.map +1 -0
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts +103 -0
- package/dist/clientAnnex/recoveryLadderAnchored.d.ts.map +1 -0
- package/dist/clientAnnex/recoveryLadderAnchored.js +263 -0
- package/dist/clientAnnex/recoveryLadderAnchored.js.map +1 -0
- package/dist/{unlock → clientAnnex}/selfEnroll.d.ts +1 -1
- package/dist/clientAnnex/selfEnroll.d.ts.map +1 -0
- package/dist/{unlock → clientAnnex}/selfEnroll.js +1 -1
- package/dist/clientAnnex/selfEnroll.js.map +1 -0
- package/dist/clientAnnex/zcap.d.ts +49 -0
- package/dist/clientAnnex/zcap.d.ts.map +1 -0
- package/dist/clientAnnex/zcap.js +101 -0
- package/dist/clientAnnex/zcap.js.map +1 -0
- package/dist/clients/index.d.ts +9 -6
- package/dist/clients/index.d.ts.map +1 -1
- package/dist/clients/index.js +8 -5
- package/dist/clients/index.js.map +1 -1
- package/dist/clients/listing.d.ts +32 -0
- package/dist/clients/listing.d.ts.map +1 -1
- package/dist/clients/listing.js +47 -1
- package/dist/clients/listing.js.map +1 -1
- package/dist/clients/revocation.d.ts +33 -1
- package/dist/clients/revocation.d.ts.map +1 -1
- package/dist/clients/revocation.js +16 -4
- package/dist/clients/revocation.js.map +1 -1
- package/dist/enrollment/index.d.ts +6 -4
- package/dist/enrollment/index.d.ts.map +1 -1
- package/dist/enrollment/index.js +6 -4
- package/dist/enrollment/index.js.map +1 -1
- package/dist/enrollment/onboardingInvite.d.ts +5 -88
- package/dist/enrollment/onboardingInvite.d.ts.map +1 -1
- package/dist/enrollment/onboardingInvite.js +5 -168
- package/dist/enrollment/onboardingInvite.js.map +1 -1
- package/dist/genesis/accountGenesis.d.ts +12 -0
- package/dist/genesis/accountGenesis.d.ts.map +1 -1
- package/dist/genesis/accountGenesis.js.map +1 -1
- package/dist/genesis/index.d.ts +5 -0
- package/dist/genesis/index.d.ts.map +1 -1
- package/dist/genesis/index.js +5 -0
- package/dist/genesis/index.js.map +1 -1
- package/dist/keys/index.d.ts +1 -1
- package/dist/keys/index.d.ts.map +1 -1
- package/dist/keys/index.js +1 -1
- package/dist/keys/index.js.map +1 -1
- package/dist/keys/spaceEpochs.d.ts +7 -2
- package/dist/keys/spaceEpochs.d.ts.map +1 -1
- package/dist/keys/spaceEpochs.js +8 -2
- package/dist/keys/spaceEpochs.js.map +1 -1
- package/dist/keys/userKeyRoster.d.ts +39 -0
- package/dist/keys/userKeyRoster.d.ts.map +1 -1
- package/dist/keys/userKeyRoster.js +43 -1
- package/dist/keys/userKeyRoster.js.map +1 -1
- package/dist/recovery/index.d.ts +5 -3
- package/dist/recovery/index.d.ts.map +1 -1
- package/dist/recovery/index.js +4 -2
- package/dist/recovery/index.js.map +1 -1
- package/dist/recovery/recoveryDelegation.d.ts +35 -12
- package/dist/recovery/recoveryDelegation.d.ts.map +1 -1
- package/dist/recovery/recoveryDelegation.js +84 -86
- package/dist/recovery/recoveryDelegation.js.map +1 -1
- package/dist/recovery/recoveryWebvh.d.ts +32 -1
- package/dist/recovery/recoveryWebvh.d.ts.map +1 -1
- package/dist/recovery/recoveryWebvh.js +2 -2
- package/dist/recovery/recoveryWebvh.js.map +1 -1
- package/dist/request/capabilityRequest.d.ts +33 -0
- package/dist/request/capabilityRequest.d.ts.map +1 -0
- package/dist/request/capabilityRequest.js +35 -0
- package/dist/request/capabilityRequest.js.map +1 -0
- package/dist/request/ephemeralExchange.d.ts +118 -0
- package/dist/request/ephemeralExchange.d.ts.map +1 -0
- package/dist/request/ephemeralExchange.js +224 -0
- package/dist/request/ephemeralExchange.js.map +1 -0
- package/dist/request/index.d.ts +6 -0
- package/dist/request/index.d.ts.map +1 -1
- package/dist/request/index.js +6 -0
- package/dist/request/index.js.map +1 -1
- package/dist/space/activity.d.ts +2 -2
- package/dist/space/activity.js +3 -3
- package/dist/space/activity.js.map +1 -1
- package/dist/unlock/index.d.ts +11 -23
- package/dist/unlock/index.d.ts.map +1 -1
- package/dist/unlock/index.js +10 -21
- package/dist/unlock/index.js.map +1 -1
- package/dist/unlock/retire.d.ts +47 -3
- package/dist/unlock/retire.d.ts.map +1 -1
- package/dist/unlock/retire.js +21 -5
- package/dist/unlock/retire.js.map +1 -1
- package/dist/unlock/standingWebvh.d.ts +37 -82
- package/dist/unlock/standingWebvh.d.ts.map +1 -1
- package/dist/unlock/standingWebvh.js +64 -247
- package/dist/unlock/standingWebvh.js.map +1 -1
- package/dist/unlock/unlockRecord.d.ts +13 -6
- package/dist/unlock/unlockRecord.d.ts.map +1 -1
- package/dist/unlock/unlockRecord.js +14 -8
- package/dist/unlock/unlockRecord.js.map +1 -1
- package/dist/webvh/delegatedLogStore.d.ts +5 -5
- package/dist/webvh/delegatedLogStore.js +1 -1
- package/dist/webvh/didWebvh.d.ts +19 -9
- package/dist/webvh/didWebvh.d.ts.map +1 -1
- package/dist/webvh/didWebvh.js +16 -16
- package/dist/webvh/didWebvh.js.map +1 -1
- package/dist/webvh/index.d.ts +9 -25
- package/dist/webvh/index.d.ts.map +1 -1
- package/dist/webvh/index.js +9 -23
- package/dist/webvh/index.js.map +1 -1
- package/dist/webvh/revokeClient.d.ts +77 -5
- package/dist/webvh/revokeClient.d.ts.map +1 -1
- package/dist/webvh/revokeClient.js +154 -61
- package/dist/webvh/revokeClient.js.map +1 -1
- package/dist/webvh/standingZcap.d.ts +11 -1
- package/dist/webvh/standingZcap.d.ts.map +1 -1
- package/dist/webvh/standingZcap.js +13 -14
- package/dist/webvh/standingZcap.js.map +1 -1
- package/dist/webvh/wasIdStore.d.ts +13 -7
- package/dist/webvh/wasIdStore.d.ts.map +1 -1
- package/dist/webvh/wasIdStore.js +8 -4
- package/dist/webvh/wasIdStore.js.map +1 -1
- package/dist/webvh/zcap.d.ts +0 -24
- package/dist/webvh/zcap.d.ts.map +1 -1
- package/dist/webvh/zcap.js +0 -42
- package/dist/webvh/zcap.js.map +1 -1
- package/package.json +41 -35
- package/dist/unlock/ladder.d.ts.map +0 -1
- package/dist/unlock/ladder.js +0 -258
- package/dist/unlock/ladder.js.map +0 -1
- package/dist/unlock/selfEnroll.d.ts.map +0 -1
- package/dist/unlock/selfEnroll.js.map +0 -1
- package/dist/webvh/companion.d.ts.map +0 -1
- package/dist/webvh/companion.js.map +0 -1
- package/dist/webvh/companionGc.d.ts.map +0 -1
- package/dist/webvh/companionGc.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/clientAnnex/log.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,SAAS,EACV,MAAM,2BAA2B,CAAA;AAWlC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,KAAK,EACN,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACrB,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACb,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGzD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,OAAO;IACP,gBAAgB;IAChB,uBAAuB;CACxB,CAAA;AAED;;;GAGG;AACH,MAAM,4BAA4B,GAAG,uBAAuB,CAAA;AAE5D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAA;AAE1C;;;;;GAKG;AACH,MAAM,0BAA0B,GAAG,EAAE,CAAA;AAErC;;;GAGG;AACH,MAAM,qBAAqB,GAAG,yBAAyB,CAAA;AAEvD;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,CACL,oBAAoB;QACpB,cAAc,CAAC,MAAM,CACnB,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,0BAA0B,CAAC,CAAC,CACnE,CACF,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,yBAAyB,YAAY,6BAA6B;YAChE,wBAAwB,CAC3B,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,OAAO,EACP,YAAY,EAIb;IACC,OAAO,gBAAgB,CAAC;QACtB,OAAO;QACP,YAAY,EAAE,YAAY;QAC1B,UAAU,EAAE,gBAAgB;KAC7B,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAClC,GAAG,EACH,OAAO,EACP,YAAY,EACZ,UAAU,EAMX;IACC,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAChC,OAAO,gBAAgB,CAAC;QACtB,GAAG;QACH,OAAO;QACP,YAAY,EAAE,YAAY;QAC1B,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,8BAA8B,CAAA;AAEvD;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,uCAAuC,CAAA;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,2BAA2B,EAC3B,aAAa,EACb,MAAM,EAQP;IACC,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAChC,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,2BAA2B,CAAC,CAAA;IAC1E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,iEAAiE;YAC/D,kEAAkE;YAClE,mDAAmD,CACtD,CAAA;IACH,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAA;IACtC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;QACpD,YAAY;QACZ,OAAO;QACP,YAAY,EAAE,YAAY;KAC3B,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;QAC7B,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC;QACvC,MAAM;QACN,UAAU,EAAE,CAAC,2BAA2B,CAAC;QACzC,aAAa;QACb,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,kBAAkB,EAAE;KACxE,CAAC,CAAA;IACF,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAA;AAC9D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAC3C,GAAG,EACH,OAAO,EACP,UAAU,EAKX;IACC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;IACtC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC,SAAS,CAAC;YACpB,UAAU;YACV,IAAI,EAAE,uBAAuB;YAC7B,KAAK,EAAE,IAAI;SACZ,CAAC,CAAA;QACF,OAAM;IACR,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACb,cAAc,OAAO,mCAAmC;YACtD,kEAAkE;YAClE,uCAAuC,CAC1C,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,EAC9C,GAAG,EACH,YAAY,EACZ,OAAO,EACP,UAAU,EACV,2BAA2B,EAC3B,aAAa,EACb,MAAM,EASP;IACC,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;IAC1D,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAA;IACvC,OAAO,yBAAyB,CAAC;QAC/B,GAAG;QACH,YAAY;QACZ,OAAO;QACP,YAAY;QACZ,2BAA2B;QAC3B,aAAa;QACb,MAAM;KACP,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,KAAK,UAAU,yBAAyB,CAAC,EACvC,GAAG,EACH,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,2BAA2B,EAC3B,aAAa,EACb,MAAM,EACN,UAAU,EAUX;IACC,wEAAwE;IACxE,yEAAyE;IACzE,WAAW;IACX,oEAAoE;IACpE,wDAAwD;IACxD,MAAM,GAAG;SACN,KAAK,CAAC,OAAO,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,UAAU,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;SACrD,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACjD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC;QACzC,YAAY;QACZ,OAAO;QACP,YAAY;QACZ,2BAA2B;QAC3B,aAAa;QACb,MAAM;KACP,CAAC,CAAA;IACF,MAAM,cAAc,CAAC;QACnB,KAAK,EAAE,mBAAmB,CAAC;YACzB,GAAG;YACH,OAAO;YACP,YAAY;YACZ,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD,CAAC;QACF,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,WAAW,EAAE,IAAI;KAClB,CAAC,CAAA;IACF,OAAO,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,CAAA;AACrC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,KAAK,UAAU,mCAAmC,CAAC,EACxD,GAAG,EACH,YAAY,EACZ,OAAO,EACP,UAAU,EACV,UAAU,EACV,kBAAkB,GAAG,EAAE,EACvB,UAAU,EASX;IACC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;IAC5D,CAAC;IACD,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAA;IACvC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;IAChE,OAAO,yBAAyB,CAAC;QAC/B,GAAG;QACH,YAAY;QACZ,OAAO;QACP,YAAY;QACZ,2BAA2B,EAAE,IAAI,CAAC,YAAY;QAC9C,aAAa,EAAE;YACb,MAAM,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC;YAC1C,GAAG,kBAAkB;SACtB;QACD,MAAM,EAAE,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAClD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,8BAA8B,GACzC,wCAAwC,CAAA;AAE1C;;;;;GAKG;AACH,MAAM,kCAAkC,GAAG,mBAAmB,CAAA;AAE9D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,4BAA4B,CAAC,EAC3C,UAAU,EACV,cAAc,EAIf;IACC,OAAO;QACL,EAAE,EAAE,GAAG,UAAU,IAAI,kCAAkC,EAAE;QACzD,IAAI,EAAE,8BAA8B;QACpC,eAAe,EAAE,cAAc;KAChC,CAAA;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,EACtC,GAAG,EAGJ;IACC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACnE,IACE,KAAK,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAC9C,OAAO,KAAK,CAAC,eAAe,KAAK,QAAQ,EACzC,CAAC;YACD,OAAO,KAAK,CAAC,eAAe,CAAA;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,4BAA4B,CAAC,EAC3C,GAAG,EACH,UAAU,EACV,cAAc,EAKf;IACC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAsB,CAAA;IACzD,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAE,EAAE;QAChD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACnE,OAAO,KAAK,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAA;IACvD,CAAC,CAAA;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;QAClC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CACnB,cAAc,CAAC,KAAK,CAAC;YACnB,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE;YAC/C,CAAC,CAAC,KAAK,CACV;QACH,CAAC,CAAC;YACE,GAAG,QAAQ;YACX,4BAA4B,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;SAC7D,CAAA;AACP,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAElE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,oBAAoB,CAAA;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,EACnD,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAOjB;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC;QACrB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,SAAS,CAAC,kBAAkB,CAAC;KACpC,CAAC,CAAA;IACF,OAAO,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC;QAChC,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QACtC,gBAAgB,EAAE,KAAK,CAAC;YACtB,SAAS,EAAE,YAAY;YACvB,IAAI,EAAE,UAAU,CAAC,kBAAkB,CAAC;SACrC,CAAC;QACF,UAAU;QACV,cAAc,EAAE,CAAC,GAAG,oCAAoC,CAAC;QACzD,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,mCAAmC,CAAC;KAC7D,CAAC,CAAU,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,gCAAgC,CAAC,EAC/C,GAAG,EACH,UAAU,EACV,YAAY,EAKb;IACC,OAAO,KAAK,EAAE,EAAE,UAAU,EAA0B,EAAE,EAAE;QACtD,MAAM,cAAc,GAAG,uBAAuB,CAAC;YAC7C,GAAG,EAAE,GAA2D;SACjE,CAAC,CAAA;QACF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,kBAA0B,CAAA;QAC9B,IAAI,CAAC;YACH,kBAAkB,GAAG,mBAAmB,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC,OAAO,CAAA;QAC3E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,8BAA8B,CAAC;YACpC,UAAU;YACV,YAAY;YACZ,kBAAkB;YAClB,UAAU;SACX,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iCAAiC,CAAC,EAChD,UAAU,EAGX;IACC,MAAM,MAAM,GAAI,UAA6C,CAAC,gBAAgB,CAAA;IAC9E,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,IAAY,CAAA;IAChB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAA;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,yEAAyE;IACzE,wCAAwC;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChC,IACE,QAAQ,CAAC,MAAM,GAAG,CAAC;QACnB,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QACpC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO,EACzC,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC7C,OAAO,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC1D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,4CAA4C,CAAA;AAE9C;;;;;;GAMG;AACH,MAAM,sCAAsC,GAAG,uBAAuB,CAAA;AAEtE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;CACT,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAC7C,UAAU,EACV,YAAY,EACZ,OAAO,EACP,cAAc,EACd,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAOjB;IACC,mBAAmB,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC7E,OAAO,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC;QAChC,UAAU,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QACtC,gBAAgB,EAAE,KAAK,CAAC;YACtB,SAAS,EAAE,YAAY;YACvB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC;SAC1B,CAAC;QACF,UAAU,EAAE,cAAc;QAC1B,cAAc,EAAE,CAAC,GAAG,6BAA6B,CAAC;QAClD,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,4BAA4B,CAAC;KACtD,CAAC,CAAU,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,KAAK,EACL,UAAU,EACV,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAKjB;IACC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAC7B,UAAmC,CAAC,OAAO,IAAI,EAAE,CACnD,CAAA;IACD,IAAI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,oEAAoE;YAClE,kCAAkC,CACrC,CAAA;IACH,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,EAAE,aAAa,CAAC,CAAC,CAAA;AACvD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gCAAgC,CAAC,EAC/C,cAAc,EACd,UAAU,EAIX;IACC,OAAO;QACL,EAAE,EAAE,GAAG,cAAc,IAAI,sCAAsC,EAAE;QACjE,IAAI,EAAE,kCAAkC;QACxC,eAAe,EAAE,UAA2D;KAC7E,CAAA;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,4BAA4B,CAAC,EAC3C,GAAG,EAGJ;IACC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACnE,IAAI,KAAK,CAAC,QAAQ,CAAC,kCAAkC,CAAC,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAA;YACtC,IACE,QAAQ,KAAK,IAAI;gBACjB,OAAO,QAAQ,KAAK,QAAQ;gBAC5B,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EACxB,CAAC;gBACD,OAAO,QAA4B,CAAA;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,2BAA2B,CAAC,EAAE,GAAG,EAAmB;IAClE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,WAAW,GAAY,EAAE,CAAA;IAC/B,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,4BAA4B,CAAC;YAC5C,GAAG,EAAE,KAAK,CAAC,KAAe;SAC3B,CAAC,CAAA;QACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,SAAQ;QACV,CAAC;QACD,MAAM,EAAE,GAAI,QAA4B,CAAC,EAAE,CAAA;QAC3C,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3C,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACZ,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,qCAAqC,CAAC,EAC1D,MAAM,EACN,UAAU,EAIX;IACC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAuC,CAAC,CAAA;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAAyB,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC1D,OAAM;QACR,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,6BAA6B,CAAC,EACrC,GAAG,EACH,cAAc,EACd,UAAU,EAKX;IACC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAsB,CAAA;IACzD,MAAM,iBAAiB,GAAG,CAAC,KAAsB,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACnE,OAAO,KAAK,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAA;IAC3D,CAAC,CAAA;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACrC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CACnB,iBAAiB,CAAC,KAAK,CAAC;YACtB,CAAC,CAAC;gBACE,GAAG,KAAK;gBACR,eAAe,EACb,UAA2D;aAC9D;YACH,CAAC,CAAC,KAAK,CACV;QACH,CAAC,CAAC;YACE,GAAG,QAAQ;YACX,gCAAgC,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;SACjE,CAAA;AACP,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAE,GAAG,EAAmB;IAI1D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACvC,IACE,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK;QAClB,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO;QACpB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO;QACnC,YAAY,KAAK,SAAS;QAC1B,OAAO,KAAK,SAAS;QACrB,OAAO,CAAC,MAAM,KAAK,CAAC,EACpB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,IAAI,CAAC,CAAA;IAC5D,CAAC;IACD,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAChC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAA;AAClC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IACxD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAA;IAC/C,CAAC;CACF;AAeD;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,yBAAyB,CAAC,EACvC,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,EAMN;IACC,4EAA4E;IAC5E,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;QACvC,OAAO,EAAE,KAAqB;QAC9B,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAA;IACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,yEAAyE;YACvE,qBAAqB,CACxB,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,OAYtD;IACC,OAAO,oBAAoB,CAAC,GAAG,EAAE,CAC/B,oCAAoC,CAAC,OAAO,CAAC,CAC9C,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,oCAAoC,CAAC,EAClD,KAAK,EACL,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,QAAQ,EACR,wBAAwB,EAAE,cAAc,EACxC,WAAW,EACX,QAAQ,EACR,KAAK,EAaN;IACC,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAChC,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC;QAChD,KAAK;QACL,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAA;IACF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,SAAS,CAAA;IAC9B,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,qBAAqB,EAAE,CAAA;IAE9C,wEAAwE;IACxE,2EAA2E;IAC3E,wBAAwB;IACxB,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAyB,CAAA;IAC9E,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAA;IACzC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;IAChE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC3D,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACjE,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,+BAA+B,CACvC,yEAAyE;YACvE,+DAA+D;YAC/D,iEAAiE,CACpE,CAAA;IACH,CAAC;IACD,yEAAyE;IACzE,mEAAmE;IACnE,qEAAqE;IACrE,MAAM,0BAA0B,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAE/C,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,4DAA4D;IAC5D,IACE,QAAQ,KAAK,SAAS;QACtB,cAAc,KAAK,SAAS;QAC5B,eAAe,CAAC,MAAM,KAAK,CAAC;QAC5B,4BAA4B,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,EACnD,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAA;QAChE,QAAQ,GAAG,6BAA6B,CAAC;YACvC,GAAG;YACH,cAAc,EAAE,GAAG;YACnB,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,eAAe,GAAuB;QAC1C,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,gBAAgB;QACtB,UAAU,EAAE,GAAG;QACf,kBAAkB,EAAE,qBAAqB;KAC1C,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IACzD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC;QAC9B,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,MAAM;QACN,iBAAiB,EAAE,CAAC,oBAAoB,CAAC;QACzC,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtE,mEAAmE;QACnE,uEAAuE;QACvE,+CAA+C;QAC/C,aAAa,EAAE,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC;QAC3C,mBAAmB,EAAE,CAAC,GAAG,eAAe,EAAE,eAAe,CAAC;QAC1D,yEAAyE;QACzE,sEAAsE;QACtE,qEAAqE;QACrE,iDAAiD;QACjD,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC;QAC/C,eAAe,EAAE,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC;QACjD,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC;QAC3C,oBAAoB,EAAE;YACpB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,CAAC;SAC7D;QACD,oBAAoB,EAAE,WAAW,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC3D,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC,CAAA;IACF,uEAAuE;IACvE,oCAAoC;IACpC,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IAC1E,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAA;AACjE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,OAQhD;IACC,OAAO,oBAAoB,CAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,8BAA8B,CAAC,EAC5C,OAAO,EACP,UAAU,EACV,cAAc,EACd,WAAW,EACX,QAAQ,EACR,KAAK,EACL,OAAO,GAAG,KAAK,EAShB;IACC,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAA;IAC5C,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC;QACvC,OAAO;QACP,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAA;IACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAA;IACH,CAAC;IACD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,SAAS,CAAA;IAC9B,IAAI,uBAAuB,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,cAAc,EAAE,CAAC;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,wBAAwB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IACrB,CAAC;IAED,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAA;IAC3E,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,uEAAuE;YACrE,mEAAmE;YACnE,0BAA0B,CAC7B,CAAA;IACH,CAAC;IACD,MAAM,0BAA0B,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAE/C,MAAM,QAAQ,GAAG,4BAA4B,CAAC;QAC5C,GAAG;QACH,UAAU,EAAE,GAAG;QACf,cAAc;KACf,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAA;IACrE,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC;QAC9B,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,MAAM;QACN,cAAc,EAAE,IAAI;QACpB,kEAAkE;QAClE,uEAAuE;QACvE,2BAA2B;QAC3B,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,QAAQ;KACT,CAAC,CAAA;IACF,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,cAAc,CAAC;YACnB,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,OAAO,EAAE,SAAS,CAAC,IAAI;SACxB,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,iBAAiB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IACxE,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAA;AAC/C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,qBAAqB,EACrB,wBAAwB,EAAE,cAAc,EACxC,QAAQ,EACR,SAAS,GAAG,CAAC,EAWd;IACC,IAAI,UAAU,GAAG,MAAM,mBAAmB,EAAE,CAAA;IAC5C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/C,MAAM,cAAc,GAAG,uBAAuB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAA;QACnE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,kEAAkE;gBAChE,qDAAqD,CACxD,CAAA;QACH,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAAC;YACpD,GAAG,EAAE,cAAc;SACpB,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,MAAM,gCAAgC,CAAC;YACtD,KAAK,EAAE,oBAAoB,CAAC,YAAY,CAAC;YACzC,UAAU;YACV,YAAY;YACZ,qBAAqB;YACrB,WAAW,EAAE,cAAc;YAC3B,GAAG,CAAC,cAAc,KAAK,SAAS;gBAC9B,CAAC,CAAC,EAAE,wBAAwB,EAAE,cAAc,EAAE;gBAC9C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,QAAQ,KAAK,SAAS;gBACxB,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE;gBACrE,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAA;QACF,wEAAwE;QACxE,yEAAyE;QACzE,4DAA4D;QAC5D,UAAU,GAAG,MAAM,mBAAmB,EAAE,CAAA;QACxC,IAAI,uBAAuB,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,KAAK,cAAc,EAAE,CAAC;YACpE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAA;QACjE,CAAC;IACH,CAAC;IACD,MAAM,IAAI,KAAK,CACb,iEAAiE;QAC/D,GAAG,MAAM,CAAC,SAAS,CAAC,gCAAgC,CACvD,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,OAavD;IACC,OAAO,oBAAoB,CAAC,GAAG,EAAE,CAC/B,qCAAqC,CAAC,OAAO,CAAC,CAC/C,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,qCAAqC,CAAC,EACnD,KAAK,EACL,UAAU,EACV,YAAY,EACZ,wBAAwB,EAAE,cAAc,EACxC,WAAW,EACX,QAAQ,EACR,KAAK,EACL,UAAU,EACV,KAAK,GAAG,KAAK,EACb,GAAG,EAcJ;IACC,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAChC,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC;QAChD,KAAK;QACL,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAA;IACF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,SAAS,CAAA;IAC9B,MAAM,QAAQ,GAAG,4BAA4B,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IACtD,MAAM,YAAY,GAChB,QAAQ,KAAK,SAAS;QACtB,UAAU,KAAK,SAAS;QACxB,CAAC,uBAAuB,CAAC;YACvB,GAAG,EAAE,UAAU;YACf,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,SAAS;gBAC9C,CAAC,CAAC,EAAE,eAAe,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE;gBACrD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAA;IACJ,IACE,CAAC,KAAK;QACN,QAAQ,KAAK,SAAS;QACtB,CAAC,YAAY;QACb,CAAC,YAAY,CAAC;YACZ,GAAG,CAAE,QAAiC,CAAC,OAAO,KAAK,SAAS;gBAC1D,CAAC,CAAC,EAAE,OAAO,EAAG,QAAiC,CAAC,OAAO,EAAE;gBACzD,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC,EACF,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IACjD,CAAC;IAED,wEAAwE;IACxE,oDAAoD;IACpD,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAA;IAChE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAC3D,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IACjE,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,+BAA+B,CACvC,yEAAyE;YACvE,+DAA+D;YAC/D,oEAAoE;YACpE,eAAe,CAClB,CAAA;IACH,CAAC;IACD,MAAM,0BAA0B,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,CAAA;IAE3D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IACzD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC;QAC9B,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,MAAM;QACN,oEAAoE;QACpE,uEAAuE;QACvE,wEAAwE;QACxE,sEAAsE;QACtE,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtE,aAAa,EAAE,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC;QAC3C,QAAQ,EAAE,6BAA6B,CAAC;YACtC,GAAG;YACH,cAAc,EAAE,GAAG;YACnB,UAAU,EAAE,KAAK;SAClB,CAAC;KACH,CAAC,CAAA;IACF,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IAC1E,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC7C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAQ3C;IACC,OAAO,oBAAoB,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAA;AACvE,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,yBAAyB,CAAC,EACvC,KAAK,EACL,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,KAAK,EASN;IACC,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAChC,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC;QAChD,KAAK;QACL,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC;QACpC,UAAU,EAAE,iBAAiB;QAC7B,YAAY;KACb,CAAC,CAAA;IACF,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACjE,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAC/C,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,YAAY,CACpC,CAAA;IACD,MAAM,eAAe,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM,CACpD,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,WAAW,CAC7B,CAAA;IACD,IACE,aAAa,CAAC,MAAM,KAAK,SAAS,CAAC,UAAU,CAAC,MAAM;QACpD,eAAe,CAAC,MAAM,KAAK,SAAS,CAAC,aAAa,CAAC,MAAM,EACzD,CAAC;QACD,iEAAiE;QACjE,+DAA+D;QAC/D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED,kEAAkE;IAClE,qEAAqE;IACrE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,UAAU,EAAE,gBAAgB;QAC5B,YAAY;KACb,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAC5D,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,+BAA+B,CACvC,uEAAuE;YACrE,kEAAkE;YAClE,mEAAmE,CACtE,CAAA;IACH,CAAC;IACD,MAAM,0BAA0B,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAE/C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC;QAC9B,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,MAAM;QACN,mEAAmE;QACnE,wEAAwE;QACxE,oEAAoE;QACpE,iEAAiE;QACjE,yCAAyC;QACzC,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QACjE,aAAa,EAAE,CAAC,GAAG,eAAe,CAAC;KACpC,CAAC,CAAA;IACF,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IAC1E,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAQ3C;IACC,OAAO,oBAAoB,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAA;AACvE,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,yBAAyB,CAAC,EACvC,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,KAAK,EASN;IACC,kBAAkB,CAAC,YAAY,CAAC,CAAA;IAChC,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC;QAChD,KAAK;QACL,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC;QAClC,UAAU,EAAE,eAAe;QAC3B,YAAY;KACb,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC7D,IACE,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;QACjD,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC3C,CAAC;QACD,sEAAsE;QACtE,iDAAiD;QACjD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;IAC7B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC;QACnC,UAAU,EAAE,gBAAgB;QAC5B,YAAY;KACb,CAAC,CAAA;IACF,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAC/D,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IACnE,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,+BAA+B,CACvC,uEAAuE;YACrE,mEAAmE;YACnE,2DAA2D,CAC9D,CAAA;IACH,CAAC;IACD,MAAM,0BAA0B,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAE/C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC;QAC9B,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,MAAM;QACN,mEAAmE;QACnE,oEAAoE;QACpE,oEAAoE;QACpE,kEAAkE;QAClE,+BAA+B;QAC/B,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QACxE,aAAa,EAAE,CAAC,GAAG,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC;KACvD,CAAC,CAAA;IACF,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;IAC1E,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AAC5B,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import type { DIDDoc, DIDLog } from '@interop/did-method-webvh';
|
|
2
|
+
import { type UnlockKeyAgreementPublication } from '../unlock/standingWebvh.js';
|
|
3
|
+
import { type RecoveryLogStore, type RecoveryPublicKeys } from '../recovery/recoveryWebvh.js';
|
|
4
|
+
/**
|
|
5
|
+
* THE TRANSIENT-RECOVERY CONTINUATION (run by the code-derived client through
|
|
6
|
+
* the delegated `did.jsonl` PUT, on a non-remembered browser): the
|
|
7
|
+
* ladder-anchored variant of {@link recoverWebvhClient}. No durable client is
|
|
8
|
+
* minted anywhere; the fresh credential's LADDER stands in for one, so the
|
|
9
|
+
* account lands client-less and ladder-anchored. Two entries:
|
|
10
|
+
*
|
|
11
|
+
* 1. **Reveal + commit**: the code's update key joins `updateKeys` (its hash
|
|
12
|
+
* stands committed since issuance) and `nextKeyHashes` extends with the
|
|
13
|
+
* fresh ladder's rung-0 and rung-1 hashes (rung 0's own carry-over hash
|
|
14
|
+
* plus the staged rung, the ladder-anchored genesis posture) and the
|
|
15
|
+
* replacement code's update-key hash.
|
|
16
|
+
* 2. **Add + retire**, signed by the fresh ladder's rung 0: the ladder VM
|
|
17
|
+
* (the stable sibling, under `assertionMethod` and `capabilityDelegation`
|
|
18
|
+
* only) and the fresh credential's `keyAgreement` posture entry
|
|
19
|
+
* (commitment or verbatim -- the entry the mandatory rotation's recipient
|
|
20
|
+
* resolver will back the credential's standing wrap with) in; the
|
|
21
|
+
* replacement code's posture in; the spent code's VM, update key, and hash
|
|
22
|
+
* out; and EVERY standing ladder VM out -- the stale-third-party
|
|
23
|
+
* retirement no other ceremony performs (their revealed update keys and
|
|
24
|
+
* committed hashes stay: a standing credential keeps its account-ladder
|
|
25
|
+
* authority, and an unattributable hash cannot be named without its seed).
|
|
26
|
+
* Rung 0 replaces the spent code's key in `updateKeys`. This same entry
|
|
27
|
+
* also points `#DelegatedClients` at the annex generation `onCommitted`
|
|
28
|
+
* minted. That is what the atomicity buys: the entry retires the
|
|
29
|
+
* pre-recovery credential's ladder VM, so a pointer written after it would
|
|
30
|
+
* leave a window in which the document names a generation no surviving
|
|
31
|
+
* record's sibling delegation targets, and neither credential could enroll
|
|
32
|
+
* a transient client.
|
|
33
|
+
*
|
|
34
|
+
* The entry is the ceremony-tail license's posture-changing anchor: the
|
|
35
|
+
* `keyAgreement` posture set and the ladder-VM set both change here, which is
|
|
36
|
+
* what licenses the caller's ONE ladder-signed roster append (the mandatory
|
|
37
|
+
* rotation) anchored at it.
|
|
38
|
+
*
|
|
39
|
+
* `onCommitted` is the persist-before-publish seam: it runs after the
|
|
40
|
+
* reveal-and-commit entry stands (so a revoked code has already been refused)
|
|
41
|
+
* and BEFORE the add entry publishes the ladder VM -- the caller durably
|
|
42
|
+
* writes the replacement code's record and the fresh credential's unlock
|
|
43
|
+
* record (the ladder seed inside) there, so a tab death can never publish an
|
|
44
|
+
* anchor nobody can derive. It must be idempotent: the conflict retry and a
|
|
45
|
+
* resumed run invoke it again. It returns the fresh annex generation's DID,
|
|
46
|
+
* which the add entry then points the `#DelegatedClients` service entry at.
|
|
47
|
+
*
|
|
48
|
+
* Resumable from durable state alone, like the durable continuation: a
|
|
49
|
+
* completed run is detected by rung 0 already authorized; a torn one by the
|
|
50
|
+
* standing commitments. Note what the completion detection is scoped to: a
|
|
51
|
+
* caller that mints its ladder seed per call (freewallet's does) can only hit
|
|
52
|
+
* the completed branch inside this call's own conflict retry, since a later
|
|
53
|
+
* process derives a different rung 0 and re-runs the whole continuation. A
|
|
54
|
+
* caller that persists its ladder seed and resumes across processes takes the
|
|
55
|
+
* completed branch WITHOUT re-entering `onCommitted`, so it must be able to
|
|
56
|
+
* treat an already-complete continuation as success on its own.
|
|
57
|
+
*
|
|
58
|
+
* @param options {object}
|
|
59
|
+
* @param options.store {RecoveryLogStore} public log read + delegated PUT
|
|
60
|
+
* @param options.recovery {object} the spent code's update seed and public
|
|
61
|
+
* halves
|
|
62
|
+
* @param options.recovery.updateSeed {Uint8Array}
|
|
63
|
+
* @param options.recovery.keyAgreementKeyMultibase {string}
|
|
64
|
+
* @param options.recovery.updateKeyMultibase {string}
|
|
65
|
+
* @param options.ladderSeed {Uint8Array} the FRESH credential's ladder seed
|
|
66
|
+
* (recovery binds a fresh passphrase, so the ladder exists at exactly this
|
|
67
|
+
* moment); rung 0, rung 1, and the ladder VM all derive from it
|
|
68
|
+
* @param options.credentialKeyAgreement {UnlockKeyAgreementPublication} the
|
|
69
|
+
* fresh credential's key-agreement publication (a commitment for a
|
|
70
|
+
* passphrase-derived key)
|
|
71
|
+
* @param options.replacement {RecoveryPublicKeys} the replacement code's
|
|
72
|
+
* public halves, committed and published in the same continuation
|
|
73
|
+
* @param [options.expectedDid] {string} the account DID the log must resolve
|
|
74
|
+
* to, where the recovering flow already knows it
|
|
75
|
+
* @param options.onCommitted {function}
|
|
76
|
+
* `() => Promise<{ clientAnnexDid: string }>` -- the persist-before-publish
|
|
77
|
+
* seam described above. Both the seam and the annex DID it returns are
|
|
78
|
+
* REQUIRED: the add entry points the `#DelegatedClients` service entry at
|
|
79
|
+
* it, and a caller that named no generation would republish the stranding
|
|
80
|
+
* this ordering exists to prevent
|
|
81
|
+
* @returns {Promise<object>} the account DID, the post-continuation
|
|
82
|
+
* document and log (the rotation's recipient source and anchor), and, when
|
|
83
|
+
* the add entry ran here, the final `did.json` projection
|
|
84
|
+
*/
|
|
85
|
+
export declare function recoverWebvhLadderAnchored(options: {
|
|
86
|
+
store: RecoveryLogStore;
|
|
87
|
+
recovery: RecoveryPublicKeys & {
|
|
88
|
+
updateSeed: Uint8Array;
|
|
89
|
+
};
|
|
90
|
+
ladderSeed: Uint8Array;
|
|
91
|
+
credentialKeyAgreement: UnlockKeyAgreementPublication;
|
|
92
|
+
replacement: RecoveryPublicKeys;
|
|
93
|
+
expectedDid?: string;
|
|
94
|
+
onCommitted: () => Promise<{
|
|
95
|
+
clientAnnexDid: string;
|
|
96
|
+
}>;
|
|
97
|
+
}): Promise<{
|
|
98
|
+
did: string;
|
|
99
|
+
doc: DIDDoc;
|
|
100
|
+
log: DIDLog;
|
|
101
|
+
webDoc?: object;
|
|
102
|
+
}>;
|
|
103
|
+
//# sourceMappingURL=recoveryLadderAnchored.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recoveryLadderAnchored.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/recoveryLadderAnchored.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,MAAM,EACN,MAAM,EAEP,MAAM,2BAA2B,CAAA;AAUlC,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,8BAA8B,CAAA;AAIrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IACxD,KAAK,EAAE,gBAAgB,CAAA;IACvB,QAAQ,EAAE,kBAAkB,GAAG;QAAE,UAAU,EAAE,UAAU,CAAA;KAAE,CAAA;IACzD,UAAU,EAAE,UAAU,CAAA;IACtB,sBAAsB,EAAE,6BAA6B,CAAA;IACrD,WAAW,EAAE,kBAAkB,CAAA;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,OAAO,CAAC;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACvD,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAEtE"}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* The transient-recovery continuation -- the ladder-anchored variant of the
|
|
6
|
+
* recovery subpath's `recoverWebvhClient`, split out beside the rest of the
|
|
7
|
+
* annex-anchored ceremonies: a code spent on a non-remembered browser mints
|
|
8
|
+
* no durable client, so the fresh credential's ladder VM stands in for one
|
|
9
|
+
* and the account lands client-less and ladder-anchored. The durable
|
|
10
|
+
* continuation and the recovery-key posture edits stay in
|
|
11
|
+
* `recovery/recoveryWebvh.ts`.
|
|
12
|
+
*/
|
|
13
|
+
import { deriveNextKeyHash, updateDID } from '@interop/did-method-webvh';
|
|
14
|
+
import { assertCarryOverCommitments, ladderVerificationMethod, MULTIKEY_VM_TYPE, relationIds, updateKeySigner, withLogConflictRetry } from '../webvh/didWebvh.js';
|
|
15
|
+
import { ladderVmIds } from '../webvh/listClients.js';
|
|
16
|
+
import { unlockKeyVerificationMethod, unlockKeyVmId } from '../unlock/standingWebvh.js';
|
|
17
|
+
import { publishLogOnly, readLogOrThrow, RecoveryKeyNotCommittedError, recoveryVmId } from '../recovery/recoveryWebvh.js';
|
|
18
|
+
import { ladderRung, ladderVmKeyMultibase } from './ladder.js';
|
|
19
|
+
import { clientAnnexDidParts, servicesPointedAtClientAnnex } from './log.js';
|
|
20
|
+
/**
|
|
21
|
+
* THE TRANSIENT-RECOVERY CONTINUATION (run by the code-derived client through
|
|
22
|
+
* the delegated `did.jsonl` PUT, on a non-remembered browser): the
|
|
23
|
+
* ladder-anchored variant of {@link recoverWebvhClient}. No durable client is
|
|
24
|
+
* minted anywhere; the fresh credential's LADDER stands in for one, so the
|
|
25
|
+
* account lands client-less and ladder-anchored. Two entries:
|
|
26
|
+
*
|
|
27
|
+
* 1. **Reveal + commit**: the code's update key joins `updateKeys` (its hash
|
|
28
|
+
* stands committed since issuance) and `nextKeyHashes` extends with the
|
|
29
|
+
* fresh ladder's rung-0 and rung-1 hashes (rung 0's own carry-over hash
|
|
30
|
+
* plus the staged rung, the ladder-anchored genesis posture) and the
|
|
31
|
+
* replacement code's update-key hash.
|
|
32
|
+
* 2. **Add + retire**, signed by the fresh ladder's rung 0: the ladder VM
|
|
33
|
+
* (the stable sibling, under `assertionMethod` and `capabilityDelegation`
|
|
34
|
+
* only) and the fresh credential's `keyAgreement` posture entry
|
|
35
|
+
* (commitment or verbatim -- the entry the mandatory rotation's recipient
|
|
36
|
+
* resolver will back the credential's standing wrap with) in; the
|
|
37
|
+
* replacement code's posture in; the spent code's VM, update key, and hash
|
|
38
|
+
* out; and EVERY standing ladder VM out -- the stale-third-party
|
|
39
|
+
* retirement no other ceremony performs (their revealed update keys and
|
|
40
|
+
* committed hashes stay: a standing credential keeps its account-ladder
|
|
41
|
+
* authority, and an unattributable hash cannot be named without its seed).
|
|
42
|
+
* Rung 0 replaces the spent code's key in `updateKeys`. This same entry
|
|
43
|
+
* also points `#DelegatedClients` at the annex generation `onCommitted`
|
|
44
|
+
* minted. That is what the atomicity buys: the entry retires the
|
|
45
|
+
* pre-recovery credential's ladder VM, so a pointer written after it would
|
|
46
|
+
* leave a window in which the document names a generation no surviving
|
|
47
|
+
* record's sibling delegation targets, and neither credential could enroll
|
|
48
|
+
* a transient client.
|
|
49
|
+
*
|
|
50
|
+
* The entry is the ceremony-tail license's posture-changing anchor: the
|
|
51
|
+
* `keyAgreement` posture set and the ladder-VM set both change here, which is
|
|
52
|
+
* what licenses the caller's ONE ladder-signed roster append (the mandatory
|
|
53
|
+
* rotation) anchored at it.
|
|
54
|
+
*
|
|
55
|
+
* `onCommitted` is the persist-before-publish seam: it runs after the
|
|
56
|
+
* reveal-and-commit entry stands (so a revoked code has already been refused)
|
|
57
|
+
* and BEFORE the add entry publishes the ladder VM -- the caller durably
|
|
58
|
+
* writes the replacement code's record and the fresh credential's unlock
|
|
59
|
+
* record (the ladder seed inside) there, so a tab death can never publish an
|
|
60
|
+
* anchor nobody can derive. It must be idempotent: the conflict retry and a
|
|
61
|
+
* resumed run invoke it again. It returns the fresh annex generation's DID,
|
|
62
|
+
* which the add entry then points the `#DelegatedClients` service entry at.
|
|
63
|
+
*
|
|
64
|
+
* Resumable from durable state alone, like the durable continuation: a
|
|
65
|
+
* completed run is detected by rung 0 already authorized; a torn one by the
|
|
66
|
+
* standing commitments. Note what the completion detection is scoped to: a
|
|
67
|
+
* caller that mints its ladder seed per call (freewallet's does) can only hit
|
|
68
|
+
* the completed branch inside this call's own conflict retry, since a later
|
|
69
|
+
* process derives a different rung 0 and re-runs the whole continuation. A
|
|
70
|
+
* caller that persists its ladder seed and resumes across processes takes the
|
|
71
|
+
* completed branch WITHOUT re-entering `onCommitted`, so it must be able to
|
|
72
|
+
* treat an already-complete continuation as success on its own.
|
|
73
|
+
*
|
|
74
|
+
* @param options {object}
|
|
75
|
+
* @param options.store {RecoveryLogStore} public log read + delegated PUT
|
|
76
|
+
* @param options.recovery {object} the spent code's update seed and public
|
|
77
|
+
* halves
|
|
78
|
+
* @param options.recovery.updateSeed {Uint8Array}
|
|
79
|
+
* @param options.recovery.keyAgreementKeyMultibase {string}
|
|
80
|
+
* @param options.recovery.updateKeyMultibase {string}
|
|
81
|
+
* @param options.ladderSeed {Uint8Array} the FRESH credential's ladder seed
|
|
82
|
+
* (recovery binds a fresh passphrase, so the ladder exists at exactly this
|
|
83
|
+
* moment); rung 0, rung 1, and the ladder VM all derive from it
|
|
84
|
+
* @param options.credentialKeyAgreement {UnlockKeyAgreementPublication} the
|
|
85
|
+
* fresh credential's key-agreement publication (a commitment for a
|
|
86
|
+
* passphrase-derived key)
|
|
87
|
+
* @param options.replacement {RecoveryPublicKeys} the replacement code's
|
|
88
|
+
* public halves, committed and published in the same continuation
|
|
89
|
+
* @param [options.expectedDid] {string} the account DID the log must resolve
|
|
90
|
+
* to, where the recovering flow already knows it
|
|
91
|
+
* @param options.onCommitted {function}
|
|
92
|
+
* `() => Promise<{ clientAnnexDid: string }>` -- the persist-before-publish
|
|
93
|
+
* seam described above. Both the seam and the annex DID it returns are
|
|
94
|
+
* REQUIRED: the add entry points the `#DelegatedClients` service entry at
|
|
95
|
+
* it, and a caller that named no generation would republish the stranding
|
|
96
|
+
* this ordering exists to prevent
|
|
97
|
+
* @returns {Promise<object>} the account DID, the post-continuation
|
|
98
|
+
* document and log (the rotation's recipient source and anchor), and, when
|
|
99
|
+
* the add entry ran here, the final `did.json` projection
|
|
100
|
+
*/
|
|
101
|
+
export async function recoverWebvhLadderAnchored(options) {
|
|
102
|
+
return withLogConflictRetry(() => recoverWebvhLadderAnchoredOnce(options));
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* One attempt of {@link recoverWebvhLadderAnchored}, re-invoked by the
|
|
106
|
+
* conflict retry.
|
|
107
|
+
*
|
|
108
|
+
* @param options {object} see {@link recoverWebvhLadderAnchored}
|
|
109
|
+
* @returns {Promise<{ did: string, doc: DIDDoc, log: DIDLog, webDoc?: object }>}
|
|
110
|
+
*/
|
|
111
|
+
async function recoverWebvhLadderAnchoredOnce({ store, recovery, ladderSeed, credentialKeyAgreement, replacement, expectedDid, onCommitted }) {
|
|
112
|
+
let published = await readLogOrThrow({
|
|
113
|
+
store,
|
|
114
|
+
...(expectedDid !== undefined ? { expectedDid } : {})
|
|
115
|
+
});
|
|
116
|
+
const rung0 = await ladderRung({ ladderSeed, index: 0 });
|
|
117
|
+
const rung1 = await ladderRung({ ladderSeed, index: 1 });
|
|
118
|
+
const ladderVmKey = await ladderVmKeyMultibase({ ladderSeed });
|
|
119
|
+
// Already complete (a torn earlier run finished the add entry): the fresh
|
|
120
|
+
// ladder's rung 0 is authorized, which only the add entry writes.
|
|
121
|
+
if (published.updateKeys.includes(rung0.keyMultibase)) {
|
|
122
|
+
return { did: published.did, doc: published.doc, log: published.log };
|
|
123
|
+
}
|
|
124
|
+
const recoveryHash = await deriveNextKeyHash(recovery.updateKeyMultibase);
|
|
125
|
+
const rung0Hash = await deriveNextKeyHash(rung0.keyMultibase);
|
|
126
|
+
const rung1Hash = await deriveNextKeyHash(rung1.keyMultibase);
|
|
127
|
+
const replacementHash = await deriveNextKeyHash(replacement.updateKeyMultibase);
|
|
128
|
+
// The reveal-and-commit entry, skipped when a torn earlier run already
|
|
129
|
+
// published it (the revealed key authorized AND every needed hash
|
|
130
|
+
// committed).
|
|
131
|
+
const revealed = published.updateKeys.includes(recovery.updateKeyMultibase);
|
|
132
|
+
const committed = [rung0Hash, rung1Hash, replacementHash].every(hash => published.nextKeyHashes.includes(hash));
|
|
133
|
+
if (!revealed || !committed) {
|
|
134
|
+
if (!revealed && !published.nextKeyHashes.includes(recoveryHash)) {
|
|
135
|
+
throw new RecoveryKeyNotCommittedError();
|
|
136
|
+
}
|
|
137
|
+
await assertCarryOverCommitments({ published });
|
|
138
|
+
const signer = await updateKeySigner({ seed: recovery.updateSeed });
|
|
139
|
+
const updated = await updateDID({
|
|
140
|
+
log: published.log,
|
|
141
|
+
signer,
|
|
142
|
+
alsoKnownAsWeb: true,
|
|
143
|
+
updateKeys: [
|
|
144
|
+
...new Set([...published.updateKeys, recovery.updateKeyMultibase])
|
|
145
|
+
],
|
|
146
|
+
// The spent code's own hash is kept through this entry (so a resumed
|
|
147
|
+
// commit can re-state the revealed key); the add entry drops it.
|
|
148
|
+
nextKeyHashes: [
|
|
149
|
+
...new Set([
|
|
150
|
+
...published.nextKeyHashes,
|
|
151
|
+
recoveryHash,
|
|
152
|
+
rung0Hash,
|
|
153
|
+
rung1Hash,
|
|
154
|
+
replacementHash
|
|
155
|
+
])
|
|
156
|
+
]
|
|
157
|
+
});
|
|
158
|
+
await publishLogOnly({
|
|
159
|
+
store,
|
|
160
|
+
log: updated.log,
|
|
161
|
+
ifMatch: published.etag
|
|
162
|
+
});
|
|
163
|
+
// The same account the reveal entry just extended.
|
|
164
|
+
published = await readLogOrThrow({ store, expectedDid: published.did });
|
|
165
|
+
}
|
|
166
|
+
// The persist-before-publish seam: the replacement code's record and the
|
|
167
|
+
// fresh credential's unlock record (the ladder seed inside) become durable
|
|
168
|
+
// HERE, before the add entry publishes the ladder VM that seed backs.
|
|
169
|
+
const persisted = await onCommitted();
|
|
170
|
+
// Refuses a malformed pointer target before the entry is built.
|
|
171
|
+
clientAnnexDidParts({ did: persisted.clientAnnexDid });
|
|
172
|
+
// The add-and-retire entry: the ladder VM, the fresh credential's
|
|
173
|
+
// keyAgreement posture, and the replacement code's posture in; the spent
|
|
174
|
+
// code's VM, update key, and hash out; every standing ladder VM out. Signed
|
|
175
|
+
// by rung 0, whose hash the commit entry just committed.
|
|
176
|
+
const { did, doc } = published;
|
|
177
|
+
const spentVmId = recoveryVmId({
|
|
178
|
+
did,
|
|
179
|
+
keyAgreementKeyMultibase: recovery.keyAgreementKeyMultibase
|
|
180
|
+
});
|
|
181
|
+
const replacementVmId = recoveryVmId({
|
|
182
|
+
did,
|
|
183
|
+
keyAgreementKeyMultibase: replacement.keyAgreementKeyMultibase
|
|
184
|
+
});
|
|
185
|
+
const ladderVms = ladderVmIds({ doc });
|
|
186
|
+
const ladderVm = ladderVerificationMethod({
|
|
187
|
+
controller: did,
|
|
188
|
+
publicKeyMultibase: ladderVmKey
|
|
189
|
+
});
|
|
190
|
+
const ladderVmId = `${did}#${ladderVmKey}`;
|
|
191
|
+
const credentialVm = unlockKeyVerificationMethod({
|
|
192
|
+
did,
|
|
193
|
+
keyAgreement: credentialKeyAgreement
|
|
194
|
+
});
|
|
195
|
+
const credentialVmId = unlockKeyVmId({
|
|
196
|
+
did,
|
|
197
|
+
keyAgreement: credentialKeyAgreement
|
|
198
|
+
});
|
|
199
|
+
const addedMethods = [
|
|
200
|
+
ladderVm,
|
|
201
|
+
credentialVm,
|
|
202
|
+
{
|
|
203
|
+
id: replacementVmId,
|
|
204
|
+
type: MULTIKEY_VM_TYPE,
|
|
205
|
+
controller: did,
|
|
206
|
+
publicKeyMultibase: replacement.keyAgreementKeyMultibase
|
|
207
|
+
}
|
|
208
|
+
];
|
|
209
|
+
const existingMethods = (doc.verificationMethod ?? []);
|
|
210
|
+
const verificationMethods = [
|
|
211
|
+
...existingMethods.filter(method => method.id !== spentVmId &&
|
|
212
|
+
!addedMethods.some(added => added.id === method.id) &&
|
|
213
|
+
(method.id === undefined || !ladderVms.includes(method.id))),
|
|
214
|
+
...addedMethods
|
|
215
|
+
];
|
|
216
|
+
const withoutRemoved = (relation, added) => [...new Set([...relationIds(relation), ...(added ?? [])])].filter(referencedId => referencedId !== spentVmId && !ladderVms.includes(referencedId));
|
|
217
|
+
const signer = await updateKeySigner({ seed: rung0.seed });
|
|
218
|
+
const updated = await updateDID({
|
|
219
|
+
log: published.log,
|
|
220
|
+
signer,
|
|
221
|
+
alsoKnownAsWeb: true,
|
|
222
|
+
updateKeys: [
|
|
223
|
+
...new Set([
|
|
224
|
+
...published.updateKeys.filter(key => key !== recovery.updateKeyMultibase),
|
|
225
|
+
rung0.keyMultibase
|
|
226
|
+
])
|
|
227
|
+
],
|
|
228
|
+
nextKeyHashes: published.nextKeyHashes.filter(hash => hash !== recoveryHash),
|
|
229
|
+
verificationMethods,
|
|
230
|
+
// The ladder VM's relation asymmetry: `assertionMethod` and
|
|
231
|
+
// `capabilityDelegation` only -- no `authentication`, no
|
|
232
|
+
// `capabilityInvocation` -- which is also what keeps it out of every
|
|
233
|
+
// client listing.
|
|
234
|
+
authentication: withoutRemoved(doc.authentication),
|
|
235
|
+
assertionMethod: withoutRemoved(doc.assertionMethod, [ladderVmId]),
|
|
236
|
+
keyAgreement: withoutRemoved(doc.keyAgreement, [
|
|
237
|
+
credentialVmId,
|
|
238
|
+
replacementVmId
|
|
239
|
+
]),
|
|
240
|
+
capabilityInvocation: withoutRemoved(doc.capabilityInvocation),
|
|
241
|
+
capabilityDelegation: withoutRemoved(doc.capabilityDelegation, [
|
|
242
|
+
ladderVmId
|
|
243
|
+
]),
|
|
244
|
+
// Atomic with the retirement above: the pointer and the ladder-VM set
|
|
245
|
+
// change in one entry, so no window exists in which the document points
|
|
246
|
+
// at a generation the surviving record cannot reach.
|
|
247
|
+
services: servicesPointedAtClientAnnex({
|
|
248
|
+
doc,
|
|
249
|
+
accountDid: did,
|
|
250
|
+
clientAnnexDid: persisted.clientAnnexDid
|
|
251
|
+
})
|
|
252
|
+
});
|
|
253
|
+
// Conditional on the read this entry was built on: the re-read above when
|
|
254
|
+
// the commit entry ran here, the first read when it was skipped.
|
|
255
|
+
await publishLogOnly({ store, log: updated.log, ifMatch: published.etag });
|
|
256
|
+
return {
|
|
257
|
+
did: updated.did,
|
|
258
|
+
doc: updated.doc,
|
|
259
|
+
log: updated.log,
|
|
260
|
+
webDoc: updated.webDoc
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
//# sourceMappingURL=recoveryLadderAnchored.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recoveryLadderAnchored.js","sourceRoot":"","sources":["../../src/clientAnnex/recoveryLadderAnchored.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,7 +38,7 @@ import type { UserKey } from '../keys/userKey.js';
|
|
|
38
38
|
import type { AccountPointer } from '../keyring/record.js';
|
|
39
39
|
import { type ResourceLogPinStore } from '../resourceLog/index.js';
|
|
40
40
|
import type { ClientWebvhUpdateKeys } from '../webvh/didWebvh.js';
|
|
41
|
-
import type { UnlockLogStore } from '
|
|
41
|
+
import type { UnlockLogStore } from '../unlock/standingWebvh.js';
|
|
42
42
|
/**
|
|
43
43
|
* Runs the whole self-enrollment described in the module doc. The caller has
|
|
44
44
|
* already unwrapped the credential's unlock record (so it holds the
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfEnroll.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/selfEnroll.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AASpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAA;AAKhC,OAAO,KAAK,EACV,qBAAqB,EAEtB,MAAM,sBAAsB,CAAA;AAQ7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,UAAU,EACV,yBAAyB,EACzB,QAAQ,EACR,kBAAkB,EACnB,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,EAAE,UAAU,CAAA;IACtB,yBAAyB,EAAE,gBAAgB,CAAA;IAC3C,QAAQ,EAAE,cAAc,CAAA;IACxB,kBAAkB,CAAC,EAAE,mBAAmB,CAAA;CACzC,GAAG,OAAO,CAAC;IACV,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,qBAAqB,CAAA;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAC,CAqGD"}
|
|
@@ -5,7 +5,7 @@ import { memoryResourceLogPinStore, webvhResourceLogController } from '../resour
|
|
|
5
5
|
import { mintClientWebvhUpdateKeys, updateKeyMultibase } from '../webvh/didWebvh.js';
|
|
6
6
|
import { verifyAccountLog } from '../webvh/verifyLog.js';
|
|
7
7
|
import { clientSigningKeyMultibase, isWebvhDid, webvhZcapClient } from '../webvh/zcap.js';
|
|
8
|
-
import { selfEnrollWebvhClient } from './
|
|
8
|
+
import { selfEnrollWebvhClient } from './ladderAnchored.js';
|
|
9
9
|
/**
|
|
10
10
|
* Runs the whole self-enrollment described in the module doc. The caller has
|
|
11
11
|
* already unwrapped the credential's unlock record (so it holds the
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfEnroll.js","sourceRoot":"","sources":["../../src/clientAnnex/selfEnroll.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ZcapClient } from '@interop/ezcap';
|
|
2
|
+
import type { ICapabilityAgent } from '../webvh/zcap.js';
|
|
3
|
+
/**
|
|
4
|
+
* A ZcapClient signing with the account ladder's document-visible
|
|
5
|
+
* verification method -- the ladder VM, derived from the credential's ladder
|
|
6
|
+
* seed and published under `assertionMethod` and `capabilityDelegation` only.
|
|
7
|
+
* Its keyId is `<accountDid>#<ladderVmMultibase>` (the flat Multikey shape
|
|
8
|
+
* `ladderVerificationMethod` publishes, which `@interop/zcap`'s `isController`
|
|
9
|
+
* check and the server's fragment resolver both depend on).
|
|
10
|
+
*
|
|
11
|
+
* Only DELEGATION is licensed for this client: the ladder VM carries no
|
|
12
|
+
* `capabilityInvocation`, so an invocation signed with it fails the server's
|
|
13
|
+
* current-key-set rule by construction. It exists so a ladder-anchored
|
|
14
|
+
* account -- or a transient session holding nothing but the unlock credential
|
|
15
|
+
* -- can
|
|
16
|
+
* mint the client annex generation delegation and the ladder-signed renewals.
|
|
17
|
+
*
|
|
18
|
+
* @param options {object}
|
|
19
|
+
* @param options.accountDid {string} the account did:webvh
|
|
20
|
+
* @param options.ladderSeed {Uint8Array} the credential's ladder seed, from
|
|
21
|
+
* its unlock record
|
|
22
|
+
* @returns {Promise<ZcapClient>}
|
|
23
|
+
*/
|
|
24
|
+
export declare function ladderVmZcapClient({ accountDid, ladderSeed }: {
|
|
25
|
+
accountDid: string;
|
|
26
|
+
ladderSeed: Uint8Array;
|
|
27
|
+
}): Promise<ZcapClient>;
|
|
28
|
+
/**
|
|
29
|
+
* The account ladder VM's key pair presented as a plain did:key agent -- the
|
|
30
|
+
* ladder-anchored signup's BOOTSTRAP identity. The data Space (and the
|
|
31
|
+
* auxiliary annex Space) of a credential-anchored signup are created
|
|
32
|
+
* under this
|
|
33
|
+
* did:key, exactly the role the founding client's persisted did:key plays in
|
|
34
|
+
* the durable flow: any later login that decrypts the unlock record
|
|
35
|
+
* re-derives the ladder seed and can finish (or unwind) a torn bootstrap --
|
|
36
|
+
* the durability precondition restored by derivation instead of persistence.
|
|
37
|
+
*
|
|
38
|
+
* The derivation matches {@link ladderVmZcapClient}'s exactly
|
|
39
|
+
* (`Ed25519VerificationKey.generate` over `ladderVmSeed`), so the bare
|
|
40
|
+
* did:key controller and the document-published ladder VM are one key.
|
|
41
|
+
*
|
|
42
|
+
* @param options {object}
|
|
43
|
+
* @param options.ladderSeed {Uint8Array} the credential's ladder seed
|
|
44
|
+
* @returns {Promise<ICapabilityAgent>}
|
|
45
|
+
*/
|
|
46
|
+
export declare function ladderVmAgent({ ladderSeed }: {
|
|
47
|
+
ladderSeed: Uint8Array;
|
|
48
|
+
}): Promise<ICapabilityAgent>;
|
|
49
|
+
//# sourceMappingURL=zcap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zcap.d.ts","sourceRoot":"","sources":["../../src/clientAnnex/zcap.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAGxD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,UAAU,EACV,UAAU,EACX,EAAE;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;CACvB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,aAAa,CAAC,EAClC,UAAU,EACX,EAAE;IACD,UAAU,EAAE,UAAU,CAAA;CACvB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4B5B"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Interop Alliance. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* ZCap signing under the ladder VM -- the document-visible key a standing
|
|
6
|
+
* credential derives from its ladder seed. The durable clients' signing
|
|
7
|
+
* wrappers stay in `webvh/zcap.ts`; these two live with the annex because
|
|
8
|
+
* only the credential-anchored flows (a ladder-anchored account, a transient
|
|
9
|
+
* session holding nothing but the unlock credential) ever sign as the ladder.
|
|
10
|
+
*/
|
|
11
|
+
import { Ed25519Signature2020 } from '@interop/ed25519-signature';
|
|
12
|
+
import { Ed25519VerificationKey } from '@interop/ed25519-verification-key';
|
|
13
|
+
import { ZcapClient } from '@interop/ezcap';
|
|
14
|
+
import { ladderVmSeed } from './ladder.js';
|
|
15
|
+
/**
|
|
16
|
+
* A ZcapClient signing with the account ladder's document-visible
|
|
17
|
+
* verification method -- the ladder VM, derived from the credential's ladder
|
|
18
|
+
* seed and published under `assertionMethod` and `capabilityDelegation` only.
|
|
19
|
+
* Its keyId is `<accountDid>#<ladderVmMultibase>` (the flat Multikey shape
|
|
20
|
+
* `ladderVerificationMethod` publishes, which `@interop/zcap`'s `isController`
|
|
21
|
+
* check and the server's fragment resolver both depend on).
|
|
22
|
+
*
|
|
23
|
+
* Only DELEGATION is licensed for this client: the ladder VM carries no
|
|
24
|
+
* `capabilityInvocation`, so an invocation signed with it fails the server's
|
|
25
|
+
* current-key-set rule by construction. It exists so a ladder-anchored
|
|
26
|
+
* account -- or a transient session holding nothing but the unlock credential
|
|
27
|
+
* -- can
|
|
28
|
+
* mint the client annex generation delegation and the ladder-signed renewals.
|
|
29
|
+
*
|
|
30
|
+
* @param options {object}
|
|
31
|
+
* @param options.accountDid {string} the account did:webvh
|
|
32
|
+
* @param options.ladderSeed {Uint8Array} the credential's ladder seed, from
|
|
33
|
+
* its unlock record
|
|
34
|
+
* @returns {Promise<ZcapClient>}
|
|
35
|
+
*/
|
|
36
|
+
export async function ladderVmZcapClient({ accountDid, ladderSeed }) {
|
|
37
|
+
const keyPair = await Ed25519VerificationKey.generate({
|
|
38
|
+
seed: ladderVmSeed({ ladderSeed })
|
|
39
|
+
});
|
|
40
|
+
const { publicKeyMultibase } = keyPair;
|
|
41
|
+
// The key pair refuses to hand out a signer without an id; set the
|
|
42
|
+
// document's verification-method id before asking.
|
|
43
|
+
keyPair.id = `${accountDid}#${publicKeyMultibase}`;
|
|
44
|
+
const keySigner = keyPair.signer();
|
|
45
|
+
const signer = {
|
|
46
|
+
id: `${accountDid}#${publicKeyMultibase}`,
|
|
47
|
+
type: 'Ed25519VerificationKey2020',
|
|
48
|
+
sign: keySigner.sign.bind(keySigner)
|
|
49
|
+
};
|
|
50
|
+
return new ZcapClient({
|
|
51
|
+
SuiteClass: Ed25519Signature2020,
|
|
52
|
+
invocationSigner: signer,
|
|
53
|
+
delegationSigner: signer
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The account ladder VM's key pair presented as a plain did:key agent -- the
|
|
58
|
+
* ladder-anchored signup's BOOTSTRAP identity. The data Space (and the
|
|
59
|
+
* auxiliary annex Space) of a credential-anchored signup are created
|
|
60
|
+
* under this
|
|
61
|
+
* did:key, exactly the role the founding client's persisted did:key plays in
|
|
62
|
+
* the durable flow: any later login that decrypts the unlock record
|
|
63
|
+
* re-derives the ladder seed and can finish (or unwind) a torn bootstrap --
|
|
64
|
+
* the durability precondition restored by derivation instead of persistence.
|
|
65
|
+
*
|
|
66
|
+
* The derivation matches {@link ladderVmZcapClient}'s exactly
|
|
67
|
+
* (`Ed25519VerificationKey.generate` over `ladderVmSeed`), so the bare
|
|
68
|
+
* did:key controller and the document-published ladder VM are one key.
|
|
69
|
+
*
|
|
70
|
+
* @param options {object}
|
|
71
|
+
* @param options.ladderSeed {Uint8Array} the credential's ladder seed
|
|
72
|
+
* @returns {Promise<ICapabilityAgent>}
|
|
73
|
+
*/
|
|
74
|
+
export async function ladderVmAgent({ ladderSeed }) {
|
|
75
|
+
const keyPair = await Ed25519VerificationKey.generate({
|
|
76
|
+
seed: ladderVmSeed({ ladderSeed })
|
|
77
|
+
});
|
|
78
|
+
const { publicKeyMultibase } = keyPair;
|
|
79
|
+
const did = `did:key:${publicKeyMultibase}`;
|
|
80
|
+
// The key pair refuses to hand out a signer without an id; the did:key
|
|
81
|
+
// verification-method form is what the server's did:key resolver expects.
|
|
82
|
+
keyPair.id = `${did}#${publicKeyMultibase}`;
|
|
83
|
+
keyPair.controller = did;
|
|
84
|
+
const keySigner = keyPair.signer();
|
|
85
|
+
const signer = {
|
|
86
|
+
id: `${did}#${publicKeyMultibase}`,
|
|
87
|
+
type: 'Ed25519VerificationKey2020',
|
|
88
|
+
sign: keySigner.sign.bind(keySigner)
|
|
89
|
+
};
|
|
90
|
+
return {
|
|
91
|
+
id: did,
|
|
92
|
+
handle: 'ladder-vm',
|
|
93
|
+
getSigner: () => signer,
|
|
94
|
+
getVerificationKeyPair: () => ({
|
|
95
|
+
type: 'Ed25519VerificationKey2020',
|
|
96
|
+
controller: did,
|
|
97
|
+
publicKeyMultibase
|
|
98
|
+
})
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=zcap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zcap.js","sourceRoot":"","sources":["../../src/clientAnnex/zcap.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;;;;;;GAMG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,UAAU,EACV,UAAU,EAIX;IACC,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC;QACpD,IAAI,EAAE,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;KACnC,CAAC,CAAA;IACF,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAA;IACtC,mEAAmE;IACnE,mDAAmD;IACnD,OAAO,CAAC,EAAE,GAAG,GAAG,UAAU,IAAI,kBAAkB,EAAE,CAAA;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IAClC,MAAM,MAAM,GAAG;QACb,EAAE,EAAE,GAAG,UAAU,IAAI,kBAAkB,EAAE;QACzC,IAAI,EAAE,4BAA4B;QAClC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAEV;KAC1B,CAAA;IACD,OAAO,IAAI,UAAU,CAAC;QACpB,UAAU,EAAE,oBAAoB;QAChC,gBAAgB,EAAE,MAAM;QACxB,gBAAgB,EAAE,MAAM;KACzB,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,UAAU,EAGX;IACC,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC;QACpD,IAAI,EAAE,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;KACnC,CAAC,CAAA;IACF,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAA;IACtC,MAAM,GAAG,GAAG,WAAW,kBAAkB,EAAE,CAAA;IAC3C,uEAAuE;IACvE,0EAA0E;IAC1E,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,kBAAkB,EAAE,CAAA;IAC3C,OAAO,CAAC,UAAU,GAAG,GAAG,CAAA;IACxB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IAClC,MAAM,MAAM,GAAG;QACb,EAAE,EAAE,GAAG,GAAG,IAAI,kBAAkB,EAAE;QAClC,IAAI,EAAE,4BAA4B;QAClC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAEV;KAC1B,CAAA;IACD,OAAO;QACL,EAAE,EAAE,GAAG;QACP,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM;QACvB,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7B,IAAI,EAAE,4BAA4B;YAClC,UAAU,EAAE,GAAG;YACf,kBAAkB;SACnB,CAAC;KACH,CAAA;AACH,CAAC"}
|