@real-life/trust-protocol 0.3.2 → 0.4.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/CHANGELOG.md +32 -0
- package/README.md +187 -78
- package/dist/ack.d.ts +84 -0
- package/dist/ack.d.ts.map +1 -0
- package/dist/ack.js +114 -0
- package/dist/ack.js.map +1 -0
- package/dist/adapters/vti-mediator.d.ts +154 -0
- package/dist/adapters/vti-mediator.d.ts.map +1 -0
- package/dist/adapters/vti-mediator.js +621 -0
- package/dist/adapters/vti-mediator.js.map +1 -0
- package/dist/anchor.d.ts +226 -0
- package/dist/anchor.d.ts.map +1 -0
- package/dist/anchor.js +347 -0
- package/dist/anchor.js.map +1 -0
- package/dist/{holder.d.ts → carrier-holder.d.ts} +1 -1
- package/dist/carrier-holder.d.ts.map +1 -0
- package/dist/{holder.js → carrier-holder.js} +5 -4
- package/dist/carrier-holder.js.map +1 -0
- package/dist/carrier-identity.js +4 -4
- package/dist/carrier-identity.js.map +1 -1
- package/dist/carrier.d.ts.map +1 -1
- package/dist/carrier.js +4 -3
- package/dist/carrier.js.map +1 -1
- package/dist/ceremony.d.ts +3 -2
- package/dist/ceremony.d.ts.map +1 -1
- package/dist/ceremony.js +16 -26
- package/dist/ceremony.js.map +1 -1
- package/dist/codec.d.ts +46 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +410 -0
- package/dist/codec.js.map +1 -0
- package/dist/continuity.d.ts +67 -0
- package/dist/continuity.d.ts.map +1 -0
- package/dist/continuity.js +110 -0
- package/dist/continuity.js.map +1 -0
- package/dist/core.d.ts +4 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js.map +1 -1
- package/dist/crypto.d.ts +23 -7
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +54 -20
- package/dist/crypto.js.map +1 -1
- package/dist/delivery.d.ts +31 -3
- package/dist/delivery.d.ts.map +1 -1
- package/dist/delivery.js +75 -28
- package/dist/delivery.js.map +1 -1
- package/dist/encounter/ceremony.d.ts +37 -0
- package/dist/encounter/ceremony.d.ts.map +1 -0
- package/dist/encounter/ceremony.js +662 -0
- package/dist/encounter/ceremony.js.map +1 -0
- package/dist/encounter.d.ts +91 -1
- package/dist/encounter.d.ts.map +1 -1
- package/dist/encounter.js +191 -12
- package/dist/encounter.js.map +1 -1
- package/dist/engine.d.ts +291 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +1395 -0
- package/dist/engine.js.map +1 -0
- package/dist/entropy.d.ts +28 -0
- package/dist/entropy.d.ts.map +1 -0
- package/dist/entropy.js +96 -0
- package/dist/entropy.js.map +1 -0
- package/dist/events.d.ts +177 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +2 -0
- package/dist/events.js.map +1 -0
- package/dist/fixtures.d.ts +30 -0
- package/dist/fixtures.d.ts.map +1 -0
- package/dist/fixtures.js +155 -0
- package/dist/fixtures.js.map +1 -0
- package/dist/forge.d.ts +47 -0
- package/dist/forge.d.ts.map +1 -0
- package/dist/forge.js +20 -0
- package/dist/forge.js.map +1 -0
- package/dist/group-star.d.ts +251 -0
- package/dist/group-star.d.ts.map +1 -0
- package/dist/group-star.js +348 -0
- package/dist/group-star.js.map +1 -0
- package/dist/holder-api.d.ts +137 -0
- package/dist/holder-api.d.ts.map +1 -0
- package/dist/holder-api.js +132 -0
- package/dist/holder-api.js.map +1 -0
- package/dist/holder-state-v1.d.ts +801 -0
- package/dist/holder-state-v1.d.ts.map +1 -0
- package/dist/holder-state-v1.js +2 -0
- package/dist/holder-state-v1.js.map +1 -0
- package/dist/identity-state.d.ts +43 -0
- package/dist/identity-state.d.ts.map +1 -0
- package/dist/identity-state.js +345 -0
- package/dist/identity-state.js.map +1 -0
- package/dist/identity.d.ts +24 -2
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +70 -11
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +26 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +77 -29
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +36 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +22 -0
- package/dist/internal.js.map +1 -0
- package/dist/introduction/holder.d.ts +18 -0
- package/dist/introduction/holder.d.ts.map +1 -0
- package/dist/introduction/holder.js +757 -0
- package/dist/introduction/holder.js.map +1 -0
- package/dist/introduction.d.ts +101 -0
- package/dist/introduction.d.ts.map +1 -0
- package/dist/introduction.js +132 -0
- package/dist/introduction.js.map +1 -0
- package/dist/invariants.d.ts +43 -0
- package/dist/invariants.d.ts.map +1 -0
- package/dist/invariants.js +883 -0
- package/dist/invariants.js.map +1 -0
- package/dist/keys-seed.d.ts +7 -0
- package/dist/keys-seed.d.ts.map +1 -0
- package/dist/keys-seed.js +133 -0
- package/dist/keys-seed.js.map +1 -0
- package/dist/log-memory.d.ts +12 -0
- package/dist/log-memory.d.ts.map +1 -0
- package/dist/log-memory.js +101 -0
- package/dist/log-memory.js.map +1 -0
- package/dist/membership/holder.d.ts +35 -0
- package/dist/membership/holder.d.ts.map +1 -0
- package/dist/membership/holder.js +852 -0
- package/dist/membership/holder.js.map +1 -0
- package/dist/membership.d.ts +92 -0
- package/dist/membership.d.ts.map +1 -0
- package/dist/membership.js +157 -0
- package/dist/membership.js.map +1 -0
- package/dist/ports.d.ts +237 -0
- package/dist/ports.d.ts.map +1 -0
- package/dist/ports.js +2 -0
- package/dist/ports.js.map +1 -0
- package/dist/profile.d.ts +56 -0
- package/dist/profile.d.ts.map +1 -0
- package/dist/profile.js +193 -0
- package/dist/profile.js.map +1 -0
- package/dist/prompts.d.ts +14 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +69 -0
- package/dist/prompts.js.map +1 -0
- package/dist/receive.d.ts +133 -0
- package/dist/receive.d.ts.map +1 -0
- package/dist/receive.js +298 -0
- package/dist/receive.js.map +1 -0
- package/dist/results.d.ts +158 -0
- package/dist/results.d.ts.map +1 -0
- package/dist/results.js +21 -0
- package/dist/results.js.map +1 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +42 -38
- package/dist/schemas.js.map +1 -1
- package/dist/sha256.d.ts +3 -0
- package/dist/sha256.d.ts.map +1 -0
- package/dist/sha256.js +69 -0
- package/dist/sha256.js.map +1 -0
- package/dist/star.d.ts +31 -0
- package/dist/star.d.ts.map +1 -0
- package/dist/star.js +56 -0
- package/dist/star.js.map +1 -0
- package/dist/state-builder.d.ts +42 -0
- package/dist/state-builder.d.ts.map +1 -0
- package/dist/state-builder.js +100 -0
- package/dist/state-builder.js.map +1 -0
- package/dist/state.d.ts +853 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +36 -0
- package/dist/state.js.map +1 -0
- package/dist/store-contract.d.ts +11 -0
- package/dist/store-contract.d.ts.map +1 -0
- package/dist/store-contract.js +189 -0
- package/dist/store-contract.js.map +1 -0
- package/dist/store-memory.d.ts +8 -0
- package/dist/store-memory.d.ts.map +1 -0
- package/dist/store-memory.js +17 -0
- package/dist/store-memory.js.map +1 -0
- package/dist/testing.d.ts +22 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +21 -0
- package/dist/testing.js.map +1 -0
- package/dist/trust/continuity.d.ts +71 -0
- package/dist/trust/continuity.d.ts.map +1 -0
- package/dist/trust/continuity.js +1216 -0
- package/dist/trust/continuity.js.map +1 -0
- package/dist/trust/duties.d.ts +67 -0
- package/dist/trust/duties.d.ts.map +1 -0
- package/dist/trust/duties.js +179 -0
- package/dist/trust/duties.js.map +1 -0
- package/dist/trust/entries.d.ts +139 -0
- package/dist/trust/entries.d.ts.map +1 -0
- package/dist/trust/entries.js +694 -0
- package/dist/trust/entries.js.map +1 -0
- package/dist/trust/group-star.d.ts +43 -0
- package/dist/trust/group-star.d.ts.map +1 -0
- package/dist/trust/group-star.js +188 -0
- package/dist/trust/group-star.js.map +1 -0
- package/dist/trust/mapping.d.ts +56 -0
- package/dist/trust/mapping.d.ts.map +1 -0
- package/dist/trust/mapping.js +584 -0
- package/dist/trust/mapping.js.map +1 -0
- package/dist/trust/profile.d.ts +25 -0
- package/dist/trust/profile.d.ts.map +1 -0
- package/dist/trust/profile.js +249 -0
- package/dist/trust/profile.js.map +1 -0
- package/dist/trust/star.d.ts +208 -0
- package/dist/trust/star.d.ts.map +1 -0
- package/dist/trust/star.js +588 -0
- package/dist/trust/star.js.map +1 -0
- package/dist/trust/state.d.ts +83 -0
- package/dist/trust/state.d.ts.map +1 -0
- package/dist/trust/state.js +154 -0
- package/dist/trust/state.js.map +1 -0
- package/dist/util-freeze.d.ts +3 -0
- package/dist/util-freeze.d.ts.map +1 -0
- package/dist/util-freeze.js +11 -0
- package/dist/util-freeze.js.map +1 -0
- package/dist/views.d.ts +147 -0
- package/dist/views.d.ts.map +1 -0
- package/dist/views.js +268 -0
- package/dist/views.js.map +1 -0
- package/dist/visibility.d.ts +5 -5
- package/dist/visibility.d.ts.map +1 -1
- package/dist/visibility.js +22 -28
- package/dist/visibility.js.map +1 -1
- package/dist/wire.d.ts +178 -84
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js.map +1 -1
- package/package.json +56 -10
- package/schemas/holder-state-v1.schema.json +3880 -0
- package/dist/holder.d.ts.map +0 -1
- package/dist/holder.js.map +0 -1
- package/dist/probe/acks.d.ts +0 -27
- package/dist/probe/acks.d.ts.map +0 -1
- package/dist/probe/acks.js +0 -152
- package/dist/probe/acks.js.map +0 -1
- package/dist/probe/continuity.d.ts +0 -20
- package/dist/probe/continuity.d.ts.map +0 -1
- package/dist/probe/continuity.js +0 -805
- package/dist/probe/continuity.js.map +0 -1
- package/dist/probe/deps.d.ts +0 -61
- package/dist/probe/deps.d.ts.map +0 -1
- package/dist/probe/deps.js +0 -54
- package/dist/probe/deps.js.map +0 -1
- package/dist/probe/encounter.d.ts +0 -26
- package/dist/probe/encounter.d.ts.map +0 -1
- package/dist/probe/encounter.js +0 -938
- package/dist/probe/encounter.js.map +0 -1
- package/dist/probe/introduce.d.ts +0 -62
- package/dist/probe/introduce.d.ts.map +0 -1
- package/dist/probe/introduce.js +0 -306
- package/dist/probe/introduce.js.map +0 -1
- package/dist/probe/membership.d.ts +0 -96
- package/dist/probe/membership.d.ts.map +0 -1
- package/dist/probe/membership.js +0 -467
- package/dist/probe/membership.js.map +0 -1
- package/dist/probe/trust.d.ts +0 -156
- package/dist/probe/trust.d.ts.map +0 -1
- package/dist/probe/trust.js +0 -1233
- package/dist/probe/trust.js.map +0 -1
- package/dist/probe.d.ts +0 -7
- package/dist/probe.d.ts.map +0 -1
- package/dist/probe.js +0 -42
- package/dist/probe.js.map +0 -1
package/dist/probe/trust.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trust.js","sourceRoot":"","sources":["../../src/probe/trust.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,mEAAmE;AACnE,qEAAqE;AACrE,iEAAiE;AACjE,wEAAwE;AACxE,gEAAgE;AAChE,uEAAuE;AACvE,wEAAwE;AACxE,wBAAwB;AACxB,EAAE;AACF,gDAAgD;AAChD,kEAAkE;AAClE,kEAAkE;AAClE,uEAAuE;AACvE,qEAAqE;AACrE,mEAAmE;AACnE,iEAAiE;AACjE,wEAAwE;AACxE,yEAAyE;AACzE,sEAAsE;AACtE,wEAAwE;AACxE,8CAA8C;AAC9C,qEAAqE;AACrE,yEAAyE;AACzE,uEAAuE;AACvE,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,CAAC,MAAM,WAAW,CAAA;AAE9B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzD,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAA;AAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAA;AAClC,MAAM,EAAE,GAAG,oCAAoC,CAAA;AAC/C,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACnD,MAAM,IAAI,GAAG,CAAC,GAAS,EAAE,EAAE,CAAC,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;AACjE,MAAM,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAChC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,IAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AACzG,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAA,CAAE,oCAAoC;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,IAAI,GAAG,GAAG,EAAE,CAAA,CAAE,sDAAsD;AACtG,MAAM,SAAS,GAAG,IAAI,CAAA,CAAgB,2BAA2B;AAEjE,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,IAAI,CAAE,QAAoB,EAAE,GAAW;IAC3D,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAChG,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1E,CAAC;AACD,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,QAAoB,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACjG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAE,CAAS;IAC/C,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAA;IACnF,OAAO,CAAC,CAAC,OAAO,CAAA;AAClB,CAAC;AACD,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAS,EAAE,OAAe,EAAE,EAAE;IAC3D,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACnC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;AAChE,CAAC,CAAA;AACD,mEAAmE;AACnE,oEAAoE;AACpE,yDAAyD;AACzD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAE,CAAS;IACxC,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACnC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAA;IACpF,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9F,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAA;AAC7D,CAAC;AACD,MAAM,YAAY,GAAG,KAAK,EAAE,GAAW,EAAE,IAAS,EAAE,UAAe,EAAE,EAAE;IACrE,IAAI,CAAC;QACH,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,KAAK,CAAA;QACzE,MAAM,GAAG,GAAG,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO,KAAK,CAAA;QACnD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;QACjF,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC5E,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAA;IAAC,CAAC;AAC1B,CAAC,CAAA;AACD,MAAM,QAAQ,GAAG,CAAC,OAAY,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAE,CAAC,CAAA;AACjH,MAAM,MAAM,GAAG,KAAK,EAAE,OAAY,EAAE,IAAY,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;AAE1F,0EAA0E;AAC1E,8DAA8D;AAC9D,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,4DAA4D;AAC5D,iEAAiE;AACjE,oEAAoE;AACpE,wDAAwD;AACxD,KAAK,UAAU,oBAAoB,CAAE,CAAS,EAAE,OAAY,EAAE,iBAAyB,EAAE,IAAY,EAAE,QAAgB;IACrH,MAAM,CAAC,GAAG,MAAM,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC3B,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACrJ,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;IACrB,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAE,CAAA;IAC1D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;YACpB,IAAI,EAAE,MAAM,KAAK,CAAC,MAAM,MAAM,CAAC,OAAO,EAAE,0BAA0B,CAAC,EAAE,GAAG,CAAC;YACzE,IAAI,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,0BAA0B,CAAC,EAAE,GAAG,CAAC;SAAE,EAAE,CAAA;AACzG,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,CAAS,EAAE,iBAAyB,EAAE,IAAY;IACnF,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjD,8DAA8D;IAC9D,qEAAqE;IACrE,oEAAoE;IACpE,4CAA4C;IAC5C,OAAO,aAAa,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACvC,IAAI,OAAO,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QACrF,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAC9C,MAAM,CAAC,GAAG,MAAM,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QACnF,IAAI,OAAO,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QACrF,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAA;QAC5B,OAAO,CAAC,WAAW,GAAG,CAAC,CAAA;QACvB,OAAO,CAAC,CAAA;IACV,CAAC,CAAC,CAAA;AACJ,CAAC;AACD,qEAAqE;AACrE,mEAAmE;AACnE,oEAAoE;AACpE,2DAA2D;AAC3D,6DAA6D;AAC7D,kEAAkE;AAClE,sCAAsC;AACtC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAE,CAAS,EAAE,CAAM,EAAE,UAAmB;IACzE,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,uCAAuC,EAAE,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA,CAAG,IAAI;QAC9E,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;QAChB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAA,CAAG,6DAA6D;QACtG,MAAM,GAAG,GAAG,UAAU,IAAI,CAAC,CAAC,IAAI,CAAA;QAChC,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,KAAK,CAAC,WAAW;YAAE,OAAO,KAAK,CAAA;QAC3D,IAAI,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,KAAK,CAAA,CAAuB,IAAI;QAC9E,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG;YAAE,OAAO,KAAK,CAAA,CAA0C,oCAAoC;QAC9G,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA,CAAE,uBAAuB;QAC/H,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA,CAA2B,IAAI;QAC9E,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QAClB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAE,CAAC,EAAE,0BAA0B,CAAC,CAAA,CAAE,8DAA8D;QAClM,IAAI,CAAC,MAAM,KAAK,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,0BAA0B,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA,CAAE,WAAW;QACnH,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,KAAK,CAAA,CAAiB,WAAW;QACrF,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAA;IAAC,CAAC;AAC1B,CAAC;AACD,gEAAgE;AAChE,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,MAAc,EAAE,UAAe,EAAE,UAAkB,EAAE,IAAY;IACnG,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC3B,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IAC3K,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;IACrB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAE,CAAC,EAAE,0BAA0B,CAAC,CAAA;IACtI,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;YACpB,IAAI,EAAE,MAAM,KAAK,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,0BAA0B,CAAC,EAAE,GAAG,CAAC;YACvE,IAAI,EAAE,MAAM,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC;SAAE,EAAE,CAAA;AAClC,CAAC;AAED,2EAA2E;AAC3E,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,UAAkB,EAAU,EAAE;IACxD,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACpC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AAClD,CAAC,CAAA;AACD,4DAA4D;AAC5D,qEAAqE;AACrE,2DAA2D;AAC3D,MAAM,SAAS,GAAG,CAAC,CAAS,EAA8D,EAAE,CAC1F,CAAE,CAAS,CAAC,SAAS,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;AACxE,MAAM,OAAO,GAAG,CAAC,CAAS,EAAU,EAAE,CAAE,CAAS,CAAC,cAAc,IAAI,eAAe,CAAA;AACnF,kEAAkE;AAClE,uEAAuE;AACvE,MAAM,MAAM,GAAG,CAAC,IAAY,EAAU,EAAE;IACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACjG,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AACD,wEAAwE;AACxE,uEAAuE;AACvE,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,eAAe,CAAA;AACtE,kEAAkE;AAClE,mEAAmE;AACnE,uEAAuE;AACvE,SAAS,YAAY,CAAE,CAAS,EAAE,CAAM,EAAE,UAAe,EAAE,MAAW,EAAE,IAAY;IAClF,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAA;IAClE,MAAM,IAAI,GAAG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAA;IACtD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IAAC,CAAC;IACvF,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjD,uEAAuE;IACvE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACpC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;YAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAC7E,CAAC;IACD,kEAAkE;IAClE,mEAAmE;IACnE,mDAAmD;IACnD,QAAQ,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpI,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;QAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;IAAC,CAAC;SAC3G,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAA;IAAC,CAAC;IACrE,OAAO,QAAQ,CAAA;AACjB,CAAC;AACD,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,CAAM,EAAE,IAAY,EAAE,EAAE;IACvD,yDAAyD;IACzD,OAAO,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1I,IAAI,CAAC,IAAI;YAAE,MACV;QAAC,IAAY,CAAC,MAAM,GAAG,UAAU,CAGjC;QAAC,IAAY,CAAC,UAAU,GAAG,IAAI,CAAA;QAChC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AACD;;;qCAGqC;AACrC,MAAM,UAAU,YAAY,CAAE,CAAS,EAAE,KAAa,EAAE,IAAY;IAClE,MAAM,CAAC,IAAI,CAAC,CAAA;IACZ,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;IACtB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5B,IAAI,CAAC,CAAC;QAAE,OAAM;IACd,qEAAqE;IACrE,mEAAmE;IACnE,kEAAkE;IAClE,4DAA4D;IAC5D,oCAAoC;IACpC,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAAC,CAAC;IACnH,CAAC;IACD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACrB,mEAAmE;IACnE,qEAAqE;IACrE,4DAA4D;IAC5D,4CAA4C;IAC5C,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC5B,IAAI,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC;YAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;QAAE,OAAM,CAAG,+CAA+C;IAC/E,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;QAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;IAAC,CAAC;AAC7E,CAAC;AACD,MAAM,UAAU,eAAe,CAAE,CAAS,EAAE,KAAa,EAAE,IAAY,EAAE,UAAkB,EAAE,IAAY;IACvG,MAAM,CAAC,IAAI,CAAC,CAAA;IACZ,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;IACtB,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC1B,IAAI,CAAC,EAAE,CAAC;QACN,iEAAiE;QACjE,iEAAiE;QACjE,kEAAkE;QAClE,mDAAmD;QACnD,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YAC1E,IAAI,IAAI,EAAE,CAAC;gBAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAAC,CAAC;;gBAC7D,CAAC,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,6DAA6D;QAC7D,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QAC/D,IAAI,IAAI,EAAE,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAAC,CAAC,GAAG,IAAI,CAAA;QAAC,CAAC;aAC9F,CAAC;YACJ,kEAAkE;YAClE,oDAAoD;YACpD,+DAA+D;YAC/D,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;YAC/D,IAAI,MAAM,KAAK,UAAU;gBAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAA;YAC3C,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAA,CAAE,wCAAwC;YAC7N,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AACD;;mEAEmE;AACnE,MAAM,UAAU,cAAc,CAAE,CAAS,EAAE,cAAsB,EAAE,UAAkB,EAAE,aAAqB,EAAE,IAAY;IACxH,MAAM,CAAC,IAAI,CAAC,CAAA;IACZ,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;IACtB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACtC,IAAI,CAAC,GAAG,IAAI,CAAA;IACZ,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,KAAK,MAAM;QAAE,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;SAC5E,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;QAAC,CAAC,GAAG,MAAM,CAAC;QAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IAAC,CAAC;IAChH,IAAI,CAAC,EAAE,CAAC;QAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAAC,CAAC;IAC1F,OAAO,CAAC,CAAA;AACV,CAAC;AACD,wEAAwE;AACxE,mEAAmE;AACnE,0DAA0D;AAC1D,qEAAqE;AACrE,qEAAqE;AACrE,mEAAmE;AACnE,6DAA6D;AAC7D,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,KAAa,EAAE,KAAa,EAAE,UAAkB,EAAE,KAAc,EAAE,EAAE;IACjG,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACvC,IAAI,CAAC;QAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;IACpG,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AACD,oEAAoE;AACpE,yEAAyE;AACzE,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,CAAM,EAA2C,EAAE;IACpF,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW;YAAE,SAAQ;QACjC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;YAAE,IAAI,GAAG,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AACD;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAE,CAAS,EAAE,IAAY;IAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAO,CAAA;IAC3B,MAAM,GAAG,GAAwC,EAAE,CAAA;IACnD,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAQ;QACzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACX,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;YAAE,SAAQ,CAAG,kDAAkD;QAC1F,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAU,gCAAgC;QACxE,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QACnD,kEAAkE;QAClE,0DAA0D;aACrD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,IAAI,CAAC,CAAC,UAAU,GAAG,UAAU;YAAE,SAAQ,CAAE,8BAA8B;;YAC7G,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnF,CAAC;AAED,0EAA0E;AAC1E,MAAM,KAAK,GAAG,CAAC,OAAY,EAAE,iBAAyB,EAAE,IAAY,EAAE,EAAE,CACtE,MAAM,CAAC,OAAO,EAAE,8BAA8B,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC,CAAA;AAC1G,MAAM,OAAO,GAAG,CAAC,OAAY,EAAE,iBAAyB,EAAE,IAAY,EAAE,EAAE,CACxE,MAAM,CAAC,OAAO,EAAE,8BAA8B,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,CAAA;AAC1G,wEAAwE;AACxE,wEAAwE;AACxE,KAAK,UAAU,eAAe,CAAE,OAAY,EAAE,iBAAyB,EAAE,IAAY,EAAE,IAAyC;IAC9H,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAA;IACvD,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IACvF,OAAO,CAAC,IAAI,EAAE,CAAA;IACd,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAA;QAC/I,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAE,CAAS,EAAE,OAAY,EAAE,IAAY;IACpE,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,IAAI,CAAA,CAAG,wDAAwD;IAC/F,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACtC,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA,CAAC,gCAAgC;QACrE,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA,CAAI,0BAA0B;QAC/D,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QACzE,oEAAoE;QACpE,+DAA+D;QAC/D,0DAA0D;QAC1D,qBAAqB;QACrB,SAAS,CAAC;YACR,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC5B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,GAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC/D,IAAI,OAAO,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAA,CAAC,+DAA+D;YACpG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAAE,SAAQ;YAC9C,OAAO,CAAC,WAAW,GAAG,IAAI,CAAA,CAAW,kCAAkC;YACvE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACvB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AACD,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,SAAS,CAAE,CAAS,EAAE,KAAU,EAAE,IAAS,EAAE,MAAc;IAC/E,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACvE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,GAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;AACtD,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAE,CAAS;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG;YAAE,SAAQ;QACxD,MAAM,KAAK,GAAG,EAAE,CAAA;QAChB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAA;QACtB,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;gBAAE,SAAQ;YACnE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;YACtB,IAAI,MAAM,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACrF,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAA,CAAE,yCAAyC;IAC3H,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,MAAM,GAAG,CAAC,UAAe,EAAE,QAAgB,EAAE,aAAqB,EAAE,YAAoB,EAAE,EAAE,CAChG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,6BAA6B,aAAa,IAAI,YAAY,EAAE,CAAC,CAAC,CAAA;AACzI,+DAA+D;AAC/D,oEAAoE;AACpE,yDAAyD;AACzD,KAAK,UAAU,cAAc,CAAE,CAAS,EAAE,iBAAyB,EAAE,KAAa,EAAE,IAAY,EAAE,QAAgB;IAChH,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;IACpJ,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACrG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAA;AAC5D,CAAC;AAED,2EAA2E;AAC3E,sEAAsE;AACtE,sEAAsE;AACtE,mEAAmE;AACnE,sEAAsE;AACtE,MAAM,QAAQ,GAAG,CAAC,OAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,GAAG,EAAe,CAAC,CAAA;AAC9E,KAAK,UAAU,OAAO,CAAE,CAAS,EAAE,iBAAyB,EAAE,IAAY,EAAE,OAAY,EAAE,IAAY,EAAE,QAAgB,EAAE,OAAY,EAAE,EAAE,MAAW,EAAE;IACrJ,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjD,MAAM,GAAG,GAAG;QACV,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,GAAG,MAAM;QAC1C,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,iBAAiB;QAChE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO;KACzC,CAAA;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACrC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IACrE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,EAAE,CAAA;AAClD,CAAC;AACD,0EAA0E;AAC1E,wEAAwE;AACxE,6DAA6D;AAC7D,oEAAoE;AACpE,iEAAiE;AACjE,6DAA6D;AAC7D,qEAAqE;AACrE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAI,OAAY,EAAE,EAAoB,EAAc,EAAE;IACjF,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACjE,OAAO,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACvC,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAY,EAAE,KAAa,EAAU,EAAE;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;IAC/C,IAAI,IAAI,GAAG,eAAe;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IAC7F,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;AACrB,CAAC,CAAA;AACD,uEAAuE;AACvE,KAAK,UAAU,UAAU,CAAE,CAAS,EAAE,iBAAyB,EAAE,IAAY,EAAE,OAAY,EAAE,IAAY,EAAE,QAAgB,EAAE,OAAY,EAAE,EAAE,MAAW,EAAE;IACxJ,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjD,MAAM,GAAG,GAAG;QACV,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,GAAG,MAAM;QAC1C,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,iBAAiB;QAChE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO;KACzC,CAAA;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;IACjE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE,CAAA;AAC3H,CAAC;AACD,MAAM,SAAS,GAAG,CAAC,IAAS,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAA,CAAC,CAAC,CAAA;AACzG,kEAAkE;AAClE,oEAAoE;AACpE,mEAAmE;AACnE,gEAAgE;AAChE,kEAAkE;AAClE,MAAM,WAAW,GAAG,CAAC,OAAY,EAAU,EAAE;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,EAAE,CAAA;IACpD,IAAI,IAAI,GAAG,eAAe;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IAC7F,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;AACrB,CAAC,CAAA;AACD,kEAAkE;AAClE,oEAAoE;AACpE,sEAAsE;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAI,OAAY,EAAE,EAAoB,EAAc,EAAE;IACnF,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAChE,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACtC,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AACD,MAAM,YAAY,GAAG,eAAe,CAAA;AACpC,uEAAuE;AACvE,6CAA6C;AAC7C,MAAM,KAAK,GAAG,CAAC,OAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAkD,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAe,EAAE,CAAC,CAAA;AACnK,MAAM,QAAQ,GAAG,CAAC,CAAQ,EAAE,CAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAEvI;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAE,CAAS,EAAE,iBAAyB,EAAE,IAAY,EAAE,MAAW,EAAE;IAChG,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,IAAI,CAAA;IAC9F,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACtC,gEAAgE;QAChE,mEAAmE;QACnE,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,IAAI,CAAA;QAC3D,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAC1B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;QACxB,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QACzD,kEAAkE;QAClE,kEAAkE;QAClE,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAAC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;oBAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAAC,CAAC;QAC7H,CAAC;QACD,2DAA2D;QAC3D,kEAAkE;QAClE,gEAAgE;QAChE,0DAA0D;QAC1D,8DAA8D;QAC9D,+DAA+D;QAC/D,mEAAmE;QACnE,2DAA2D;QAC3D,kEAAkE;QAClE,iEAAiE;QACjE,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA,CAAG,qEAAqE;QACzG,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;QAC/D,mEAAmE;QACnE,iEAAiE;QACjE,8DAA8D;QAC9D,mEAAmE;QACnE,gEAAgE;QAChE,iEAAiE;QACjE,4BAA4B;QAC5B,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC5E,MAAM,KAAK,GAAG,EAAE,CAAA;YAChB,KAAK,MAAM,KAAK,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;YAC5H,8DAA8D;YAC9D,kEAAkE;YAClE,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAA;YAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,GAAG,GAAG,CAAA;gBACV,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAA,CAAE,2CAA2C;gBACtG,SAAQ;YACV,CAAC;YACD,gEAAgE;YAChE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAA;YAC1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe,CAAA;YACtC,MAAM,IAAI,GAAG,EAAE,CAAA;YACf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAAC,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAAC,CAAC;YACzH,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;YACjD,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QACtD,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,yEAAyE;AACzE,qEAAqE;AACrE,kEAAkE;AAClE,mBAAmB;AACnB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,OAAY,EAAE,KAAa,EAAE,EAAE;IACtE,OAAO,CAAC,YAAY,GAAG,KAAK,CAAA;IAC5B,OAAO,CAAC,aAAa,GAAG,CAAE,CAAS,CAAC,aAAa,GAAG,CAAE,CAAS,CAAC,aAAa,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;AAC5F,CAAC,CAAA;AACD,2EAA2E;AAC3E,+DAA+D;AAC/D,oEAAoE;AACpE,oEAAoE;AACpE,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAE,CAAS,EAAE,iBAAyB,EAAE,IAAY,EAAE,MAAW,EAAE;IAC/F,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAA;IAC9C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG;QAAE,OAAO,EAAE,KAAK,EAAE,+DAA+D,EAAE,CAAA;IAC5G,kEAAkE;IAClE,oEAAoE;IACpE,kEAAkE;IAClE,kEAAkE;IAClE,OAAO,aAAa,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACvC,6DAA6D;QAC7D,kEAAkE;QAClE,mDAAmD;QACnD,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAA;QACjG,IAAI,OAAO,CAAC,UAAU;YAAE,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAA;QAC1E,IAAI,OAAO,CAAC,YAAY;YAAE,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAA,CAAE,wBAAwB;QACtG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAA;QAC3H,OAAO,CAAC,YAAY,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;YAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAChD,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC3B,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;YACvF,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YACnF,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;YAClH,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;YACvG,IAAI,OAAO,CAAC,WAAW;gBAAE,OAAO,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAA,CAAE,oCAAoC;YACvI,wEAAwE;YACxE,OAAO,CAAC,SAAS,GAAG,MAAM,CAAA;YAC1B,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAA;YAC9B,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;YACrD,OAAO,CAAC,UAAU,GAAG,OAAO,CAAA;YAC5B,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA,CAAE,sEAAsE;YAC5G,OAAO,CAAC,WAAW,GAAG,OAAO,CAAA;YAC7B,GAAG,CAAC,CAAC,EAAE,0BAA0B,OAAO,CAAC,IAAI,kEAAkE,CAAC,CAAA;YAChH,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;QACxD,CAAC;gBAAS,CAAC;YAAC,OAAO,CAAC,YAAY,GAAG,KAAK,CAAA;QAAC,CAAC;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC;AACD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAE,CAAS,EAAE,iBAAyB,EAAE,KAA0B,EAAE,IAAY,EAAE,MAAW,EAAE;IAC3H,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjD,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;IACzF,OAAO,aAAa,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACvC,8DAA8D;QAC9D,oEAAoE;QACpE,6DAA6D;QAC7D,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAA;QACjG,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA,CAAG,iDAAiD;QACpG,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC3E,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;QAClG,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,EAAE,KAAK,EAAE,sDAAsD,EAAE,CAAA,CAAE,oCAAoC;QACvI,8CAA8C;QAC9C,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAA;QAC9B,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;QAC3B,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;QAChC,GAAG,CAAC,CAAC,EAAE,UAAU,KAAK,gBAAgB,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QACrD,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC;AACD,oEAAoE;AACpE,gEAAgE;AAChE,MAAM,UAAU,cAAc,CAAE,CAAS,EAAE,iBAAyB,EAAE,MAAe;IACnF,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjD,IAAI,CAAC,OAAO,EAAE,UAAU;QAAE,OAAM;IAChC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAA;IAC9B,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,sBAAsB,OAAO,CAAC,IAAI,gCAAgC,CAAC,CAAC,CAAC,sBAAsB,OAAO,CAAC,IAAI,eAAe,CAAC,CAAA;AACzI,CAAC;AACD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAE,CAAS,EAAE,iBAAyB,EAAE,IAAY,EAAE,MAAW,EAAE;IACnG,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjD,mEAAmE;IACnE,gDAAgD;IAChD,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC;QAAE,OAAO,IAAI,CAAA;IAC7H,gEAAgE;IAChE,gEAAgE;IAChE,qEAAqE;IACrE,IAAI,OAAO,CAAC,cAAc;QAAE,OAAO,IAAI,CAAA,CAAmB,gBAAgB;IAC1E,OAAO,CAAC,cAAc,GAAG,IAAI,CAAA;IAC7B,IAAI,CAAC;QACH,OAAO,MAAM,aAAa,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YAC7C,IAAI,OAAO,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAA,CAAG,gDAAgD;YACvF,uDAAuD;YACvD,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC;gBAAE,IAAI,CAAC,CAAC,IAAI,KAAK,mBAAmB,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC;oBACxF,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,+CAA+C,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAA;gBACxH,CAAC;YACD,kEAAkE;YAClE,8DAA8D;YAC9D,mEAAmE;YACnE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;gBAAE,OAAO,IAAI,CAAA;YAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,YAAY,IAAI,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC3G,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;YACjH,IAAI,KAAU,EAAE,OAAY,EAAE,MAA0B,CAAA;YACxD,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAG,8CAA8C;gBACtG,IAAI,CAAC;oBACH,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;oBACtC,OAAO,GAAG,MAAM,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;oBACjF,KAAK,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;gBAClG,CAAC;gBAAC,MAAM,CAAC;oBAAC,KAAK,GAAG,SAAS,CAAA,CAAC,oFAAoF;gBAAC,CAAC;YACpH,CAAC;YACD,IAAI,OAAO,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAA,CAAG,oCAAoC;YAC3E,qCAAqC;YACrC,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAA;YAC9B,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAG,sDAAsD;YACpG,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;YACnC,IAAI,KAAK,EAAE,CAAC;gBAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;gBAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAA;YAAC,CAAC;YACzG,GAAG,CAAC,CAAC,EAAE,mDAAmD,OAAO,CAAC,IAAI,gCAAgC,CAAC,CAAA;YACvG,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;QAClC,CAAC,CAAC,CAAA;IACJ,CAAC;YAAS,CAAC;QAAC,OAAO,CAAC,cAAc,GAAG,KAAK,CAAA;IAAC,CAAC;AAC9C,CAAC;AACD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAE,CAAS,EAAE,IAAY,EAAE,MAAW,EAAE;IAC1E,MAAM,QAAQ,GAAU,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAoC,EAAE,CAAA;IACpD,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,WAAW;YAAE,SAAQ;QACjC,IAAI,CAAC;YACH,+DAA+D;YAC/D,gEAAgE;YAChE,qDAAqD;YACrD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;gBAClD,IAAI,CAAC;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;YACrC,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW;gBAAE,SAAQ;YACxD,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;YAC/C,IAAI,CAAC;gBAAE,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,IAAI;oBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;QACpF,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;QAAC,CAAC;IACpG,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;AAC9C,CAAC;AAED,2EAA2E;AAC3E,MAAM,KAAK,GAAG,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA;AAC3C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAE,CAAS,EAAE,GAAQ,EAAE,IAAY,EAAE,MAAW,EAAE;IACrF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC3C,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC3C,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAA;IACzG,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IACzC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,SAAS,CAAA;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;IACtB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,+DAA+D;QAC/D,yDAAyD;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAChD,yFAAyF;QACzF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,2CAA2C,EAAE,GAAG,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;IACpK,CAAC;IACD,+DAA+D;IAC/D,gEAAgE;IAChE,2DAA2D;IAC3D,oEAAoE;IACpE,0DAA0D;IAC1D,qCAAqC;IACrC,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,sEAAsE;QACtE,kEAAkE;QAClE,kEAAkE;QAClE,4DAA4D;QAC5D,0DAA0D;QAC1D,8DAA8D;QAC9D,kEAAkE;QAClE,uEAAuE;QACvE,8DAA8D;QAC9D,IAAI,CAAC,QAAQ,CAAC,oCAAoC,EAAE,GAAG,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;QAC/G,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA,CAAG,0BAA0B;QAC9H,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YACtC,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAO,CAAC;gBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;YACjG,OAAO,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QAClD,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,OAAO,GAAG,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IAC7F,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IACtC,IAAI,CAAC,CAAC,oBAAoB,EAAE,uBAAuB,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IAC/G,wEAAwE;IACxE,IAAI,CAAC,QAAQ,CAAC,oCAAoC,EAAE,GAAG,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;IAC/G,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAA;IACtG,8DAA8D;IAC9D,qEAAqE;IACrE,4CAA4C;IAC5C,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA,CAAG,0BAA0B;IAC9H,iEAAiE;IACjE,kEAAkE;IAClE,qEAAqE;IACrE,sDAAsD;IACtD,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAA;IACxF,iEAAiE;IACjE,2DAA2D;IAC3D,mEAAmE;IACnE,gEAAgE;IAChE,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC5F,MAAM,MAAM,GAAG,CAAC,MAAW,EAAE,MAAW,EAAE,EAAE;QAC1C,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAC7B;QAAA,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACzD,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAA;IAChF,CAAC,CAAA;IACD,MAAM,EAAE,GAAQ,MAAM,CAAC,KAAK,IAAI,EAAE;QAAG,QAAQ,IAAI,EAAE,CAAC;YAClD,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC1B,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;oBACxC,iFAAiF;oBACjF,IAAI,IAAI,CAAC,WAAW;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;oBAC1E,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAO,CAAC,EAAE,CAAC;wBACvD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;wBAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,2CAA2C,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;oBACnJ,CAAC;oBACD,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAA;oBACrB,iEAAiE;oBACjE,IAAI,CAAC,QAAQ,CAAC,uCAAuC,EAAE,CAAC,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;oBAC/G,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAA;oBAC9F,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAA,CAAE,uCAAuC;oBACpI,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK,SAAS;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,+DAA+D,EAAE,CAAA,CAAE,gDAAgD;oBAC7L,mEAAmE;oBACnE,6DAA6D;oBAC7D,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;wBAAC,GAAG,CAAC,CAAC,EAAE,eAAe,IAAI,CAAC,IAAI,gCAAgC,CAAC,CAAC;wBAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;oBAAC,CAAC;oBAC3J,6DAA6D;oBAC7D,gEAAgE;oBAChE,8DAA8D;oBAC9D,yDAAyD;oBACzD,qBAAqB;oBACrB,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC;wBAC7D,IAAI,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;4BAC3D,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAA;4BAC5B,IAAI,IAAI,CAAC,WAAW;gCAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;4BAC1E,OAAO,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;wBAC5D,CAAC;wBACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,+CAA+C,EAAE,CAAA;oBAClF,CAAC;oBACD,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAA;oBAC3H,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAA,CAAa,6BAA6B;oBACtE,mEAAmE;oBACnE,kEAAkE;oBAClE,kEAAkE;oBAClE,IAAI,IAAI,CAAC,WAAW;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;oBAC1E,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAA;oBACtI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;oBAC/B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;oBAC7B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;oBAChB,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAA;oBACjC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;oBAC7E,CAAC,CAAC,UAAU,KAAK,IAAI,CAAA,CAAoB,2CAA2C;oBACpF,gEAAgE;oBAChE,6CAA6C;oBAC7C,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC;wBAAE,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;oBACzH,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,2EAA2E,CAAC,CAAA;oBAC/F,8DAA8D;oBAC9D,OAAO,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;gBACpG,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,KAAK,uBAAuB,CAAC,CAAC,CAAC;gBAC7B,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;oBACxC,IAAI,IAAI,CAAC,WAAW;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;oBAC1E,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAO,CAAC,EAAE,CAAC;wBACvD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;wBAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,2CAA2C,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;oBACnJ,CAAC;oBACD,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAA;oBACrB,IAAI,CAAC,QAAQ,CAAC,0CAA0C,EAAE,CAAC,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;oBAChH,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAA;oBAC9F,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAA,CAAE,uCAAuC;oBACpI,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK,SAAS;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,+DAA+D,EAAE,CAAA,CAAE,gDAAgD;oBAC7L,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,CAAA;oBAC7H,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBACnG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;oBAC/F,uDAAuD;oBACvD,kCAAkC;oBAClC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,EAAE,CAAC;wBAC/D,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;4BACzD,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAA;4BAC5B,IAAI,IAAI,CAAC,WAAW;gCAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;4BAC1E,OAAO,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;wBAC5D,CAAC;wBACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,+CAA+C,EAAE,CAAA;oBAClF,CAAC;oBACD,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAA;oBAC3H,MAAM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAA,CAAa,6BAA6B;oBACtE,IAAI,IAAI,CAAC,WAAW;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA,CAAE,oCAAoC;oBAChH,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAA;oBACtI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAA;oBACjC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,CAAiB,gDAAgD;oBAC/F,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;oBAC3B,IAAI,CAAC,YAAY,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA,CAAG,2CAA2C;oBAC1F,IAAI,IAAI,CAAC,UAAU;wBAAE,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;oBACjG,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;oBACtD,OAAO,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;gBAC5E,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,6DAA6D;gBAC7D,sDAAsD;gBACtD,OAAO,YAAY,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;oBACrC,IAAI,IAAI,CAAC,WAAW;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA,CAAE,4CAA4C;oBACxH,6DAA6D;oBAC7D,qEAAqE;oBACrE,IAAI,CAAC,CAAC,CAAC,aAAa,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAO,CAAC,EAAE,CAAC;wBACvD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;wBAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,2CAA2C,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;oBACnJ,CAAC;oBACD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAA;oBACzB,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE,KAAK,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAA;oBACtG,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAA;oBAC9F,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK,SAAS;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,+DAA+D,EAAE,CAAA,CAAE,gDAAgD;oBAC7L,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;oBACpB,yDAAyD;oBACzD,mCAAmC;oBACnC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAA;oBAC1H,6DAA6D;oBAC7D,8DAA8D;oBAC9D,0DAA0D;oBAC1D,4DAA4D;oBAC5D,mDAAmD;oBACnD,IAAI,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAA;oBAC5G,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;oBAC9C,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;oBAC7F,iEAAiE;oBACjE,8DAA8D;oBAC9D,+DAA+D;oBAC/D,2DAA2D;oBAC3D,yBAAyB;oBACzB,IAAI,IAAI,CAAC,WAAW;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA;oBAC1E,+DAA+D;oBAC/D,0DAA0D;oBAC1D,gEAAgE;oBAChE,gDAAgD;oBAChD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;oBACvB,MAAM,SAAS,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBAC1D,IAAI,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAA;oBAClH,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,SAA+B,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;oBAC3J,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;wBAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;wBAAC,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAA;oBAAC,CAAC;oBACpM,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAA;oBACjB,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;wBAAC,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAA;oBAAC,CAAC;oBACxJ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;wBAAC,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAA;oBAAC,CAAC;oBAC7K,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;oBACzC,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;wBAAC,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;oBAAC,CAAC;oBACvL,iEAAiE;oBACjE,+DAA+D;oBAC/D,gEAAgE;oBAChE,IAAI,QAAQ,KAAK,SAAS;wBAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE;4BAAE,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;gCAAC,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gCAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAA;4BAAC,CAAC;oBACpO,IAAI,MAAW,CAAA;oBACf,MAAM,SAAS,GAAG,QAAQ,KAAK,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;wBAAE,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAAE,OAAO,KAAK,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC,CAAC,EAAE,CAAA;oBACnL,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,GAAG,MAAM,KAAK,EAAE,CAAA;wBACtB,IAAI,IAAI,CAAC,WAAW;4BAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA,CAAE,oCAAoC;wBAChH,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA,CAA6B,6CAA6C;wBACtF,IAAI,CAAC,CAAC,IAAI;4BAAE,CAAC,CAAC,OAAO,GAAG,GAAG,CAAA;wBAC3B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;wBACpB,OAAO,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;oBACzD,CAAC;oBACD,gEAAgE;oBAChE,+DAA+D;oBAC/D,yDAAyD;oBACzD,mEAAmE;oBACnE,MAAM,KAAK,GAAa,EAAE,CAAA;oBAC1B,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,QAAS,CAAC,EAAE,CAAC,EAAE;wBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;oBACtH,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;oBACzE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;wBAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;wBAAC,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAA;oBAAC,CAAC;oBACvM,MAAM,GAAG,MAAM,KAAK,EAAE,CAAA,CAAG,qDAAqD;oBAC9E,IAAI,IAAI,CAAC,WAAW;wBAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA,CAAE,oCAAoC;oBAChH,IAAI,CAAC,GAAG,GAAG,SAAS,CAAA;oBACpB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAA;oBACxB,IAAI,CAAC,YAAY,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;oBACpE,IAAI,IAAI,CAAC,UAAU;wBAAE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU;4BAAE,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gCAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAE,mDAAmD;oBACxK,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;oBACzD,MAAM,eAAe,CAAC,CAAC,CAAC,CAAA;oBACxB,GAAG,CAAC,CAAC,EAAE,sBAAsB,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,yBAAyB,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;oBAC3F,OAAO,GAAG,CAAA;gBACV,CAAC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IAAC,CAAC,CAAC,EAAE,CAAA;IACnC,oEAAoE;IACpE,6CAA6C;IAC7C,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC,OAAO,CAAA;QACjB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QACnD,EAAE,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;QAC3B,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM;YAAE,EAAE,CAAC,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvH,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AACD,oEAAoE;AACpE,wCAAwC;AACxC,KAAK,UAAU,eAAe,CAAE,CAAS,EAAE,OAAe,EAAE,IAAS,EAAE,MAAW;IAChF,mEAAmE;IACnE,uEAAuE;IACvE,mEAAmE;IACnE,oEAAoE;IACpE,iEAAiE;IACjE,sEAAsE;IACtE,8DAA8D;IAC9D,IAAI,CAAC,QAAQ,CAAC,kCAAkC,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;IACpH,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAA;IACnC,IAAI,MAA0B,EAAE,CAAM,CAAA;IACtC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC;QAAE,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;YAAC,MAAM,GAAG,CAAC,CAAC;YAAC,CAAC,GAAG,CAAC,CAAC;YAAC,MAAK;QAAC,CAAC;IAC1F,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA,CAAG,sEAAsE;IACnI,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,CAAC,IAAI,KAAK,+BAA+B,CAAA;IAClG,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACnF,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;IACtD,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;IACjF,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAA,CAAG,sDAAsD;IACtJ,sEAAsE;IACtE,kEAAkE;IAClE,mEAAmE;IACnE,mEAAmE;IACnE,kEAAkE;IAClE,kDAAkD;IAClD,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAA;;QAClF,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAO,CAAC,CAAA;IACnC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC9B,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,EAAE,CAAC;YACN,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAO,CAAC,CAAA;YACzB,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;gBACzB,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;oBAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAA;gBAAC,CAAC;gBACvF,oEAAoE;gBACpE,KAAK,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;oBAAE,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;wBAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE;4BAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAAC,CAAC;gBACrK,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;YAC7D,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAA;QAC5C,CAAC;IACH,CAAC;IACD,IAAI,CAAC,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC,eAAe,CAAA,CAAQ,uDAAuD;IACpG,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;QAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA,CAAG,oDAAoD;IACtG,sEAAsE;IACtE,kEAAkE;IAClE,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB;QAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IAC1D,IAAI,CAAC,CAAC,IAAI,KAAK,+BAA+B;QAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IACxE,oFAAoF;IACpF,8EAA8E;IAC9E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,CAAA;AACjG,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAE,CAAS,EAAE,GAAQ;IACnD,OAAO,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;AACnC,CAAC","sourcesContent":["// trust — der GRADUIERTE Vertrauensakt: seit dem Nachzug auf Visibility\n// 0.29 + Delivery 0.79 baut dieses Modul die ECHTEN Wire-Artefakte\n// (anchor-mapping@2 · grade-declaration@1 · star@1 mit 5.2a-Chunks),\n// getragen von den registrierten Task-Dokumenten (Delivery §4.4:\n// anchor-mapping/0.1 · grade-declaration/0.1 · star/0.1 — Payload = das\n// Artefakt, Dokument proof-frei, ein Träger), quittiert mit dem\n// deniablen delivery-ack (4.2-Klassenregel). Formen und Schlüssel sind\n// byte-kompatibel zu vectors/visibility.json (vectors3.test.mjs rechnet\n// sie unabhängig nach).\n//\n// Die Zustandsmaschinen sind die konvergierten:\n// · Admissionsschicht (Sektion 2): Promotion-Commit beim ERSTEN\n// verifizierten anchor-mapping@2 einer BEZIEHUNG (relId = die\n// Kette, der Idempotenzschlüssel); genau ein Eintrag je Beziehung,\n// self-Korrektur per höherer Revision in place; gleiche self auf\n// zweiter Beziehung = Weg-2-Merge (früheste Position überlebt,\n// Aliase); EINE totale Verifikations-Commit-Ordnung (a.seq).\n// · Rekonziliation (5.4): Sicht = {(member, grade)} der admittierten,\n// unmaskierten Mitglieder (Maske: 24h grade-wait ab Admission, fällt\n// mit verifizierter Declaration oder Ablauf → fail-closed count);\n// Baseline-Automat monoton über Ack-Completions, highWater überlebt\n// ⊥, kein Failure-Ereignis, nie Rollback.\n// · Byte-identische Redelivery (4.2): jede unquittierte Zustellung\n// wird als DASSELBE Dokument erneut gesendet (outbox hält die Envs);\n// der Empfänger re-ackt duplicate-known byte-identisch (ackStore).\nimport { jcs, makeValidator, sameDigest } from '../core.js'\nimport { SCHEMAS } from '../schemas.js'\nimport * as C from './deps.js'\nimport type { Person } from './deps.js'\nimport { buildAck, verifyAck, ACK_TYPE } from './acks.js'\n\nconst te = new TextEncoder()\nconst S = globalThis.crypto.subtle\nconst TT = 'https://real-life.org/trust-tasks/'\nconst say = (p: Person, m: string) => p.log.push(m)\nconst uuid = (ent?: any) => ent ?? globalThis.crypto.randomUUID()\nconst V = makeValidator(SCHEMAS)\nconst schemaOk = (file: string, data: any) => V.validate(data, SCHEMAS[file], SCHEMAS[file]).length === 0\nexport const GRADE_WAIT = 86_400_000 // 5.4: PT24H, in when-Millisekunden\nexport const ADMISSION_BOUND = 10n ** 18n - 1n // Sektion 2 — unerreichbar, geführt für die Totalität\nconst CHUNK_MAX = 1024 // 5.2a: blinded[] je Chunk\n\n// ── Primitiven ──────────────────────────────────────────────────────────\nexport async function hmac (keyBytes: Uint8Array, msg: string) {\n const k = await S.importKey('raw', keyBytes, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign'])\n return C.b64uOf(new Uint8Array(await S.sign('HMAC', k, te.encode(msg))))\n}\nexport const hmacU = async (keyBytes: Uint8Array, msg: string) => 'u' + await hmac(keyBytes, msg)\nexport async function communityContext (p: Person) {\n if (!p.selfCtx) p.selfCtx = await C.communityContext(p.rootIkm, p.communityGenesis)\n return p.selfCtx\n}\nexport const selfCard = async (p: Person, whenIso: string) => {\n const s = await communityContext(p)\n return C.signCard(s, C.cardBody(s, { name: p.name }), whenIso)\n}\n// self-card@1 (§6.2): { body: {type, anchor, keyAgreement}, proof:\n// {proofValue} } — ROHE Ed25519-Signatur über JCS(body), 'z'+base58\n// (§2.1: bewusst KEINE DI-Suite; zwei Artefakt-Familien)\nexport async function selfCard1 (p: Person) {\n const s = await communityContext(p)\n const body = { type: 'self-card@1', anchor: s.anchor, keyAgreement: s.keyAgreement }\n const sig = new Uint8Array(await S.sign({ name: 'Ed25519' }, s.ed.priv, te.encode(jcs(body))))\n return { body, proof: { proofValue: 'z' + C.base58(sig) } }\n}\nconst verifyRawSig = async (did: string, body: any, proofValue: any) => {\n try {\n if (typeof proofValue !== 'string' || proofValue[0] !== 'z') return false\n const raw = C.edRawOfAnchor(did)\n const sig = C.fromBase58(proofValue.slice(1))\n if (!raw || !sig || sig.length !== 64) return false\n const key = await S.importKey('raw', raw, { name: 'Ed25519' }, false, ['verify'])\n return await S.verify({ name: 'Ed25519' }, key, sig, te.encode(jcs(body)))\n } catch { return false }\n}\nconst chShared = (contact: any) => C.ecdh(contact.channel.own.x.priv, C.xRawOfMk(contact.channel.counterpartKa)!)\nconst relKey = async (contact: any, info: string) => C.hkdf(await chShared(contact), info)\n\n// ── anchor-mapping@2 — die normative Wire-Form (§6.1–6.3) ──────────────\n// body = { type, pair, self, to, card, revision, issuedAt } ·\n// proof = { mac1 (Kanal-DH, info map1) · mac2 (selfX × pairX-Adressat,\n// info map2) }, beide 'u'-MACs über JCS(body). Die Card reist IM Body.\n// der reine BAU (fehlbar, mutiert nichts) — modul-lokal: nur Aufrufer,\n// die den Issue-Lock halten und selbst committen (setTrust/\n// reissueTrust), erreichen ihn mit vorreservierter Revision. Der\n// explizite Revisionspfad ist NICHT mehr exportiert (Review 9, B-2:\n// er umging Lock, Deaktivierungs-Check und Persistenz).\nasync function buildMappingArtifact (p: Person, contact: any, counterpartAnchor: string, when: number, revision: string) {\n const s = await communityContext(p)\n const whenIso = C.iso(when)\n const card = await selfCard1(p)\n const body = { type: 'anchor-mapping@2', pair: contact.channel.own.anchor, self: s.anchor, to: counterpartAnchor, card, revision, issuedAt: whenIso }\n const msg = jcs(body)\n const theirKa = C.xRawOfMk(contact.channel.counterpartKa)!\n return { body, proof: {\n mac1: await hmacU(await relKey(contact, 'rltp/visibility/mac/map1'), msg),\n mac2: await hmacU(await C.hkdf(await C.ecdh(s.x.priv, theirKa), 'rltp/visibility/mac/map2'), msg) } }\n}\nexport async function makeMapping (p: Person, counterpartAnchor: string, when: number) {\n const contact = p.contacts.get(counterpartAnchor)\n // Ausstellungs-Disziplin (Review 8/9): Peek → fehlbar bauen →\n // Zähler UND Body synchron committen (sentMapping = der persistierte\n // ausgestellte Body, §6.4: one step per scope), seriell je Kontakt;\n // ein deaktiviertes Tupel stellt nichts aus\n return withIssueLock(contact, async () => {\n if (contact.deactivated) throw new Error('tuple deactivated — issues nothing (§6.4)')\n const revision = peekRev(contact, 'mapRevOut')\n const m = await buildMappingArtifact(p, contact, counterpartAnchor, when, revision)\n if (contact.deactivated) throw new Error('tuple deactivated — issues nothing (§6.4)')\n contact.mapRevOut = revision\n contact.sentMapping = m\n return m\n })\n}\n// Verifikation ist EMPFÄNGER-PRIVAT (§6.3, geschlossene Liste) — und\n// die Liste wird IN IHRER REIHENFOLGE ausgewertet (Review 19, B-1:\n// „all of the following hold, evaluated in this order\"): 1 Schema ·\n// 2 to · 3 pair · 4 Card verifiziert unter IHREM Anker · 5\n// card.anchor == self · 6 k2 aus card.keyAgreement · 7 MACs.\n// arrivalKey = das Ankunftstupel (Empfangspfad); standalone wählt\n// body.pair (Schritt 3 dann trivial).\nexport async function verifyMapping (p: Person, m: any, arrivalKey?: string) {\n try {\n if (!schemaOk('visibility-anchor-mapping.schema.json', m)) return false // 1\n const b = m.body\n if (!C.calOK(b.issuedAt)) return false // Kalender-Validität gehört zur Parse-Ebene (Review 12, B-3)\n const key = arrivalKey ?? b.pair\n const entry = p.contacts.get(key)\n if (!entry?.channel?.own || entry.deactivated) return false\n if (b.to !== entry.channel.own.anchor) return false // 2\n if (b.pair !== key) return false // 3 (Cross-Tupel-Bindung, Review 9)\n if (!(await verifyRawSig(b.card?.body?.anchor, b.card?.body, b.card?.proof?.proofValue))) return false // 4: unter IHREM Anker\n if (b.card.body.anchor !== b.self) return false // 5\n const msg = jcs(b)\n const k2 = await C.hkdf(await C.ecdh(entry.channel.own.x.priv, C.xRawOfMk(b.card.body.keyAgreement)!), 'rltp/visibility/mac/map2') // 6: k2 aus card.keyAgreement — VOR den MACs (Review 20, B-1)\n if ((await hmacU(await relKey(entry, 'rltp/visibility/mac/map1'), msg)) !== m.proof.mac1) return false // 7 (mac1)\n if ((await hmacU(k2, msg)) !== m.proof.mac2) return false // 7 (mac2)\n return true\n } catch { return false }\n}\n// Abstreitbarkeits-Demo: der Empfänger fabriziert ein identisch\n// verifizierendes Mapping — ein Leak beweist Dritten nichts (Klasse V)\nexport async function forgeMapping (forger: Person, victimCard: any, pairAnchor: string, when: number) {\n const entry = forger.contacts.get(pairAnchor)\n const whenIso = C.iso(when)\n const body = { type: 'anchor-mapping@2', pair: pairAnchor, self: victimCard.body.anchor, to: entry.channel.own.anchor, card: victimCard, revision: '1', issuedAt: whenIso }\n const msg = jcs(body)\n const k2 = await C.hkdf(await C.ecdh(entry.channel.own.x.priv, C.xRawOfMk(victimCard.body.keyAgreement)!), 'rltp/visibility/mac/map2')\n return { body, proof: {\n mac1: await hmacU(await relKey(entry, 'rltp/visibility/mac/map1'), msg),\n mac2: await hmacU(k2, msg) } }\n}\n\n// ── die Admissionsschicht (Sektion 2) ───────────────────────────────────\nconst relIdOf = (p: Person, contactKey: string): string => {\n const c = p.contacts.get(contactKey)\n return c ? (c.relId ??= contactKey) : contactKey\n}\n// Bound testbar: p.admissionBound (BigInt) überschreibt den\n// unerreichbaren Spec-Bound — die MECHANIK (pending, k−1, Departure)\n// ist dieselbe (Sektion 2, „the rule exists for totality\")\nconst admission = (p: Person): { seq: bigint, byRel: Map<string, any>, admitted: bigint } =>\n ((p as any).admission ??= { seq: 0n, byRel: new Map(), admitted: 0n })\nconst boundOf = (p: Person): bigint => (p as any).admissionBound ?? ADMISSION_BOUND\n// grade-wait läuft nur ab, wenn ein Admissionszeitpunkt EXISTIERT\n// (Review 5, MAJOR): jede Zustandsoperation verlangt eine endliche Uhr\nconst finite = (when: number): number => {\n if (!Number.isFinite(when)) throw new Error('admission requires a finite clock (5.4 grade-wait)')\n return when\n}\n// Scope-Preflight (Review 5, B-5): prüft OHNE zu verbrauchen — ein Akt,\n// der in einem erschöpften Scope ausstellen müsste, suspendiert atomar\nconst scopeOk = (cur?: string) => BigInt(cur ?? '0') < ADMISSION_BOUND\n// EIN atomarer Merge zweier Einträge: früheste Position überlebt,\n// Aliase lösen auf, Grade nach commitOrder; k admitted → k−1 Slots\n// frei → die nächsten Pending admittieren (Set-Änderung via reconcile)\nfunction mergeEntries (p: Person, a: any, survivorIn: any, goneIn: any, when: number) {\n const survivor = goneIn.pos < survivorIn.pos ? goneIn : survivorIn\n const gone = survivor === goneIn ? survivorIn : goneIn\n for (const rid of gone.relIds) { survivor.relIds.add(rid); a.byRel.set(rid, survivor) }\n for (const ck of gone.rels) survivor.rels.add(ck)\n // Declarations bleiben je Herkunftstupel (B-2): höchste order je Tupel\n for (const [ck, g] of gone.grades ?? []) {\n const cur = survivor.grades?.get(ck)\n if (!cur || g.order > cur.order) (survivor.grades ??= new Map()).set(ck, g)\n }\n // NUMERISCHES Minimum (Review 22): admittedAt ist eine Zahl — der\n // Default-Sort verglich Strings (9 > 10) und konnte den grade-wait\n // des verschmolzenen Members fälschlich verlängern\n survivor.admittedAt = [survivor.admittedAt, gone.admittedAt].filter((x) => x !== undefined).sort((x: number, y: number) => x - y)[0]\n if (survivor.status === 'admitted' && gone.status === 'admitted') { a.admitted -= 1n; admitPending(p, a, when) }\n else if (gone.status === 'admitted') { survivor.status = 'admitted' }\n return survivor\n}\nconst admitPending = (p: Person, a: any, when: number) => {\n // k−1-Nachrücken in Promotion-Commit-Ordnung (Sektion 2)\n while (a.admitted < boundOf(p)) {\n const next = [...new Set(a.byRel.values())].filter((x: any) => x.status === 'pending').sort((x: any, y: any) => x.pos < y.pos ? -1 : 1)[0]\n if (!next) break\n ;(next as any).status = 'admitted'\n // grade-wait ankert an der ADMISSION (Review 4, B-3): Nachrücker\n // sind provisorisch maskiert, bis Declaration oder Fensterablauf\n ;(next as any).admittedAt = when\n a.admitted += 1n\n }\n}\n/** Departure (Sektion 2): der Abgang EINER Beziehung entfernt nur\n * ihren Alias — „the relationships themselves remain fully active\"\n * (Review 16, B-3): der verschmolzene Eintrag (und sein Slot) stirbt\n * erst mit der LETZTEN Beziehung */\nexport function departMember (p: Person, relId: string, when: number) {\n finite(when)\n const a = admission(p)\n const e = a.byRel.get(relId)\n if (!e) return\n // die KETTE ist EINE Beziehung (Review 35): ihr Abgang entfernt auch\n // die Ketten-Aliase (byRel-Schlüssel, deren Kontakt sich als DIESE\n // Beziehung identifiziert — z. B. der frische Tupelschlüssel nach\n // einer Kettung mit vorbestehendem Eintrag); Aliase ANDERER\n // Beziehungen (Weg-2-Merge) bleiben\n for (const rid of [...e.relIds]) {\n if (rid === relId || (p.contacts.get(rid)?.relId ?? rid) === relId) { e.relIds.delete(rid); a.byRel.delete(rid) }\n }\n e.relIds.delete(relId)\n a.byRel.delete(relId)\n // der Grade-Strang der GEGANGENEN Beziehung stirbt mit ihr (Review\n // 17, B-1): „across the member's LIVE relationships' active heads\" —\n // Kontaktschlüssel dieser Beziehung verlassen die effektive\n // Grade-Auswertung atomar mit dem Departure\n for (const ck of [...e.rels]) {\n const c = p.contacts.get(ck)\n if ((c?.relId ?? ck) === relId) { e.rels.delete(ck); e.grades?.delete(ck) }\n }\n if (e.relIds.size > 0) return // Aliase bleiben, der Member bleibt admittiert\n if (e.status === 'admitted') { a.admitted -= 1n; admitPending(p, a, when) }\n}\nexport function promotionCommit (p: Person, relId: string, self: string, contactKey: string, when: number) {\n finite(when)\n const a = admission(p)\n let e = a.byRel.get(relId)\n if (e) {\n // spätere Verifikation derselben Beziehung: in place — auch eine\n // self-KORREKTUR per höherer Revision ändert nur den Inhalt, nie\n // Position oder Status (Sektion 2). Trifft die Korrektur die self\n // einer ANDEREN Beziehung, ist das der Weg-2-Merge\n if (e.self !== self) {\n const twin = [...a.byRel.values()].find((x) => x !== e && x.self === self)\n if (twin) { e.self = self; e = mergeEntries(p, a, e, twin, when) }\n else e.self = self\n }\n e.rels.add(contactKey)\n } else {\n // gleiche self auf einer ANDEREN Beziehung = der Weg-2-Merge\n const twin = [...a.byRel.values()].find((x) => x.self === self)\n if (twin) { twin.relIds.add(relId); twin.rels.add(contactKey); a.byRel.set(relId, twin); e = twin }\n else {\n // Admission ist TOTAL: unter dem Bound admitted (der Normalfall —\n // die Promotion selbst ist die Admission), am Bound\n // deliverable-pending (triggert nichts, rückt bei Abgang nach)\n const status = a.admitted < boundOf(p) ? 'admitted' : 'pending'\n if (status === 'admitted') a.admitted += 1n\n e = { id: relId, pos: (a.seq += 1n), relIds: new Set([relId]), self, rels: new Set([contactKey]), status, admittedAt: status === 'admitted' ? when : undefined, grades: new Map() } // id = kanonische Identität (Review 36)\n a.byRel.set(relId, e)\n }\n }\n return e\n}\n/** Kettung (B-4): der neue Kopf löst über die überlebende Beziehung auf;\n * hält die frische Beziehung schon einen EIGENEN Eintrag, verschmilzt\n * er atomar mit dem der alten (früheste Position, Aliase, k−1) */\nexport function chainAdmission (p: Person, survivingRelId: string, freshRelId: string, newContactKey: string, when: number) {\n finite(when)\n const a = admission(p)\n const oldE = a.byRel.get(survivingRelId)\n const freshE = a.byRel.get(freshRelId)\n let e = oldE\n if (oldE && freshE && oldE !== freshE) e = mergeEntries(p, a, oldE, freshE, when)\n else if (!oldE && freshE) { e = freshE; freshE.relIds.add(survivingRelId); a.byRel.set(survivingRelId, freshE) }\n if (e) { e.relIds.add(freshRelId); a.byRel.set(freshRelId, e); e.rels.add(newContactKey) }\n return e\n}\n// Declarations je HERKUNFTSTUPEL (Review 5, B-2): §6.4 — „a deactivated\n// head's declarations are dead with their tuple\". order = dieselbe\n// totale Verifikations-Commit-Ordnung wie die Promotions.\n// order stammt aus dem Moment der VERIFIKATION (Review 6, B-2): eine\n// vor dem Mapping verifizierte Declaration trägt ihren Stempel schon\n// und erhält beim späteren Commit KEINEN neuen — sonst schlüge sie\n// nach einem Merge eine echt später verifizierte Declaration\nconst declCommit = (p: Person, relId: string, grade: string, contactKey: string, order?: bigint) => {\n const e = admission(p).byRel.get(relId)\n if (e) (e.grades ??= new Map()).set(contactKey, { grade, order: order ?? (admission(p).seq += 1n) })\n return e\n}\n// die effektive Grade beim LESEN über die aktiven Köpfe berechnet —\n// Deaktivierung tötet die Declaration ohne Migrations- oder Aufräumlogik\nconst effectiveGrade = (p: Person, e: any): { grade: string, order: bigint } | null => {\n let best = null\n for (const [ck, g] of e.grades ?? []) {\n const c = p.contacts.get(ck)\n if (!c || c.deactivated) continue\n if (!best || g.order > best.order) best = g\n }\n return best\n}\n/**\n * Die Rekonziliations-Sicht (5.4): {(member, grade)} der admittierten,\n * unmaskierten Mitglieder. Maske: keine verifizierte Declaration UND\n * grade-wait (24h ab Admission) offen → nicht in der Sicht; nach\n * Ablauf fail-closed 'count'.\n */\nexport function viewOf (p: Person, when: number): { member: string, grade: string }[] {\n const seen = new Set<any>()\n const out: { member: string, grade: string }[] = []\n for (const e of admission(p).byRel.values()) {\n if (seen.has(e)) continue\n seen.add(e)\n if (e.status !== 'admitted') continue // deliverable-pending triggert nichts (Sektion 2)\n const g = effectiveGrade(p, e) // nur AKTIVE Köpfe zählen (B-2)\n if (g) out.push({ member: e.self, grade: g.grade })\n // Grenzzeitpunkt: „the window elapses only strictly afterwards\" —\n // bei exakter Gleichheit bleibt maskiert (Review 11, B-4)\n else if (e.admittedAt === undefined || when <= e.admittedAt + GRADE_WAIT) continue // provisorisch maskiert (B-3)\n else out.push({ member: e.self, grade: 'count' })\n }\n return out.sort((x, y) => x.member < y.member ? -1 : x.member > y.member ? 1 : 0)\n}\n\n// ── star@1 — die normative Wire-Form (5.2/5.2a) ────────────────────────\nconst kStar = (contact: any, counterpartAnchor: string, salt: string) =>\n relKey(contact, `rltp/visibility/blind/star/${contact.channel.own.anchor}/${counterpartAnchor}/${salt}`)\nconst kStarIn = (contact: any, counterpartAnchor: string, salt: string) =>\n relKey(contact, `rltp/visibility/blind/star/${counterpartAnchor}/${contact.channel.own.anchor}/${salt}`)\n// reine Berechnung: die 5.2a-Chunk-Serie einer Zustellung — count zählt\n// ALLE Mitglieder der Sicht, blinded[] nur die blinded-graded Teilmenge\nasync function buildStarChunks (contact: any, counterpartAnchor: string, salt: string, view: { member: string, grade: string }[]) {\n const k = await kStar(contact, counterpartAnchor, salt)\n const blinded: string[] = []\n for (const v of view) if (v.grade === 'blinded') blinded.push(await hmacU(k, v.member))\n blinded.sort()\n const count = String(view.length)\n const n = Math.max(1, Math.ceil(blinded.length / CHUNK_MAX))\n const chunks = []\n for (let i = 0; i < n; i++) {\n const body = { type: 'star@1', salt, seq: String(i + 1), last: i === n - 1, count, blinded: blinded.slice(i * CHUNK_MAX, (i + 1) * CHUNK_MAX) }\n chunks.push({ body, proof: { mac: await hmacU(k, jcs(body)) } })\n }\n return chunks\n}\nexport async function buildStar (p: Person, contact: any, when: number) {\n if (contact.deactivated) return null // deaktivierte Tupel stellen nichts aus (Review 9, B-3)\n return withStarLock(contact, async () => {\n if (contact.deactivated) return null // Re-Check nach dem Lock-Erwerb\n const salt = peekStarSeq(contact) // nur gepeekt (Review 25)\n const key = [...p.contacts.entries()].find(([, c]) => c === contact)?.[0]\n // dieselbe Commit-Revalidierung wie reconcile (Review 26): wanderte\n // die Sicht während der MAC-Awaits, wird mit der aktuellen neu\n // gebaut — „every delivery carries the set current at its\n // production commit\"\n for (;;) {\n const view = viewOf(p, when)\n const chunks = await buildStarChunks(contact, key!, salt, view)\n if (contact.deactivated) return null // Re-Check nach den MAC-Awaits (Review 10) — danach kein await\n if (!sameView(view, viewOf(p, when))) continue\n contact.starSeqNext = salt // COMMIT synchron mit der Ausgabe\n return chunks[0].body\n }\n })\n}\n// Empfängerseite: denselben Lieferschlüssel nachrechnen, EINEN Anker testen\nexport async function starMatch (p: Person, entry: any, snap: any, anchor: string) {\n const key = [...p.contacts.entries()].find(([, c]) => c === entry)?.[0]\n const k = await kStarIn(entry, key!, snap.salt)\n return snap.blinded.includes(await hmacU(k, anchor))\n}\nexport async function refreshStarInfo (p: Person) {\n for (const [key, entry] of p.contacts) {\n if (!entry.starReceived || !entry.channel?.own) continue\n const known = []\n const seen = new Set()\n for (const [k2, e] of p.contacts) {\n if (k2 === key || !e.selfAnchor || seen.has(e.selfAnchor)) continue\n seen.add(e.selfAnchor)\n if (await starMatch(p, entry, entry.starReceived, e.selfAnchor)) known.push(e.name)\n }\n entry.starInfo = { count: entry.starReceived.count, knownNames: known.sort() } // count bleibt String — 18 Stellen exakt\n }\n}\n\n// ── grade-declaration@1 (5.5) ──────────────────────────────────────────\nconst kGrade = (subjectCtx: any, holderKa: string, subjectAnchor: string, holderAnchor: string) =>\n C.ecdh(subjectCtx.x.priv, C.xRawOfMk(holderKa)!).then((sh) => C.hkdf(sh, `rltp/visibility/mac/grade/${subjectAnchor}/${holderAnchor}`))\n// revision IMMER vorreserviert (gepeekt) vom Aufrufer, der den\n// Issue-Lock hält und den Zähler synchron committet (Review 8, B-1:\n// kein Defaultpfad, der vor fehlbarer Arbeit verbraucht)\nasync function buildGradeDecl (p: Person, counterpartAnchor: string, grade: string, when: number, revision: string) {\n const contact = p.contacts.get(counterpartAnchor)\n const body = { type: 'grade-declaration@1', subject: contact.channel.own.anchor, holder: counterpartAnchor, grade, revision, issuedAt: C.iso(when) }\n const k = await kGrade(contact.channel.own, contact.channel.counterpartKa, body.subject, body.holder)\n return { body, proof: { mac: await hmacU(k, jcs(body)) } }\n}\n\n// ── Dokumente, Outbox, byte-identische Redelivery (Delivery §3/4.2/4.4) ─\n// Payload = das Artefakt selbst; das Dokument trägt KEINEN Proof (die\n// Artefakt-MACs sind der eine Träger). threadId frisch je Zustellung;\n// Chunks eines Salts teilen sie. Die outbox hält jede unquittierte\n// Zustellung als DENSELBEN Env — Redelivery ist byte-identisch (4.2).\nconst outboxOf = (contact: any) => (contact.outbox ??= new Map<string, any>())\nasync function sendDoc (p: Person, counterpartAnchor: string, slug: string, payload: any, when: number, threadId: string, meta: any = {}, ent: any = {}) {\n const contact = p.contacts.get(counterpartAnchor)\n const doc = {\n id: uuid(ent.id), type: TT + slug + '/0.1',\n issuer: contact.channel.own.anchor, recipient: counterpartAnchor,\n threadId, issuedAt: C.iso(when), payload,\n }\n const env = await C.seal(doc, contact.channel.counterpartKa, ent)\n const digest = await C.digestDoc(doc)\n outboxOf(contact).set(digest, { env, threadId, kind: slug, ...meta })\n return { to: contact, kind: slug + '/0.1', env }\n}\n// ── die Ausstellungs-Disziplin (Review 7, B-1/B-2) ─────────────────────\n// „Assigning a revision and persisting the issued body are one step per\n// scope\" (§6.4): je Kontakt serialisiert EIN Issue-Lock alle\n// Revisions-Producer; die Revision wird nur GEPEEKT, alles Fehlbare\n// (Bau, Seal, Digest) läuft davor, und Zähler + Outbox + Zustand\n// committen in EINEM synchronen Zug am Ende — ein Fehlschlag\n// verbraucht NICHTS, und gradeOutLast folgt der Ausstellungsordnung.\nexport const withIssueLock = <T>(contact: any, fn: () => Promise<T>): Promise<T> => {\n const run = (contact.issueLock ?? Promise.resolve()).then(fn, fn)\n contact.issueLock = run.catch(() => {})\n return run\n}\nexport const peekRev = (contact: any, field: string): string => {\n const next = BigInt(contact[field] ?? '0') + 1n\n if (next > ADMISSION_BOUND) throw new Error('scope exhausted — issues nothing further (2.1)')\n return String(next)\n}\n// prepare (fehlbar: Seal + Digest) / commit (synchron: Outbox-Eintrag)\nasync function prepareDoc (p: Person, counterpartAnchor: string, slug: string, payload: any, when: number, threadId: string, meta: any = {}, ent: any = {}) {\n const contact = p.contacts.get(counterpartAnchor)\n const doc = {\n id: uuid(ent.id), type: TT + slug + '/0.1',\n issuer: contact.channel.own.anchor, recipient: counterpartAnchor,\n threadId, issuedAt: C.iso(when), payload,\n }\n const env = await C.seal(doc, contact.channel.counterpartKa, ent)\n const digest = await C.digestDoc(doc)\n return { contact, digest, entry: { env, threadId, kind: slug, ...meta }, out: { to: contact, kind: slug + '/0.1', env } }\n}\nconst commitDoc = (prep: any) => { outboxOf(prep.contact).set(prep.digest, prep.entry); return prep.out }\n// Salt nur GEPEEKT (Review 25): strikt monoton, nie dicht (5.2) —\n// aber „taking the set snapshot, assigning the salt, and committing\n// are one step\": ein Bau-Fehler verbraucht nichts, auch am letzten\n// Wert entsteht nie falsche Erschöpfung. Der Aufrufer committet\n// synchron mit der Persistenz (unter dem Star-Lock serialisiert).\nconst peekStarSeq = (contact: any): string => {\n const next = BigInt(contact.starSeqNext ?? '0') + 1n\n if (next > ADMISSION_BOUND) throw new Error('scope exhausted — issues nothing further (2.1)')\n return String(next)\n}\n// EIN Lock je Kontakt für Produktion UND Empfang, geteilt mit dem\n// Continuity-Pfad (Review 4, B-1/B-2: Trust- und Continuity-Effekte\n// desselben Kontakts serialisieren gemeinsam; Reentry-Checks im Lock)\nexport const withContactLock = <T>(contact: any, fn: () => Promise<T>): Promise<T> => {\n const run = (contact.contLock ?? Promise.resolve()).then(fn, fn)\n contact.contLock = run.catch(() => {})\n return run\n}\nconst withStarLock = withContactLock\n// der Baseline-Automat (5.4, totale Tabelle): completion(salt), sobald\n// JEDER Chunk-Digest des Salts quittiert ist\nconst subOf = (contact: any) => (contact.sub ??= { highWater: 0n, baseline: null as null | { member: string, grade: string }[], inFlight: new Map<string, any>() })\nconst sameView = (a: any[], b: any[]) => a.length === b.length && a.every((x, i) => x.member === b[i].member && x.grade === b[i].grade)\n\n/**\n * reconcile (5.4 — die eine Regel): divergiert die Sicht von der\n * Baseline (⊥ = divergent, das New-Head-Korollar), und ist nicht\n * pausiert, wird der AKTUELLE Stand geliefert — an JEDEM weiteren\n * Delivery-Kontakt unter frischem, höherem Salt (5.4 wörtlich,\n * Review 23; Salts sind ausdrücklich nicht dicht). Es gibt keinen\n * Same-View-Retry; die 4.4-Byte-Identität ist eine Formvorschrift\n * für Chunk-Retries, keine Anordnung.\n */\nexport async function reconcile (p: Person, counterpartAnchor: string, when: number, ent: any = {}) {\n const contact = p.contacts.get(counterpartAnchor)\n if (!contact || contact.deactivated || !contact.trustGiven || contact.trustPaused) return null\n return withStarLock(contact, async () => {\n // Re-Check nach dem Lock-Erwerb (Review 9 B-3 / Review 11 B-1):\n // auch die Pause — „while paused, the delivery duty is suppressed\"\n if (contact.deactivated || contact.trustPaused) return null\n let view = viewOf(p, when)\n const s = subOf(contact)\n if (s.baseline && sameView(s.baseline, view)) return null\n // überholte In-Flight-Salts (≤ highWater) sind tot: der Empfänger\n // MUSS sie ablehnen — purgen, nie wiederverwenden (Review 2, B-7)\n for (const [salt, f] of [...s.inFlight]) {\n if (BigInt(salt) <= s.highWater) { for (const d of f.pending.keys()) outboxOf(contact).delete(d); s.inFlight.delete(salt) }\n }\n // KEIN Same-View-Retry (Review 23, B-1): 5.4 wörtlich — „a\n // delivery whose chunks are never all acknowledged … simply never\n // completes … and the next available delivery contact ships the\n // current view under a fresh, higher salt.\" Die 4.4-Byte-\n // Identitäts-Regel ist eine FORMVORSCHRIFT für den Fall eines\n // Chunk-Retries, keine Anordnung eines solchen — jeder weitere\n // Delivery-Kontakt prägt frisch und höher (Salts sind ausdrücklich\n // nicht dicht). So löst der Sender auch ein beim Empfänger\n // vergiftetes in-flight-Salt ab, ohne je vom Gift zu wissen; alte\n // Ack-Referenzen bleiben bis zur Completion-Purge sicher stehen.\n const salt = peekStarSeq(contact) // nur gepeekt (Review 25) — committet synchron mit Outbox + inFlight\n const threadId = ent.threadId ?? globalThis.crypto.randomUUID()\n // „taking the set snapshot, assigning the salt, and committing are\n // one step\" (Review 9, B-4): der Bau ist fehlbar und wartet — am\n // Commit wird die Sicht SYNCHRON neu verglichen; wanderte sie\n // während des Baus (Promotion/Declaration eines ANDEREN Kontakts),\n // wird mit der aktuellen Sicht neu gebaut, unter demselben Salt\n // (nichts wurde persistiert). Jede Zustellung trägt so den Stand\n // ihres Production-Commits.\n for (;;) {\n const chunks = await buildStarChunks(contact, counterpartAnchor, salt, view)\n const preps = []\n for (const chunk of chunks) preps.push(await prepareDoc(p, counterpartAnchor, 'star', chunk, when, threadId, { salt }, ent))\n // Re-Check (Review 9 B-3 / Review 11 B-1), danach kein await:\n // eine während des Baus gesetzte Pause supprimiert die Zustellung\n if (contact.deactivated || contact.trustPaused) return null\n const now = viewOf(p, when)\n if (!sameView(view, now)) {\n view = now\n if (s.baseline && sameView(s.baseline, view)) return null // konvergiert während des Baus → Schweigen\n continue\n }\n // COMMIT — ein synchroner Zug: Salt + Outbox + inFlight + Sicht\n contact.starSeqNext = salt\n const pending = new Map<string, any>()\n const envs = []\n for (const prep of preps) { const out = commitDoc(prep); pending.set(prep.digest, { env: out.env }); envs.push(out.env) }\n s.inFlight.set(salt, { view, pending, threadId })\n return { to: contact, kind: 'star/0.1', envs, salt }\n }\n })\n}\n\n// die eigene Grade-ENTSCHEIDUNG trägt einen Ausstellungs-Ordnungsstempel\n// (Review 27): beim Chaining gewinnt die ZULETZT AUSGESTELLTE („MUST\n// re-issue its most recently issued grade\"), nie die des zufällig\n// frischeren Kopfs\nexport const stampGradeOut = (p: Person, contact: any, grade: string) => {\n contact.gradeOutLast = grade\n contact.gradeOutOrder = ((p as any).gradeIssueSeq = ((p as any).gradeIssueSeq ?? 0n) + 1n)\n}\n// ── der Vertrauensakt (register no. 3: EIN menschlicher Akt) ────────────\n// setTrust stellt aus: anchor-mapping@2 (Offenlegung) + grade-\n// declaration@1 'blinded' (die Wahl) — zwei registrierte Dokumente.\n// Der Stern folgt über reconcile (5.4: die Promotion der Gegenseite\n// erzeugt dort die Divergenz; hier entsteht nur die eigene Sicht).\nexport async function setTrust (p: Person, counterpartAnchor: string, when: number, ent: any = {}) {\n const contact = p.contacts.get(counterpartAnchor)\n if (!contact) return { error: 'kein Kontakt' }\n if (!contact.channel?.own) return { error: 'kein eigener Kanal — einseitig (◇) hast du nichts freigegeben' }\n // GANZER Akt unter dem Issue-Lock (Review 7, B-1/B-2): Revisionen\n // werden nur gepeekt, alles Fehlbare läuft davor, Zähler + Outbox +\n // Zustand committen synchron am Ende — ein Seal-Fehler verbraucht\n // NICHTS, und kein Producer schiebt sich zwischen Peek und Commit\n return withIssueLock(contact, async () => {\n // ein deaktiviertes Tupel stellt nichts aus (Review 8, B-2 —\n // §6.4/„a chain append is atomic with the deactivation\"): geprüft\n // nach dem Lock-Erwerb UND synchron vor dem Commit\n if (contact.deactivated) return { error: 'tuple deactivated — Kopf der Beziehung ist gewandert' }\n if (contact.trustGiven) return { error: 'bereits geschenkt (Einweg-Tür)' }\n if (contact.trustPending) return { error: 'bereits unterwegs (Einweg-Tür)' } // Latch (Review 6, B-1)\n if (!scopeOk(contact.mapRevOut) || !scopeOk(contact.gradeRevOut)) return { error: 'scope exhausted — act suspended (2.1)' }\n contact.trustPending = true\n try {\n const mapRev = peekRev(contact, 'mapRevOut')\n const gradeRev = peekRev(contact, 'gradeRevOut')\n const whenIso = C.iso(when)\n const mapping = await buildMappingArtifact(p, contact, counterpartAnchor, when, mapRev)\n const grade = await buildGradeDecl(p, counterpartAnchor, 'blinded', when, gradeRev)\n const prepM = await prepareDoc(p, counterpartAnchor, 'anchor-mapping', mapping, when, uuid(ent.threadId), {}, ent)\n const prepG = await prepareDoc(p, counterpartAnchor, 'grade-declaration', grade, when, uuid(), {}, ent)\n if (contact.deactivated) return { error: 'tuple deactivated — Kopf der Beziehung ist gewandert' } // Re-Check (B-2), danach kein await\n // COMMIT — ein synchroner Zug (§6.4: assigning + persisting = one step)\n contact.mapRevOut = mapRev\n contact.gradeRevOut = gradeRev\n const outbound = [commitDoc(prepM), commitDoc(prepG)]\n contact.trustGiven = whenIso\n stampGradeOut(p, contact, 'blinded') // die zuletzt ausgestellte Entscheidung (für V2), mit Ordnungsstempel\n contact.sentMapping = mapping\n say(p, `Vertrauen geschenkt an ${contact.name}: Anker offengelegt (anchor-mapping@2) + Grade 'blinded' erklärt`)\n return { to: contact, outbound, env: outbound[0].env }\n } finally { contact.trustPending = false }\n })\n}\n/**\n * setGrade (5.5): die spätere Grade-Entscheidung des Subjekts — auch\n * 'count' (die Wahl gehört dem Kontakt; register no. 3 kollabiert sie\n * nur im Default-UX). Producer der Declaration, Revision monoton.\n */\nexport async function setGrade (p: Person, counterpartAnchor: string, grade: 'count' | 'blinded', when: number, ent: any = {}) {\n const contact = p.contacts.get(counterpartAnchor)\n if (!contact?.channel?.own || contact.deactivated) return { error: 'kein aktiver Kanal' }\n return withIssueLock(contact, async () => {\n // Re-Check nach dem Lock-Erwerb (Review 8, B-2): eine Kettung\n // während der Wartezeit deaktiviert dieses Tupel — es stellt nichts\n // mehr aus, gradeOutLast des neuen Kopfs bleibt die Wahrheit\n if (contact.deactivated) return { error: 'tuple deactivated — Kopf der Beziehung ist gewandert' }\n const gradeRev = peekRev(contact, 'gradeRevOut') // wirft bei Erschöpfung, verbraucht nichts (B-1)\n const g = await buildGradeDecl(p, counterpartAnchor, grade, when, gradeRev)\n const prep = await prepareDoc(p, counterpartAnchor, 'grade-declaration', g, when, uuid(), {}, ent)\n if (contact.deactivated) return { error: 'tuple deactivated — Kopf der Beziehung ist gewandert' } // Re-Check (B-2), danach kein await\n // COMMIT — ein synchroner Zug (Review 7, B-1)\n contact.gradeRevOut = gradeRev\n const out = commitDoc(prep)\n stampGradeOut(p, contact, grade)\n say(p, `Grade '${grade}' erklärt an ${contact.name}`)\n return { to: contact, outbound: [out] }\n })\n}\n// Pause (5.4): initial unpaused, EINZIGE Transition ist dieser Akt;\n// Unpause re-evaluiert die Divergenz (Producer: starRefreshAll)\nexport function setTrustPaused (p: Person, counterpartAnchor: string, paused: boolean) {\n const contact = p.contacts.get(counterpartAnchor)\n if (!contact?.trustGiven) return\n contact.trustPaused = !!paused\n say(p, paused ? `Kontakt-Updates an ${contact.name} pausiert (Geliefertes bleibt)` : `Kontakt-Updates an ${contact.name} wieder aktiv`)\n}\n/**\n * V2 (5.5): auf dem neuen Kopf stellt das Subjekt seinen zuletzt\n * ausgestellten Grade neu aus — Revision startet im neuen Tupel-Scope,\n * keine Nutzerfrage; das Mapping reist als MAY (6a.4) mit. Die Pause\n * supprimiert dies NICHT (5.5 kennt keine Pause-Ausnahme — sie\n * supprimiert nur die Stern-Delivery); die Pflicht (trustReissueDue)\n * stirbt erst mit der QUITTIERTEN Zustellung der Declaration.\n */\nexport async function reissueTrust (p: Person, counterpartAnchor: string, when: number, ent: any = {}) {\n const contact = p.contacts.get(counterpartAnchor)\n // Gate: eine AUSGESTELLTE Declaration ODER der Trust-Akt trägt die\n // Pflicht (Review 33, B-1) — nie nur trustGiven\n if (!contact?.channel?.own || contact.deactivated || (!contact.trustGiven && contact.gradeOutLast === undefined)) return null\n // KEINE Pause-Suppression (Review 12, B-4): 5.4 supprimiert die\n // DELIVERY-Pflicht (Stern); die Register-5-Neuausstellung läuft\n // „on the next available delivery contact\" ohne Pause-Ausnahme (5.5)\n if (contact.reissuePending) return null // Single-Flight\n contact.reissuePending = true\n try {\n return await withIssueLock(contact, async () => {\n if (contact.deactivated) return null // Re-Check nach dem Lock-Erwerb (Review 8, B-2)\n // unquittierte Neuausstellung → byte-identischer Retry\n for (const [digest, o] of outboxOf(contact)) if (o.kind === 'grade-declaration' && o.v2) {\n return { to: contact, outbound: [{ to: contact, kind: 'grade-declaration/0.1 (Retry, byte-identisch)', env: o.env }] }\n }\n // die MUST-Grade hängt NIE am MAY-Mapping (Review 5, B-5): Grade-\n // Scope erschöpft → Pflicht suspendiert (2.1, trustReissueDue\n // bleibt); Revisionen nur gepeekt, Commit synchron (Review 7, B-1)\n if (!scopeOk(contact.gradeRevOut)) return null\n const gradeRev = peekRev(contact, 'gradeRevOut')\n const grade = await buildGradeDecl(p, counterpartAnchor, contact.gradeOutLast ?? 'blinded', when, gradeRev)\n const prepG = await prepareDoc(p, counterpartAnchor, 'grade-declaration', grade, when, uuid(), { v2: true }, ent)\n let prepM: any, mapping: any, mapRev: string | undefined\n if (contact.trustGiven && scopeOk(contact.mapRevOut)) { // das MAY-Mapping gehört zum TRUST-Akt (6a.4)\n try {\n mapRev = peekRev(contact, 'mapRevOut')\n mapping = await buildMappingArtifact(p, contact, counterpartAnchor, when, mapRev)\n prepM = await prepareDoc(p, counterpartAnchor, 'anchor-mapping', mapping, when, uuid(), {}, ent)\n } catch { prepM = undefined /* MAY (6a.4) — ein Mapping-Fehler suspendiert nur das Mapping, verbraucht nichts */ }\n }\n if (contact.deactivated) return null // Re-Check (B-2), danach kein await\n // COMMIT — ein synchroner Zug (§6.4)\n contact.gradeRevOut = gradeRev\n stampGradeOut(p, contact, grade.body.grade) // die Neuausstellung IST eine Ausstellung (Review 27)\n const outbound = [commitDoc(prepG)]\n if (prepM) { contact.mapRevOut = mapRev; outbound.push(commitDoc(prepM)); contact.sentMapping = mapping }\n say(p, `Vertrauen auf dem neuen Kopf neu ausgestellt an ${contact.name} (5.5 — ohne neue Nutzerfrage)`)\n return { to: contact, outbound }\n })\n } finally { contact.reissuePending = false }\n}\n/**\n * Der Producer-Sweep (Host-Vertrag): erst die V2-Pflichten, dann die\n * 5.4-Rekonziliation je Empfänger. Idempotent, per-recipient resilient,\n * Retries byte-identisch.\n */\nexport async function starRefreshAll (p: Person, when: number, ent: any = {}) {\n const outbound: any[] = []\n const failures: { to: string, error: string }[] = []\n for (const [anchor, contact] of p.contacts) {\n if (contact.deactivated) continue\n try {\n // die V2-Pflicht läuft AUCH pausiert (Review 12, B-4) und AUCH\n // ohne Trust-Akt (Review 33, B-1: eine ausgestellte Declaration\n // genügt); nur die Stern-Delivery braucht trustGiven\n if (contact.trustReissueDue) {\n const r = await reissueTrust(p, anchor, when, ent)\n if (r) outbound.push(...r.outbound)\n }\n if (!contact.trustGiven || contact.trustPaused) continue\n const r = await reconcile(p, anchor, when, ent)\n if (r) for (const env of r.envs) outbound.push({ to: contact, kind: r.kind, env })\n } catch (e: any) { failures.push({ to: contact.name ?? anchor, error: String(e?.message ?? e) }) }\n }\n return Object.assign(outbound, { failures })\n}\n\n// ── Empfang: registrierte Dokumente, Schema-validiert, atomar geackt ────\nconst asmOf = (contact: any) => contact.asm\nexport async function receiveTrustDoc (p: Person, env: any, when: number, ent: any = {}) {\n const opened = await C.openEnvelope(p, env)\n if (opened.error) return { handled: false }\n const ctx = p.contexts.get(env.rkid)\n const fromEntry = ctx && [...p.contacts.entries()].find(([, c]) => c.channel?.own?.anchor === ctx.anchor)\n if (!fromEntry) return { handled: false }\n const [fromKey, from] = fromEntry\n const doc = opened.doc\n if (opened.duplicate) {\n // 4.2: innerhalb der Retention wird EXAKT der gespeicherte Ack\n // byte-identisch erneut gesendet — nie ein neu erzeugter\n const stored = from.ackStore?.get(opened.digest)\n // der Store behält sein Exemplar — der Host bekommt eine Kopie (Encounter-Review 8, B-1)\n return { handled: true, duplicate: true, ack: stored ? { to: from, kind: 'delivery-ack/0.1 (Re-Ack, byte-identisch)', env: structuredClone(stored) } : undefined }\n }\n // Acks laufen durch dieselbe kritische Sektion (Delivery §6.2:\n // „stage 9 is a critical section whose lock set is the document\n // digest … it re-enters at stage 4\"): der Verlierer zweier\n // gleichzeitiger identischer Acks sieht nach der Lock-Wartezeit den\n // completed-effect cache und meldet duplicate-known — nie\n // 'ack unknown ref' (Review 13, B-3)\n if (doc?.type === ACK_TYPE) {\n // deaktivierte Tupel nehmen keine NEUEN Acks für VISIBILITY-Dokumente\n // an (Review 37, B-3: „not the active head … MUST be rejected\") —\n // ein Ack auf ein ENCOUNTER-Dokument bleibt gültig (Delivery 6.1:\n // „a late valid acknowledgement … transitions the status to\n // delivered\"); die Unterscheidung fällt am referenzierten\n // Outbox-Eintrag in receiveAckInner (Encounter-Review 2, B-5)\n // Stufe 5 VOR dem Payload-Gate auch für Acks (Review 33, B-2), in\n // ihrer Ordnung: erst das DOKUMENTPROFIL (malformed), dann recipient =\n // eigener Anker (Empfänger-Prinzip) — Encounter-Review 8, B-2\n if (!schemaOk('rltp-delivery-document.schema.json', doc)) return { handled: true, error: 'malformed document' }\n if (doc.recipient !== from.channel.own.anchor) return { handled: true, error: 'wrong-recipient' } // 6.2 stage 5 disposition\n return withContactLock(from, async () => {\n if ((p.deliveryCache ?? new Set()).has(opened.digest!)) return { handled: true, duplicate: true }\n return receiveAckInner(p, fromKey, from, opened)\n })\n }\n if (typeof doc?.type !== 'string' || !doc.type.startsWith(TT)) return { handled: false, doc }\n const slug = doc.type.slice(TT.length)\n if (!['anchor-mapping/0.1', 'grade-declaration/0.1', 'star/0.1'].includes(slug)) return { handled: false, doc }\n // Dokumentprofil (Delivery §3): Schema-validiert, proof-frei, Bindungen\n if (!schemaOk('rltp-delivery-document.schema.json', doc)) return { handled: true, error: 'malformed document' }\n if (doc.proof !== undefined) return { handled: true, error: 'document proof forbidden (one carrier)' }\n // Stufe 5: recipient = eigener Anker (Empfänger-Prinzip). Die\n // issuer-Bindung ist eine TYP-Konsistenzregel (Stufe 8) und läuft je\n // Zweig NACH dem Payload-Schema (Review 32)\n if (doc.recipient !== from.channel.own.anchor) return { handled: true, error: 'wrong-recipient' } // 6.2 stage 5 disposition\n // Kalender-Validität des DOKUMENTS (Review 12, B-3): „a verifier\n // MUST reject a date its RFC 3339 parser refuses\" — das Dokument-\n // Schema lief bereits; die PAYLOAD-Kalenderprüfung sitzt je Typ NACH\n // dem Payload-Schema (Review 31: Stufe 7 vor Stufe 8)\n if (!C.calOK(doc.issuedAt)) return { handled: true, error: 'calendar-invalid issuedAt' }\n // Ack erst NACH der Payload-Validierung bauen (M-3: keine Krypto\n // für formwidrige Fracht), aber VOR jeder Zustandsmutation\n // (poisoning rule: ein Ack-Bau-Fehler konsumiert nichts); Effekt +\n // Cache + ackStore committen in EINEM synchronen Zug (4.2/§6.2)\n const mkAck = () => buildAck(p, from, opened.digest!, doc.threadId, when).then((a) => a.env)\n const commit = (result: any, ackEnv: any) => {\n C.effectDone(p, opened.digest)\n ;(from.ackStore ??= new Map()).set(opened.digest, ackEnv)\n return { ...result, ack: { to: from, kind: 'delivery-ack/0.1', env: ackEnv } }\n }\n const r0: any = await (async () => { switch (slug) {\n case 'anchor-mapping/0.1': {\n return withContactLock(from, async () => {\n // Reentry (B-1/B-2): Kopf noch aktiv? Duplikat inzwischen? Revision noch frisch?\n if (from.deactivated) return { handled: true, error: 'tuple deactivated' }\n if ((p.deliveryCache ?? new Set()).has(opened.digest!)) {\n const stored = from.ackStore?.get(opened.digest)\n return { handled: true, duplicate: true, ack: stored ? { to: from, kind: 'delivery-ack/0.1 (Re-Ack, byte-identisch)', env: stored } : undefined }\n }\n const m = doc.payload\n // Stufe 7 zuerst: Payload-Schema → failed(malformed) (Review 30)\n if (!schemaOk('visibility-anchor-mapping.schema.json', m)) return { handled: true, error: 'malformed mapping' }\n if (doc.issuer !== fromKey) return { handled: true, error: 'outer binding (issuer, Stufe 8)' }\n if (!C.calOK(m.body.issuedAt)) return { handled: true, error: 'calendar-invalid issuedAt' } // Stufe 8, nach dem Schema (Review 31)\n if (doc.ceremony?.enactment !== undefined) return { handled: true, error: 'ceremony.enactment kann nicht nachrechnen (validation-failed)' } // Stufe 8 — NACH dem Payload-Schema (Review 30)\n // §6.3 in Spec-REIHENFOLGE (Review 19, B-1), Tupel = Ankunftskanal\n // (Review 9, B-1: Cross-Tupel-Bindung = Schritt 3 der Liste)\n if (!(await verifyMapping(p, m, fromKey))) { say(p, `Mapping von ${from.name} verifiziert NICHT — verworfen`); return { handled: true, error: 'mapping' } }\n // 6.4, die GENERISCHE Revisionsregel (Review 11, B-2): höher\n // ersetzt · gleich + JCS-identischer Body = idempotenter Repeat\n // (No-op-Effekt, geackt — resends bleiben harmlos) · gleich +\n // anderer Body = Äquivokation (reject, Zustand bleibt) ·\n // niedriger = reject\n if (BigInt(m.body.revision) === BigInt(from.mapRevIn ?? '0')) {\n if (from.mapping && jcs(m.body) === jcs(from.mapping.body)) {\n const ackEnv = await mkAck()\n if (from.deactivated) return { handled: true, error: 'tuple deactivated' }\n return commit({ handled: true, idempotent: true }, ackEnv)\n }\n return { handled: true, error: 'equivocation (gleiche Revision, anderer Body)' }\n }\n if (BigInt(m.body.revision) < BigInt(from.mapRevIn ?? '0')) return { handled: true, error: 'mapping revision (niedriger)' }\n const ackEnv = await mkAck() // fehlbar VOR jeder Mutation\n // synchroner Re-Check nach dem LETZTEN await (Review 5, B-1): eine\n // Kettung unter dem Lock eines ANDEREN Kontakts kann dieses Tupel\n // während verify/mkAck deaktiviert haben — danach kein await mehr\n if (from.deactivated) return { handled: true, error: 'tuple deactivated' }\n if (BigInt(m.body.revision) <= BigInt(from.mapRevIn ?? '0')) return { handled: true, error: 'mapping revision (nicht strikt größer)' }\n from.mapRevIn = m.body.revision\n from.selfAnchor = m.body.self\n from.mapping = m\n from.trustReceived = doc.issuedAt\n const e = promotionCommit(p, relIdOf(p, fromKey), m.body.self, fromKey, when)\n e.admittedAt ??= when // grade-wait ankert an der Admission (5.4)\n // eine VOR dem Mapping verifizierte Declaration steht und wirkt\n // bei der Admission sofort (Sektion 2 / 5.4)\n if (from.gradeIn && !e.grades?.has(fromKey)) declCommit(p, relIdOf(p, fromKey), from.gradeIn, fromKey, from.gradeInOrder)\n say(p, `${from.name} vertraut dir: stabiler Anker geprüft übernommen (nur für dich beweisend)`)\n // der Producer-Sweep läuft NACH der Lock-Sektion (Reentranz!)\n return commit({ handled: true, disclosed: m.body.self, fromName: from.name, __sweep: true }, ackEnv)\n })\n }\n case 'grade-declaration/0.1': {\n return withContactLock(from, async () => {\n if (from.deactivated) return { handled: true, error: 'tuple deactivated' }\n if ((p.deliveryCache ?? new Set()).has(opened.digest!)) {\n const stored = from.ackStore?.get(opened.digest)\n return { handled: true, duplicate: true, ack: stored ? { to: from, kind: 'delivery-ack/0.1 (Re-Ack, byte-identisch)', env: stored } : undefined }\n }\n const g = doc.payload\n if (!schemaOk('visibility-grade-declaration.schema.json', g)) return { handled: true, error: 'malformed grade' }\n if (doc.issuer !== fromKey) return { handled: true, error: 'outer binding (issuer, Stufe 8)' }\n if (!C.calOK(g.body.issuedAt)) return { handled: true, error: 'calendar-invalid issuedAt' } // Stufe 8, nach dem Schema (Review 31)\n if (doc.ceremony?.enactment !== undefined) return { handled: true, error: 'ceremony.enactment kann nicht nachrechnen (validation-failed)' } // Stufe 8 — NACH dem Payload-Schema (Review 30)\n if (g.body.subject !== fromKey || g.body.holder !== from.channel.own.anchor) return { handled: true, error: 'grade binding' }\n const k = await kGrade(from.channel.own, from.channel.counterpartKa, g.body.subject, g.body.holder)\n if ((await hmacU(k, jcs(g.body))) !== g.proof.mac) return { handled: true, error: 'grade mac' }\n // 6.4, die GENERISCHE Revisionsregel (Review 11, B-2):\n // dreiteilig — siehe Mapping-Pfad\n if (BigInt(g.body.revision) === BigInt(from.gradeRevIn ?? '0')) {\n if (from.gradeBodyIn && jcs(g.body) === from.gradeBodyIn) {\n const ackEnv = await mkAck()\n if (from.deactivated) return { handled: true, error: 'tuple deactivated' }\n return commit({ handled: true, idempotent: true }, ackEnv)\n }\n return { handled: true, error: 'equivocation (gleiche Revision, anderer Body)' }\n }\n if (BigInt(g.body.revision) < BigInt(from.gradeRevIn ?? '0')) return { handled: true, error: 'grade revision (niedriger)' }\n const ackEnv = await mkAck() // fehlbar VOR jeder Mutation\n if (from.deactivated) return { handled: true, error: 'tuple deactivated' } // Re-Check (B-1), danach kein await\n if (BigInt(g.body.revision) <= BigInt(from.gradeRevIn ?? '0')) return { handled: true, error: 'grade revision (nicht strikt größer)' }\n from.gradeRevIn = g.body.revision\n from.gradeBodyIn = jcs(g.body) // für den Idempotenz-Vergleich (Review 11, B-2)\n from.gradeIn = g.body.grade\n from.gradeInOrder = (admission(p).seq += 1n) // Verifikations-Commit-Ordnung JETZT (B-2)\n if (from.selfAnchor) declCommit(p, relIdOf(p, fromKey), g.body.grade, fromKey, from.gradeInOrder)\n say(p, `${from.name} erklärt Grade '${g.body.grade}'`)\n return commit({ handled: true, grade: g.body.grade, __sweep: true }, ackEnv)\n })\n }\n case 'star/0.1': {\n // Stage-9-Lockmenge in kind: konkurrierende Chunks derselben\n // Assembly serialisieren über den Kontakt-Lock (§4.4)\n return withStarLock(from, async () => {\n if (from.deactivated) return { handled: true, error: 'tuple deactivated' } // §6.4 — auch der Star-Pfad (Review 5, B-1)\n // Stage-4-Reentry nach Lock-Wartezeit (§6.2): ein inzwischen\n // verarbeitetes Duplikat erhält den gespeicherten Ack byte-identisch\n if ((p.deliveryCache ?? new Set()).has(opened.digest!)) {\n const stored = from.ackStore?.get(opened.digest)\n return { handled: true, duplicate: true, ack: stored ? { to: from, kind: 'delivery-ack/0.1 (Re-Ack, byte-identisch)', env: stored } : undefined }\n }\n const chunk = doc.payload\n if (!schemaOk('visibility-star.schema.json', chunk)) return { handled: true, error: 'malformed star' }\n if (doc.issuer !== fromKey) return { handled: true, error: 'outer binding (issuer, Stufe 8)' }\n if (doc.ceremony?.enactment !== undefined) return { handled: true, error: 'ceremony.enactment kann nicht nachrechnen (validation-failed)' } // Stufe 8 — NACH dem Payload-Schema (Review 30)\n const b = chunk.body\n // Empfänger-Monotonie (5.2): nicht strikt größer als der\n // completed High-Water → verworfen\n if (BigInt(b.salt) <= BigInt(from.starSaltIn ?? '0')) return { handled: true, error: 'star replay (nicht strikt größer)' }\n // VERGIFTETER Salt (Review 21): nach einem Assembly-Konflikt\n // wird KEIN weiterer Chunk dieser Lieferung quittiert — sonst\n // kombinieren früh geackte, verlorene Pufferwirkungen mit\n // späteren Acks zu einer falschen Completion („the delivery\n // simply cannot complete until every seq is held\")\n if (from.starPoison?.has(b.salt)) return { handled: true, error: 'star salt vergiftet (assembly conflict)' }\n const k = await kStarIn(from, fromKey, b.salt)\n if ((await hmacU(k, jcs(b))) !== chunk.proof.mac) return { handled: true, error: 'star mac' }\n // Re-Check nach den MAC-Awaits (Review 6, B-1): ab hier wird bis\n // zum jeweils nächsten await NUR NOCH LOKAL entschieden — die\n // Assembly ist Tupel-Zustand und darf nach einer Deaktivierung\n // keinen Chunk mehr aufnehmen („dies, atomically, with its\n // tuple's deactivation\")\n if (from.deactivated) return { handled: true, error: 'tuple deactivated' }\n // 5.2a-Entscheidungen auf LOCALS (Review 6, B-1): höherer Salt\n // verdrängt, niedrigerer wird verworfen, threadId-Dissens\n // verwirft, Lücken puffern — GESCHRIEBEN wird erst nach Ack-Bau\n // und letztem Re-Check, in einem synchronen Zug\n const cur = asmOf(from)\n const displaced = cur && BigInt(b.salt) > BigInt(cur.salt)\n if (cur && !displaced && BigInt(b.salt) < BigInt(cur.salt)) return { handled: true, error: 'below open assembly' }\n const a = (!cur || displaced) ? { salt: b.salt, threadId: doc.threadId, count: b.count, chunks: new Map(), lastSeq: undefined as string | undefined } : cur\n if (doc.threadId !== a.threadId || b.count !== a.count) { from.asm = undefined; (from.starPoison ??= new Set()).add(b.salt); return { handled: true, error: 'assembly conflict (threadId/count)' } }\n const seq = b.seq\n if (a.chunks.has(seq)) { from.asm = undefined; (from.starPoison ??= new Set()).add(b.salt); return { handled: true, error: 'assembly conflict (seq)' } }\n if (b.last && a.lastSeq !== undefined) { from.asm = undefined; (from.starPoison ??= new Set()).add(b.salt); return { handled: true, error: 'assembly conflict (two last)' } }\n const candLast = b.last ? seq : a.lastSeq\n if (candLast !== undefined && BigInt(seq) > BigInt(candLast)) { from.asm = undefined; (from.starPoison ??= new Set()).add(b.salt); return { handled: true, error: 'seq beyond last' } }\n // auch BEREITS GEPUFFERTE Chunks oberhalb von last verwerfen die\n // Assembly (Review 16, B-1): „a seq greater than the held last\n // chunk's … reject\" gilt unabhängig von der Ankunftsreihenfolge\n if (candLast !== undefined) for (const s of a.chunks.keys()) if (BigInt(s) > BigInt(candLast)) { from.asm = undefined; (from.starPoison ??= new Set()).add(b.salt); return { handled: true, error: 'seq beyond last (gepuffert)' } }\n let ackEnv: any\n const complete0 = candLast !== undefined && (() => { for (let i = 1n; i <= BigInt(candLast); i++) if (String(i) !== seq && !a.chunks.has(String(i))) return false; return true })()\n if (!complete0) {\n ackEnv = await mkAck()\n if (from.deactivated) return { handled: true, error: 'tuple deactivated' } // Re-Check (B-1), danach kein await\n from.asm = a // Übernahme JETZT — synchron mit dem Puffern\n if (b.last) a.lastSeq = seq\n a.chunks.set(seq, b)\n return commit({ handled: true, partial: true }, ackEnv)\n }\n // der KOMPLETTIERENDE Chunk: Union aus Puffer + aktuellem Chunk\n // OHNE Mutation berechnen und validieren, dann Ack + Re-Check,\n // dann Übernahme + completed-salt + Cache + Ack in EINEM\n // SYNCHRONEN Zug (§4.4); die UI-Auffrischung läuft NACH dem Commit\n const union: string[] = []\n for (let i = 1n; i <= BigInt(candLast!); i++) union.push(...(String(i) === seq ? b : a.chunks.get(String(i))).blinded)\n const sorted = [...union].every((x, i, arr) => i === 0 || arr[i - 1] < x)\n if (!sorted || BigInt(union.length) > BigInt(a.count)) { from.asm = undefined; (from.starPoison ??= new Set()).add(a.salt); return { handled: true, error: 'assembly invalid (order/|union|>count)' } }\n ackEnv = await mkAck() // JETZT ist alles validiert (M-2), vor der Übernahme\n if (from.deactivated) return { handled: true, error: 'tuple deactivated' } // Re-Check (B-1), danach kein await\n from.asm = undefined\n from.starSaltIn = a.salt\n from.starReceived = { salt: a.salt, count: a.count, blinded: union }\n if (from.starPoison) for (const ps of from.starPoison) if (BigInt(ps) <= BigInt(a.salt)) from.starPoison.delete(ps) // Gift unterhalb des High-Water ist gegenstandslos\n const out = commit({ handled: true, star: true }, ackEnv)\n await refreshStarInfo(p)\n say(p, `Kontakt-Update von ${from.name}: ${a.count} Kontakte (geblendet: ${union.length})`)\n return out\n })\n }\n }\n return { handled: false, doc } })()\n // Effekt fertig, Lock frei — jetzt der Producer-Sweep (5.4), dessen\n // reconcile die Empfänger-Locks selbst nimmt\n if (r0?.__sweep) {\n delete r0.__sweep\n const outbound = await starRefreshAll(p, when, ent)\n r0.outbound = [...outbound]\n if (outbound.failures.length) r0.outboundError = outbound.failures.map((f: any) => `${f.to}: ${f.error}`).join(' · ')\n }\n return r0\n}\n// completion (5.4-Automat): jeder Chunk-Ack streicht seinen Digest;\n// der letzte lässt den Automaten laufen\nasync function receiveAckInner (p: Person, fromKey: string, from: any, opened: any) {\n // der referenzierte Outbox-Eintrag zuerst — seine KLASSE wählt die\n // Proof-Form des Acks (4.2/4.4: Encounter-Payloads tragen übertragbare\n // Signaturen → signierter Ack; Visibility-Payloads sind DV → MAC).\n // Digest-Gleichheit über die dekodierten Multihash-Bytes (Encounter\n // 2.3) — ein `z`-gerenderter ref trifft den `u`-Outbox-Schlüssel\n // Stufe 7 zuerst: das Payload-Schema (malformed) — VOR jeder Klassen-\n // oder Konsistenzregel der Stufe 8 (Encounter-Review 16, B-1)\n if (!schemaOk('payload-delivery-ack.schema.json', opened.doc?.payload)) return { handled: true, error: 'malformed' }\n const ref0 = opened.doc.payload.ref\n let refKey: string | undefined, o: any\n for (const [k, e] of outboxOf(from)) if (sameDigest(k, ref0)) { refKey = k; o = e; break }\n if (!o) return { handled: true, error: 'ack unknown ref' } // Stufe 8: ref trifft kein gesendetes Dokument — keine Klasse wählbar\n const ENCOUNTER_KIND = o.kind === 'encounter-bundle' || o.kind === 'encounter-credential-delivery'\n const v = await verifyAck(p, from, opened.doc, ENCOUNTER_KIND ? 'signature' : 'dv')\n if (!v) return { handled: true, error: 'ack invalid' }\n if (o.threadId !== v.threadId) return { handled: true, error: 'ack unknown ref' }\n if (from.deactivated && !ENCOUNTER_KIND) return { handled: true, error: 'tuple deactivated' } // nach den Awaits (Review 37, B-3), danach kein await\n // ZWEI Pflicht-Ebenen (Review 19, B-3): der Delivery-Ack erledigt den\n // TRANSPORT — die Visibility-Pflicht eines choice/report-Mappings\n // („resent … until answered by the counterpart's aligned mapping\")\n // lebt weiter: der Eintrag bleibt für byte-identische Resends, bis\n // die Alignment-Antwort ihn retired. Die ALIGNMENT-Pflicht selbst\n // stirbt mit dem Ack (completed delivery, §6a.3).\n if (o.kind === 'continuity-mapping' && o.duty !== 'align' && !o.retired) o.acked = true\n else outboxOf(from).delete(refKey!)\n C.effectDone(p, opened.digest)\n if (o.kind === 'star') {\n const s = subOf(from)\n const f = s.inFlight.get(o.salt)\n if (f) {\n f.pending.delete(refKey!)\n if (f.pending.size === 0) {\n s.inFlight.delete(o.salt)\n if (BigInt(o.salt) > s.highWater) { s.highWater = BigInt(o.salt); s.baseline = f.view }\n // Completion räumt alle niedrigeren In-Flights (tot beim Empfänger)\n for (const [salt2, f2] of [...s.inFlight]) if (BigInt(salt2) < s.highWater) { for (const d of f2.pending.keys()) outboxOf(from).delete(d); s.inFlight.delete(salt2) }\n return { handled: true, completed: o.salt, advanced: true }\n }\n return { handled: true, partialAck: true }\n }\n }\n if (o.v2) delete from.trustReissueDue // die V2-Pflicht stirbt mit der QUITTIERTEN Zustellung\n if (o.duty === 'align') from.contAligned = true // 6a.3: Alignment-Pflicht stirbt mit der Completion\n // Encounter (Delivery 6.1): „delivered\" ist der Sender-Status NUR auf\n // den gültigen Ack — der Host liest diese Marken, nie die Ankunft\n if (o.kind === 'encounter-bundle') from.bundleAcked = true\n if (o.kind === 'encounter-credential-delivery') from.counterAcked = true\n // the host correlates the ack with ITS active encounter (Encounter-Review 11, B-3):\n // the acked document's digest, thread and the counterpart anchor travel along\n return { handled: true, acked: o.kind, ref: refKey, threadId: o.threadId, peerAnchor: fromKey }\n}\nexport async function receiveAck (p: Person, env: any) {\n return receiveTrustDoc(p, env, 0)\n}"]}
|
package/dist/probe.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export type { Person } from './probe/deps.js';
|
|
2
|
-
export { SCHEMAS } from './schemas.js';
|
|
3
|
-
export { COMMUNITY_GENESIS } from './probe/deps.js';
|
|
4
|
-
export type * as wire from './wire.js';
|
|
5
|
-
export * as introduce from './probe/introduce.js';
|
|
6
|
-
export * as membership from './probe/membership.js';
|
|
7
|
-
//# sourceMappingURL=probe.d.ts.map
|
package/dist/probe.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAkCA,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAK7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAKnD,YAAY,KAAK,IAAI,MAAM,WAAW,CAAA;AACtC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAA"}
|
package/dist/probe.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// @real-life/trust-protocol/probe — the layers still being cast.
|
|
2
|
-
//
|
|
3
|
-
// ┌──────────────────────────────────────────────────────────────────┐
|
|
4
|
-
// │ NOT WIRE-NORMATIVE. These forms are probes: they exercise the │
|
|
5
|
-
// │ converged semantics of their layer, but their transport shapes │
|
|
6
|
-
// │ carry @probe and WILL change. Experiment with them; do not │
|
|
7
|
-
// │ ship them as if they were the standard, and do not treat their │
|
|
8
|
-
// │ wire forms as an interoperability target. │
|
|
9
|
-
// └──────────────────────────────────────────────────────────────────┘
|
|
10
|
-
//
|
|
11
|
-
// The separation is structural on purpose: a subpath import is a
|
|
12
|
-
// decision someone has to make, not a name they can reach by accident.
|
|
13
|
-
//
|
|
14
|
-
// The modules map onto two specifications:
|
|
15
|
-
//
|
|
16
|
-
// Network Visibility introduce (mediated introductions over a
|
|
17
|
-
// rendezvous drop) — the trust act, the blinded
|
|
18
|
-
// star, §6a continuity and the deniable ack
|
|
19
|
-
// GRADUATED to the root entry point on
|
|
20
|
-
// 04.09.2026 (`visibility.trust/.continuity/
|
|
21
|
-
// .acks`, design/probe-nachzug-konvergenz-2026-09.md)
|
|
22
|
-
// Encounter the ceremony's transmission GRADUATED to the
|
|
23
|
-
// root entry point on 05.09.2026 (`ceremony`,
|
|
24
|
-
// design/encounter-nachzug-konvergenz-2026-09.md)
|
|
25
|
-
// Membership + Access membership (founding, prelude, VIC invite,
|
|
26
|
-
// consent, admission, welcome, vouch@2)
|
|
27
|
-
//
|
|
28
|
-
// Everything operates on the probe WORLD: a Person (deps.js) holding
|
|
29
|
-
// contexts, contacts, groups — DOM-free and storage-free, so the same
|
|
30
|
-
// code drives tests, simulators and future adapters.
|
|
31
|
-
//
|
|
32
|
-
// When a layer converges, its module graduates to the main entry point
|
|
33
|
-
// and this file loses a line. That is the intended direction of travel.
|
|
34
|
-
// the LIVE schema bundle (deep-frozen): it tracks the running castings
|
|
35
|
-
// and therefore belongs to the probe surface, not the pinned root —
|
|
36
|
-
// the root pins each module to a named casting (see README, Versions),
|
|
37
|
-
// this bundle moves with the repository (review 4, M-1)
|
|
38
|
-
export { SCHEMAS } from './schemas.js';
|
|
39
|
-
export { COMMUNITY_GENESIS } from './probe/deps.js';
|
|
40
|
-
export * as introduce from './probe/introduce.js';
|
|
41
|
-
export * as membership from './probe/membership.js';
|
|
42
|
-
//# sourceMappingURL=probe.js.map
|
package/dist/probe.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,EAAE;AACF,iEAAiE;AACjE,uEAAuE;AACvE,EAAE;AACF,2CAA2C;AAC3C,EAAE;AACF,kEAAkE;AAClE,uEAAuE;AACvE,mEAAmE;AACnE,8DAA8D;AAC9D,oEAAoE;AACpE,6EAA6E;AAC7E,sEAAsE;AACtE,qEAAqE;AACrE,yEAAyE;AACzE,oEAAoE;AACpE,+DAA+D;AAC/D,EAAE;AACF,qEAAqE;AACrE,sEAAsE;AACtE,qDAAqD;AACrD,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AAGxE,uEAAuE;AACvE,oEAAoE;AACpE,uEAAuE;AACvE,wDAAwD;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAMnD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAA","sourcesContent":["// @real-life/trust-protocol/probe — the layers still being cast.\n//\n// ┌──────────────────────────────────────────────────────────────────┐\n// │ NOT WIRE-NORMATIVE. These forms are probes: they exercise the │\n// │ converged semantics of their layer, but their transport shapes │\n// │ carry @probe and WILL change. Experiment with them; do not │\n// │ ship them as if they were the standard, and do not treat their │\n// │ wire forms as an interoperability target. │\n// └──────────────────────────────────────────────────────────────────┘\n//\n// The separation is structural on purpose: a subpath import is a\n// decision someone has to make, not a name they can reach by accident.\n//\n// The modules map onto two specifications:\n//\n// Network Visibility introduce (mediated introductions over a\n// rendezvous drop) — the trust act, the blinded\n// star, §6a continuity and the deniable ack\n// GRADUATED to the root entry point on\n// 04.09.2026 (`visibility.trust/.continuity/\n// .acks`, design/probe-nachzug-konvergenz-2026-09.md)\n// Encounter the ceremony's transmission GRADUATED to the\n// root entry point on 05.09.2026 (`ceremony`,\n// design/encounter-nachzug-konvergenz-2026-09.md)\n// Membership + Access membership (founding, prelude, VIC invite,\n// consent, admission, welcome, vouch@2)\n//\n// Everything operates on the probe WORLD: a Person (deps.js) holding\n// contexts, contacts, groups — DOM-free and storage-free, so the same\n// code drives tests, simulators and future adapters.\n//\n// When a layer converges, its module graduates to the main entry point\n// and this file loses a line. That is the intended direction of travel.\n\nexport type { Person } from './probe/deps.js'\n// the LIVE schema bundle (deep-frozen): it tracks the running castings\n// and therefore belongs to the probe surface, not the pinned root —\n// the root pins each module to a named casting (see README, Versions),\n// this bundle moves with the repository (review 4, M-1)\nexport { SCHEMAS } from './schemas.js'\nexport { COMMUNITY_GENESIS } from './probe/deps.js'\n// the wire-artifact types GENERATED from the same schemas (wire.ts):\n// structural projections only — satisfying a type is necessary for\n// conformance, never sufficient; the schemas remain normative. They\n// live here for the same reason SCHEMAS does: they track the castings.\nexport type * as wire from './wire.js'\nexport * as introduce from './probe/introduce.js'\nexport * as membership from './probe/membership.js'\n"]}
|