@adobe/data 0.4.9 → 0.4.11

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.
@@ -106,17 +106,27 @@ export function createDatabase(store, transactionDeclarations) {
106
106
  const asyncArgsProvider = args;
107
107
  const asyncResult = asyncArgsProvider();
108
108
  if (isAsyncGenerator(asyncResult)) {
109
- (async () => {
109
+ let count = 0;
110
+ return new Promise(async (resolve, reject) => {
110
111
  try {
111
112
  let lastArgs = undefined;
112
113
  let lastTransaction;
113
114
  const executeNext = (asyncArgs, transient) => {
114
115
  lastArgs = asyncArgs;
115
116
  if (lastTransaction) {
116
- // we need to undo the last transaction before executing the next one
117
- applyOperations(transactionalStore.transactionStore, lastTransaction.undo);
117
+ // rollback previous transaction.
118
+ execute(t => {
119
+ if (lastTransaction) {
120
+ // Rollback the previous transaction to restore the state before it
121
+ applyOperations(t, lastTransaction.undo);
122
+ }
123
+ }, { transient: true });
118
124
  }
119
125
  lastTransaction = execute(t => transaction(t, asyncArgs), { transient });
126
+ if (!transient) {
127
+ // this is the last value so we will resolve to it
128
+ resolve(lastTransaction.value);
129
+ }
120
130
  };
121
131
  // Manually iterate through the generator to capture both yield and return values
122
132
  let result = await asyncResult.next();
@@ -128,33 +138,34 @@ export function createDatabase(store, transactionDeclarations) {
128
138
  executeNext(result.value, true);
129
139
  result = await asyncResult.next();
130
140
  }
131
- // result.done is true, so this is the return value
132
141
  if (result.value !== undefined) {
133
- // Use the return value as the final non-transient transaction
134
142
  executeNext(result.value, false);
135
143
  }
136
- else {
137
- // No return value, so the last yield should be the final non-transient transaction
138
- // We need to re-execute the last yield value as non-transient
139
- if (lastArgs) {
140
- executeNext(lastArgs, false);
141
- }
144
+ else if (lastArgs !== undefined) { // Only execute if lastArgs exists
145
+ executeNext(lastArgs, false);
142
146
  }
143
147
  }
144
148
  catch (error) {
145
149
  console.error('AsyncGenerator error:', error);
150
+ reject(error);
146
151
  }
147
- })();
152
+ });
148
153
  }
149
154
  else if (isPromise(asyncResult)) {
150
- asyncResult.then(asyncArgs => execute(t => transaction(t, asyncArgs)))
151
- .catch(error => {
152
- console.error('Promise error:', error);
155
+ return new Promise(async (resolve, reject) => {
156
+ try {
157
+ const input = await asyncResult;
158
+ const result = execute(t => transaction(t, input));
159
+ resolve(result);
160
+ }
161
+ catch (error) {
162
+ reject(error);
163
+ }
153
164
  });
154
165
  }
155
166
  else {
156
167
  // Function returned a synchronous value
157
- execute(t => transaction(t, asyncResult));
168
+ return execute(t => transaction(t, asyncResult));
158
169
  }
159
170
  }
160
171
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"create-database.js","sourceRoot":"","sources":["../../../src/ecs/database/create-database.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAW,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AAGxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,UAAU,cAAc,CAM1B,KAAqB,EACrB,uBAA2B;IAI3B,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAE3D,oCAAoC;IACpC,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAmC,CAAC;IACtE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAgC,CAAC;IACnE,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6D,CAAC;IAC7F,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA+C,CAAC;IAEpF,yBAAyB;IACzB,MAAM,aAAa,GAAG,CAA2B,MAAc,EAAE,YAAkD,EAAE,EAAE,CAAC,CAAC,QAAsD,EAAE,EAAE;QAC/K,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,gBAAgB,GAAG,QAAQ,CAAC;YAClC,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE;gBAClB,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC;oBAC5C,IAAI,SAAS,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;wBAClG,sEAAsE;wBACtE,+DAA+D;wBAC/D,MAAM,GAAG,IAAI,CAAC;oBAClB,CAAC;gBACL,CAAC;gBACD,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAA;QACL,CAAC;QACD,uCAAuC;QACvC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7B,sCAAsC;QACtC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,SAAsB,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAChG,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAEzH,mFAAmF;IACnF,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CACtC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,IAAsB,EAAE,QAAqC,CAAC,CAAC,CAAC;QACzG,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,QAAqC,CAAE,CAAC,CAAC,CAAC;IACxH,CAAC,CAAC,CACwC,CAAC;IAE/C,MAAM,kBAAkB,GAAkC,CAAC,MAAmD,EAAE,EAAE;QAC9G,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACR,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAA;IACL,CAAC,CAAA;IAED,MAAM,OAAO,GAA8B;QACvC,UAAU,EAAE,gBAAgB;QAC5B,SAAS,EAAE,eAAe;QAC1B,YAAY,EAAE,kBAAkB;QAChC,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,gBAAgB;QAC3B,MAAM,EAAE,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;KACxE,CAAC;IAEF,MAAM,EAAE,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,kBAAkB,CAAC;IAEvF,MAAM,eAAe,GAAG,CAAC,MAA4B,EAAE,EAAE;QACrD,+BAA+B;QAC/B,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE,CAAC;YACrD,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,6BAA6B;QAC7B,KAAK,MAAM,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,gBAAkC,CAAC,CAAC;YAC7E,IAAI,SAAS,EAAE,CAAC;gBACZ,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC/B,QAAQ,EAAE,CAAC;gBACf,CAAC;YACL,CAAC;QACL,CAAC;QAED,6BAA6B;QAC7B,KAAK,MAAM,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC3D,IAAI,SAAS,EAAE,CAAC;gBACZ,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC/B,QAAQ,EAAE,CAAC;gBACf,CAAC;YACL,CAAC;QACL,CAAC;QAED,0BAA0B;QAC1B,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACrD,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC/B,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,CAAC,OAAqC,EAAE,OAAiC,EAAE,EAAE;QACzF,MAAM,MAAM,GAAG,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5D,eAAe,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAClB,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,EAAO,CAAC;IAE7B,KAAK,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC/E,MAAM,WAAW,GAAG,kBAAgE,CAAC;QACrF,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE;YACtC,KAAK,EAAE,CAAC,IAAa,EAAE,EAAE;gBACrB,iDAAiD;gBACjD,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC7B,MAAM,iBAAiB,GAAG,IAAgD,CAAC;oBAC3E,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;oBAExC,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;wBAChC,CAAC,KAAK,IAAI,EAAE;4BACR,IAAI,CAAC;gCACD,IAAI,QAAQ,GAAQ,SAAS,CAAC;gCAC9B,IAAI,eAAiD,CAAC;gCACtD,MAAM,WAAW,GAAG,CAAC,SAAc,EAAE,SAAkB,EAAE,EAAE;oCACvD,QAAQ,GAAG,SAAS,CAAC;oCACrB,IAAI,eAAe,EAAE,CAAC;wCAClB,qEAAqE;wCACrE,eAAe,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;oCAC/E,CAAC;oCACD,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gCAC7E,CAAC,CAAA;gCAED,iFAAiF;gCACjF,IAAI,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;gCAEtC,gDAAgD;gCAChD,mEAAmE;gCACnE,+CAA+C;gCAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oCAClB,qDAAqD;oCACrD,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oCAChC,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;gCACtC,CAAC;gCAED,mDAAmD;gCACnD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oCAC7B,8DAA8D;oCAC9D,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gCACrC,CAAC;qCAAM,CAAC;oCACJ,mFAAmF;oCACnF,8DAA8D;oCAC9D,IAAI,QAAQ,EAAE,CAAC;wCACX,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oCACjC,CAAC;gCACL,CAAC;4BACL,CAAC;4BACD,OAAO,KAAK,EAAE,CAAC;gCACX,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;4BAClD,CAAC;wBACL,CAAC,CAAC,EAAE,CAAC;oBACT,CAAC;yBACI,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC9B,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;6BACjE,KAAK,CAAC,KAAK,CAAC,EAAE;4BACX,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;wBAC3C,CAAC,CAAC,CAAC;oBACX,CAAC;yBACI,CAAC;wBACF,wCAAwC;wBACxC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;oBAC9C,CAAC;gBACL,CAAC;qBACI,CAAC;oBACF,uBAAuB;oBACvB,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBACpD,CAAC;YACL,CAAC;YACD,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,KAAK;SACtB,CAAC,CAAC;IACP,CAAC;IAED,MAAM,+BAA+B,GAAG,GAAG,EAAE;QACzC,MAAM,YAAY,GAAyB;YACvC,iBAAiB,EAAE,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACrD,iBAAiB,EAAE,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACrD,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChE,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,IAAI,YAAY,GAAiC,IAAI,CAAC;gBACtD,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;oBAC/B,YAAY,GAAG,IAA6B,CAAC;gBACjD,CAAC;gBACD,OAAO;oBACH,MAAM;oBACN,YAAY;iBACf,CAAA;YACL,CAAC,CAAC,CAAC;YACH,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,IAAI;SACjB,CAAA;QACD,eAAe,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC,CAAA;IAED,uCAAuC;IACvC,MAAM,QAAQ,GAAG;QACb,GAAG,IAAI;QACP,SAAS;QACT,YAAY;QACZ,OAAO;QACP,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE;QAC5B,QAAQ,EAAE,CAAC,IAAa,EAAE,EAAE;YACxB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrB,+BAA+B,EAAE,CAAC;QACtC,CAAC;KACoB,CAAC;IAC1B,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,WAAW,GAAG,CAAO,GAAM,EAAE,GAAmB,EAAE,EAAE,CAAC,CAAC,KAAQ,EAAE,EAAE;IACpE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,GAAG,EAAE,CAAC;QACN,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;SAAM,CAAC;QACJ,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,EAAE;QACR,GAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"create-database.js","sourceRoot":"","sources":["../../../src/ecs/database/create-database.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAW,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sDAAsD,CAAC;AAGxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,UAAU,cAAc,CAM1B,KAAqB,EACrB,uBAA2B;IAI3B,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAE3D,oCAAoC;IACpC,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAmC,CAAC;IACtE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAgC,CAAC;IACnE,MAAM,eAAe,GAAG,IAAI,GAAG,EAA6D,CAAC;IAC7F,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA+C,CAAC;IAEpF,yBAAyB;IACzB,MAAM,aAAa,GAAG,CAA2B,MAAc,EAAE,YAAkD,EAAE,EAAE,CAAC,CAAC,QAAsD,EAAE,EAAE;QAC/K,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,gBAAgB,GAAG,QAAQ,CAAC;YAClC,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE;gBAClB,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAE,CAAC;oBAC5C,IAAI,SAAS,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;wBAClG,sEAAsE;wBACtE,+DAA+D;wBAC/D,MAAM,GAAG,IAAI,CAAC;oBAClB,CAAC;gBACL,CAAC;gBACD,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC,CAAA;QACL,CAAC;QACD,uCAAuC;QACvC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7B,sCAAsC;QACtC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,SAAsB,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAChG,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAEzH,mFAAmF;IACnF,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CACtC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,IAAsB,EAAE,QAAqC,CAAC,CAAC,CAAC;QACzG,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,QAAqC,CAAE,CAAC,CAAC,CAAC;IACxH,CAAC,CAAC,CACwC,CAAC;IAE/C,MAAM,kBAAkB,GAAkC,CAAC,MAAmD,EAAE,EAAE;QAC9G,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACR,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC,CAAA;IACL,CAAC,CAAA;IAED,MAAM,OAAO,GAA8B;QACvC,UAAU,EAAE,gBAAgB;QAC5B,SAAS,EAAE,eAAe;QAC1B,YAAY,EAAE,kBAAkB;QAChC,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,gBAAgB;QAC3B,MAAM,EAAE,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;KACxE,CAAC;IAEF,MAAM,EAAE,OAAO,EAAE,0BAA0B,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,kBAAkB,CAAC;IAEvF,MAAM,eAAe,GAAG,CAAC,MAA4B,EAAE,EAAE;QACrD,+BAA+B;QAC/B,KAAK,MAAM,mBAAmB,IAAI,oBAAoB,EAAE,CAAC;YACrD,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,6BAA6B;QAC7B,KAAK,MAAM,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,gBAAkC,CAAC,CAAC;YAC7E,IAAI,SAAS,EAAE,CAAC;gBACZ,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC/B,QAAQ,EAAE,CAAC;gBACf,CAAC;YACL,CAAC;QACL,CAAC;QAED,6BAA6B;QAC7B,KAAK,MAAM,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC3D,IAAI,SAAS,EAAE,CAAC;gBACZ,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC/B,QAAQ,EAAE,CAAC;gBACf,CAAC;YACL,CAAC;QACL,CAAC;QAED,0BAA0B;QAC1B,KAAK,MAAM,aAAa,IAAI,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;YACxD,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACrD,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC/B,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,CAAC,OAAqC,EAAE,OAAiC,EAAE,EAAE;QACzF,MAAM,MAAM,GAAG,0BAA0B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5D,eAAe,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAClB,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,EAAO,CAAC;IAE7B,KAAK,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC/E,MAAM,WAAW,GAAG,kBAAgE,CAAC;QACrF,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE;YACtC,KAAK,EAAE,CAAC,IAAa,EAAE,EAAE;gBACrB,iDAAiD;gBACjD,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC7B,MAAM,iBAAiB,GAAG,IAAgD,CAAC;oBAC3E,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;oBAExC,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;wBAChC,IAAI,KAAK,GAAG,CAAC,CAAC;wBACd,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;4BACzC,IAAI,CAAC;gCACD,IAAI,QAAQ,GAAQ,SAAS,CAAC;gCAC9B,IAAI,eAAiD,CAAC;gCAEtD,MAAM,WAAW,GAAG,CAAC,SAAc,EAAE,SAAkB,EAAE,EAAE;oCACvD,QAAQ,GAAG,SAAS,CAAC;oCAErB,IAAI,eAAe,EAAE,CAAC;wCAClB,iCAAiC;wCACjC,OAAO,CAAC,CAAC,CAAC,EAAE;4CACR,IAAI,eAAe,EAAE,CAAC;gDAClB,mEAAmE;gDACnE,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;4CAC7C,CAAC;wCACL,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;oCAC3B,CAAC;oCACD,eAAe,GAAG,OAAO,CACrB,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,EAC9B,EAAE,SAAS,EAAE,CAChB,CAAC;oCAEF,IAAI,CAAC,SAAS,EAAE,CAAC;wCACb,kDAAkD;wCAClD,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oCACnC,CAAC;gCACL,CAAC,CAAA;gCAED,iFAAiF;gCACjF,IAAI,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;gCAEtC,gDAAgD;gCAChD,mEAAmE;gCACnE,+CAA+C;gCAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oCAClB,qDAAqD;oCACrD,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oCAChC,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;gCACtC,CAAC;gCAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oCAC7B,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gCACrC,CAAC;qCAAM,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC,CAAE,kCAAkC;oCACpE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gCACjC,CAAC;4BACL,CAAC;4BACD,OAAO,KAAK,EAAE,CAAC;gCACX,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;gCAC9C,MAAM,CAAC,KAAK,CAAC,CAAC;4BAClB,CAAC;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC;yBACI,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC9B,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;4BACzC,IAAI,CAAC;gCACD,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC;gCAChC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gCACnD,OAAO,CAAC,MAAM,CAAC,CAAC;4BACpB,CAAC;4BACD,OAAO,KAAK,EAAE,CAAC;gCACX,MAAM,CAAC,KAAK,CAAC,CAAC;4BAClB,CAAC;wBACL,CAAC,CAAC,CAAC;oBACP,CAAC;yBACI,CAAC;wBACF,wCAAwC;wBACxC,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;oBACrD,CAAC;gBACL,CAAC;qBACI,CAAC;oBACF,uBAAuB;oBACvB,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBACpD,CAAC;YACL,CAAC;YACD,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,KAAK;SACtB,CAAC,CAAC;IACP,CAAC;IAED,MAAM,+BAA+B,GAAG,GAAG,EAAE;QACzC,MAAM,YAAY,GAAyB;YACvC,iBAAiB,EAAE,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACrD,iBAAiB,EAAE,IAAI,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;YACrD,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBAChE,IAAI,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,IAAI,YAAY,GAAiC,IAAI,CAAC;gBACtD,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;oBAC/B,YAAY,GAAG,IAA6B,CAAC;gBACjD,CAAC;gBACD,OAAO;oBACH,MAAM;oBACN,YAAY;iBACf,CAAA;YACL,CAAC,CAAC,CAAC;YACH,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,IAAI;SACjB,CAAA;QACD,eAAe,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC,CAAA;IAED,uCAAuC;IACvC,MAAM,QAAQ,GAAG;QACb,GAAG,IAAI;QACP,SAAS;QACT,YAAY;QACZ,OAAO;QACP,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE;QAC5B,QAAQ,EAAE,CAAC,IAAa,EAAE,EAAE;YACxB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrB,+BAA+B,EAAE,CAAC;QACtC,CAAC;KACoB,CAAC;IAC1B,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,WAAW,GAAG,CAAO,GAAM,EAAE,GAAmB,EAAE,EAAE,CAAC,CAAC,KAAQ,EAAE,EAAE;IACpE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,GAAG,EAAE,CAAC;QACN,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;SAAM,CAAC;QACJ,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,EAAE;QACR,GAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC;AACN,CAAC,CAAC"}