@fieldia/calendar 0.0.0-stage → 0.22.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/LICENSE +21 -0
- package/README.md +125 -2
- package/package.json +37 -3
- package/src/index.d.mts +3 -0
- package/src/index.d.ts +3 -0
- package/src/index.js +6 -0
- package/src/index.js.map +1 -0
- package/src/index.mjs +2 -0
- package/src/index.mjs.map +1 -0
- package/src/lib/calendar-core.d.mts +83 -0
- package/src/lib/calendar-core.d.ts +83 -0
- package/src/lib/calendar-core.js +18 -0
- package/src/lib/calendar-core.js.map +1 -0
- package/src/lib/calendar-core.mjs +13 -0
- package/src/lib/calendar-core.mjs.map +1 -0
- package/src/lib/calendar-view.d.mts +11 -0
- package/src/lib/calendar-view.d.ts +11 -0
- package/src/lib/calendar-view.js +829 -0
- package/src/lib/calendar-view.js.map +1 -0
- package/src/lib/calendar-view.mjs +826 -0
- package/src/lib/calendar-view.mjs.map +1 -0
- package/src/lib/dates.d.mts +43 -0
- package/src/lib/dates.d.ts +43 -0
- package/src/lib/dates.js +100 -0
- package/src/lib/dates.js.map +1 -0
- package/src/lib/dates.mjs +80 -0
- package/src/lib/dates.mjs.map +1 -0
- package/src/lib/events.d.mts +58 -0
- package/src/lib/events.d.ts +58 -0
- package/src/lib/events.js +136 -0
- package/src/lib/events.js.map +1 -0
- package/src/lib/events.mjs +125 -0
- package/src/lib/events.mjs.map +1 -0
- package/src/lib/gestures.d.mts +11 -0
- package/src/lib/gestures.d.ts +11 -0
- package/src/lib/gestures.js +215 -0
- package/src/lib/gestures.js.map +1 -0
- package/src/lib/gestures.mjs +210 -0
- package/src/lib/gestures.mjs.map +1 -0
- package/src/lib/keys.d.mts +5 -0
- package/src/lib/keys.d.ts +5 -0
- package/src/lib/keys.js +151 -0
- package/src/lib/keys.js.map +1 -0
- package/src/lib/keys.mjs +146 -0
- package/src/lib/keys.mjs.map +1 -0
- package/src/lib/labels.d.mts +65 -0
- package/src/lib/labels.d.ts +65 -0
- package/src/lib/labels.js +193 -0
- package/src/lib/labels.js.map +1 -0
- package/src/lib/labels.mjs +188 -0
- package/src/lib/labels.mjs.map +1 -0
- package/src/lib/list-view.d.mts +11 -0
- package/src/lib/list-view.d.ts +11 -0
- package/src/lib/list-view.js +54 -0
- package/src/lib/list-view.js.map +1 -0
- package/src/lib/list-view.mjs +51 -0
- package/src/lib/list-view.mjs.map +1 -0
- package/src/lib/move-to.d.mts +15 -0
- package/src/lib/move-to.d.ts +15 -0
- package/src/lib/move-to.js +122 -0
- package/src/lib/move-to.js.map +1 -0
- package/src/lib/move-to.mjs +118 -0
- package/src/lib/move-to.mjs.map +1 -0
- package/src/lib/settings.d.mts +11 -0
- package/src/lib/settings.d.ts +11 -0
- package/src/lib/settings.js +3 -0
- package/src/lib/settings.js.map +1 -0
- package/src/lib/settings.mjs +2 -0
- package/src/lib/settings.mjs.map +1 -0
- package/src/lib/styles.d.mts +9 -0
- package/src/lib/styles.d.ts +9 -0
- package/src/lib/styles.js +165 -0
- package/src/lib/styles.js.map +1 -0
- package/src/lib/styles.mjs +161 -0
- package/src/lib/styles.mjs.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar-view.mjs","sourceRoot":"","sources":["../../../../../libs/calendar/src/lib/calendar-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2K,MAAM,eAAe,CAAC;AAEvN,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAsD,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAc,MAAM,SAAS,CAAC;AAC/J,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAqC,MAAM,UAAU,CAAC;AACnH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,IAAI,EAAuB,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,SAAS,GAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACrE,oGAAoG;AACpG,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,sEAAsE;AACtE,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,6DAA6D;AAC7D,MAAM,QAAQ,GAAG,CAAC,CAAC;AACnB,mHAAmH;AACnH,MAAM,IAAI,GAAG,EAAE,CAAC;AAChB,2HAA2H;AAC3H,MAAM,KAAK,GAAG,CAAC,CAAC;AAChB,6FAA6F;AAC7F,MAAM,OAAO,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,yGAAyG,CAAC;AAEhM,IAAI,IAAI,GAAG,CAAC,CAAC;AAEb;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,OAAwB,EAAE,WAA6B,EAAE;IACpF,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAwB,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,MAAM,GAAmB,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACxG,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC7B,uHAAuH;IACvH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,GAAG,CAAC;IACpC,MAAM,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;IAC1E,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;IAC5E,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;IACjC,yGAAyG;IACzG,MAAM,KAAK,GAAkB;QAC3B,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAClH,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;QAC7D,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,EAAE;KACd,CAAC;IACF,IAAI,OAAO,GAAmB,EAAE,CAAC;IACjC,IAAI,MAAM,GAAoB,EAAE,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,cAAc,GAA4C,IAAI,CAAC;IACnE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,+GAA+G;IAC/G,IAAI,IAAI,GAAuF,IAAI,CAAC;IACpG,sIAAsI;IACtI,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClG,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1F,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACnC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpM,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,OAAO,GAAG,CAAC,IAAa,EAAE,EAAE;QAChC,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACrE,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACzC,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACxC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,+GAA+G;IAE/G,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/F,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,uBAAuB,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9F,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACvI,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,WAAW,CAAC,CAAC;IACnH,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,wCAAwC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACxH,SAAS,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC;IAC9B,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAEnL,qGAAqG;IACrG,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrG,uFAAuF;IACvF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjI,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAChG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnM,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC;IAExD,gHAAgH;IAEhH,MAAM,KAAK,GAAG,GAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvE,qHAAqH;IACrH,SAAS,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,EAAS;QACrC,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7E,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,GAAmB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACpG,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9E,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACjJ,CAAC;IAED,KAAK,UAAU,MAAM;QACnB,MAAM,IAAI,GAAG,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACvM,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,IAAI,KAAK,MAAM,IAAI,SAAS;gBAAE,OAAO;YACzC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACzB,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;YACzB,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,IAAI,KAAK,MAAM,IAAI,SAAS;gBAAE,OAAO;YACzC,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAClC,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,EAAE,CAAC;IACT,CAAC;IAED;;;;OAIG;IACH,KAAK,UAAU,YAAY,CAAC,KAA8B;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,cAAc,GAAG,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;gBAAE,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBACjI,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;gBACrD,IAAI,CAAC;oBACH,cAAc,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACnL,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc,GAAG,EAAE,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwC,CAAC;QAC7D,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,GAAG,KAAK,IAAI;gBAAE,IAAI,GAAG,IAAI,CAAC;iBACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAc,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7J,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5H,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpF,MAAM,GAAG,GAAyB,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;QACvD,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACvE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,8GAA8G;IAE9G,MAAM,OAAO,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1G,0GAA0G;IAC1G,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,OAAO,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAE/C,SAAS,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,EAAS;QACpC,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACvB,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,KAAK,KAAK;YAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACpI,IAAI,IAAI,KAAK,OAAO;YAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aAClH,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACjF,KAAK,CAAC,WAAW,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5I,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,WAAW;YAAE,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IAClH,CAAC;IAED,SAAS,IAAI;QACX,MAAM,MAAM,GAAG,GAAG,CAAC,aAAmC,CAAC;QACvD,yHAAyH;QACzH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/H,UAAU,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;QACtC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1E,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAClG,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC1G,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;aAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;;YACrE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAc,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpF,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM;YACR,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,SAAS,UAAU,CAAC,KAAoB,EAAE,GAAS,EAAE,OAAgB,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ;QACvH,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAO,IAAI,GAAG,EAAE,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACvJ,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvG,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;YACxB,KAAK,EAAE,cAAc;YACrB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YACtC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YACtC,6FAA6F;YAC7F,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;SACnF,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,CAAC;QACpF,gFAAgF;QAChF,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACzE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,KAAK,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YACvB,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpB,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACzK,sGAAsG;QACtG,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1J,6FAA6F;QAC7F,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACtF,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW;YAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACrJ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,2GAA2G;YAC3G,qGAAqG;YACrG,MAAM,IAAI,GAAG,GAAG;gBACd,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC;gBACxK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC;YACrI,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACnC,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YACxF,mGAAmG;YACnG,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK;oBAAE,UAAU,CAAC,GAAG,EAAE,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAChI,CAAC,CAAC,CAAC;QACL,CAAC;;YAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iHAAiH;IAEjH,SAAS,QAAQ,CAAC,KAAY;QAC5B,MAAM,OAAO,GAAa,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1L,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QACxB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACzB,IAAI,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACxF,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvF,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QACjE,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC;QACvB,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC;QACnB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,GAAG;oBAAE,SAAS;gBACnB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC7D,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QACD,KAAK,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACnH,8EAA8E;QAC9E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5E,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACjI,IAAI,MAAM,CAAC,QAAQ;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAChH,CAAC;gBACJ,MAAM,MAAM,GAAG,IAAI,CACjB,QAAQ,EACR,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAC/E,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EACzE,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAClG,CAAC;gBACF,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;;oBACnH,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,uFAAuF;QACvF,MAAM,QAAQ,GAAG,IAAI,KAAK,MAAM,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;gBACxJ,KAAK,MAAM,KAAK,IAAI,MAAM;oBAAE,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;wBAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;gBACvI,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;oBACzC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;wBAAE,OAAO;oBAC9D,KAAK,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,iGAAiG;QACjG,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3E,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACpG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE;gBACtB,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;gBACxF,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;gBACxB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;gBAC9B,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;aACnD,CAAC,CAAC;YACH,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC/C,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC5G,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC1L,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACjE,8FAA8F;oBAC9F,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;wBACnC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;4BAAE,KAAK,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC5E,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAClG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;gBACD,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACnC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvC,OAAO,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/F,uGAAuG;YACvG,MAAM,IAAI,GAAG,CAAC,KAAW,EAAE,GAAS,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxM,MAAM,MAAM,GAAG,CAAC,EAAe,EAAE,IAAY,EAAE,EAAU,EAAE,EAAE;gBAC3D,EAAE,CAAC,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,UAAU,CAAC;gBAChE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,GAAG,GAAG,EAAE,UAAU,CAAC;YAC9C,CAAC,CAAC;YACF,0GAA0G;YAC1G,MAAM,IAAI,GAAgB,EAAE,CAAC;YAC7B,+CAA+C;YAC/C,MAAM,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAyB,EAAE,IAAY,EAAE,EAAU,EAAE,EAAE;gBACrF,gEAAgE;gBAChE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACtE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACvC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;gBAC7B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;gBACnC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxB,IAAI,MAAM,GAAG,EAAE;oBAAE,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gBACtD,uEAAuE;gBACvE,IAAI,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5G,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC7E,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;oBAChF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;gBACD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBAClE,IAAI,KAAK,CAAC,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;oBAChE,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,qHAAqH;YACrH,oDAAoD;YACpD,MAAM,QAAQ,GAAG,CAAC,GAAgB,EAAE,EAAE;gBACpC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBACvE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7I,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACxC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC;gBACrB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACxI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtQ,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;gBAClC,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;gBACnH,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC,CAAC;YACF,IAAI,GAAG,GAAgB,EAAE,CAAC;YAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC3E,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;oBAC/B,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACd,GAAG,GAAG,EAAE,CAAC;gBACX,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACZ,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,4CAA4C;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAc,kBAAkB,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAc,cAAc,CAAC,CAAC;QACjL,IAAI,IAAI;YAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,SAAS,QAAQ,CAAC,KAAa;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACxI,CAAC;IACD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,kHAAkH;IAClH,sDAAsD;IACtD,MAAM,OAAO,GAAG,OAAO,cAAc,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9Q,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,kHAAkH;IAElH,IAAI,QAAQ,GAAuB,IAAI,CAAC;IACxC,mHAAmH;IACnH,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,MAAM,YAAY,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,IAAI,UAAU,EAAE,CAAC;IAC3G,SAAS,UAAU,CAAC,IAAI,GAAG,KAAK;QAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,GAAG,IAAI,CAAC;QAChB,GAAG,CAAC,mBAAmB,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,IAAI;YAAE,IAAI,CAAC,aAAa,CAAc,gBAAgB,SAAS,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;IACpF,CAAC;IAED,sIAAsI;IACtI,SAAS,SAAS,CAAC,KAAyD,EAAE,MAAc,EAAE,IAAiB;QAC7G,UAAU,EAAE,CAAC;QACb,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjJ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACtN,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;QACzI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrK,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACnK,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO;YAC/B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,aAAa,CAAc,cAAc,CAAC,EAAE,KAAK,EAAE,CAAC;QACzD,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACtI,uCAAuC;IACvC,SAAS,OAAO,CAAC,KAAoB,EAAE,GAAS;QAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,IAAI,KAAK,CAAC,KAAK,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC;QAChE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClH,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,KAAoB,EAAE,GAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAE9H,iHAAiH;IAEjH,SAAS,SAAS,CAAC,KAAY;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzK,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QACrJ,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACvM,MAAM,MAAM,GAAG,IAAI,CACjB,QAAQ,EACR,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,EAAE,EAC5T,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAC/C,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACnG,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAClF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;YACvF,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7O,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;gBACzC,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO;gBAC9D,KAAK,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gHAAgH;IAEhH,SAAS,UAAU,CAAC,KAAY;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,SAAS;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;YAC1D,KAAK,MAAM,KAAK,IAAI,IAAI;gBAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACtF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAChN,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8GAA8G;IAE9G,4EAA4E;IAC5E,SAAS,QAAQ;QACf,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;YAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QACrE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO;QAC1D,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,IAAI,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE;YAAE,OAAO;QAC1F,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAc,yBAAyB,CAAC,EAAE,CAAC;YAChF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YAC9E,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAE7C,kHAAkH;IAElH,SAAS,EAAE,CAAC,GAAS;QACnB,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACjE,KAAK,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,SAAS,QAAQ,CAAC,IAAkB,EAAE,GAAU;QAC9C,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,GAAG;YAAE,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QACxC,KAAK,CAAC,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC7F,KAAK,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,8GAA8G;IAE9G,2HAA2H;IAC3H,SAAS,QAAQ;QACf,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;YACjH,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,EAAE,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QACjD,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QAClJ,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,gHAAgH;IAChH,KAAK,UAAU,QAAQ,CAAC,KAAW,EAAE,GAAgB,EAAE,MAAqB,EAAE,QAAQ,GAAG,KAAK;QAC5F,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO;QAC5B,MAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAClD,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YAClF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QACnH,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,8GAA8G;IAE9G,SAAS,IAAI,CAAC,KAAoB;QAChC,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE,OAAO;QAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,MAAM,YAAY,OAAO;YAAE,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED;;;OAGG;IACH,SAAS,KAAK,CAAC,QAAkB,EAAE,GAAS;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,MAAM,KAAK,GACT,IAAI,CAAC,aAAa,CAAc,kBAAkB,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACvF,IAAI,CAAC,aAAa,CAAc,mBAAmB,GAAG,mBAAmB,CAAC;YAC1E,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAc,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1H,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;QACtB,OAAO,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAChE,CAAC;IAED;;;OAGG;IACH,MAAM,QAAQ,GAAG,CAAC,QAAkB,EAAE,MAAc,EAAE,OAAuB,EAAe,EAAE,CAAC,CAAC;QAC9F,KAAK;QACL,EAAE,EAAE,QAAQ;QACZ,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAW;QAClG,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QACzC,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE;QACrB,OAAO,EAAE,IAAI;QACb,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC,CAAC;IAEH;;;OAGG;IACH,KAAK,UAAU,MAAM,CAAC,KAAoB,EAAE,MAAc,EAAE,KAAa;QACvE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YACjD,IAAI,EAAE,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,MAAM,MAAM,GAAW,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/G,MAAM,KAAK,GAAiB,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;QACnF,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,EAAE,CAAC;QACP,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAc,eAAe,CAAC;YAAE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAAE,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/J,GAAG,CAAC,EAAE,CAAC,CAAC;QACR,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7E,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YACjL,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YACvG,KAAK,GAAG,IAAI,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7E,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,IAAI,EAAE,CAAC;QACT,CAAC;QACD,IAAI,CAAC,SAAS;YAAE,MAAM,MAAM,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gIAAgI;IAChI,KAAK,UAAU,QAAQ;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI;YAAE,OAAO;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,GAAG,IAAI,CAAC;QACZ,GAAG,CAAC,EAAE,CAAC,CAAC;QACR,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACvE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,SAAS;YAAE,OAAO;QACtB,MAAM,MAAM,EAAE,CAAC;QACf,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,KAAK,GAAG,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7G,CAAC;IAED,qIAAqI;IACrI,SAAS,GAAG,CAAC,KAAa,EAAE,KAAkC,EAAE,QAAQ,GAAG,KAAK;QAC9E,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QACrC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACtG,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1I,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC9C,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,IAAI,IAAI,KAAK;gBAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,mHAAmH;IAEnH,MAAM,GAAG,GAAiB;QACxB,EAAE;QACF,GAAG;QACH,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI,EAAE,IAAI;QACV,QAAQ;QACR,OAAO;QACP,KAAK;QACL,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,OAAO;QACP,YAAY;QACZ,IAAI;QACJ,MAAM;QACN,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,KAAK;QACL,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;KACvD,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAE1B,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACnB,OAAO;QACL,OAAO;QACP,MAAM;QACN,SAAS,CAAC,QAAQ;YAChB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC;gBAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,KAAK,IAAI,IAAK,KAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnL,CAAC;QACD,aAAa;YACX,6EAA6E;QAC/E,CAAC;QACD,KAAK;YACH,QAAQ,EAAE,CAAC;QACb,CAAC;QACD,OAAO;YACL,SAAS,GAAG,IAAI,CAAC;YACjB,aAAa,CAAC,OAAO,CAAC,CAAC;YACvB,OAAO,EAAE,UAAU,EAAE,CAAC;YACtB,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { CalendarView, Locale, Value } from '@fieldia/core';
|
|
2
|
+
/**
|
|
3
|
+
* A calendar's days, in the reader's own time. Whole days are counted by the
|
|
4
|
+
* calendar's date, never by adding 24 hours, so a change of the clocks moves
|
|
5
|
+
* no day.
|
|
6
|
+
*/
|
|
7
|
+
export type WhenKind = 'date' | 'datetime';
|
|
8
|
+
/** A day's key, as a date field keeps it: "2026-10-14". */
|
|
9
|
+
export declare const dayKey: (d: Date) => string;
|
|
10
|
+
export declare const startOfDay: (d: Date) => Date;
|
|
11
|
+
export declare const addDays: (d: Date, n: number) => Date;
|
|
12
|
+
export declare const addMinutes: (d: Date, n: number) => Date;
|
|
13
|
+
export declare const sameDay: (a: Date, b: Date) => boolean;
|
|
14
|
+
/** Minutes since the day's midnight. */
|
|
15
|
+
export declare const minutesOf: (d: Date) => number;
|
|
16
|
+
/** The moment `minutes` after a day's midnight, by the clock on the wall. */
|
|
17
|
+
export declare const atMinutes: (day: Date, minutes: number) => Date;
|
|
18
|
+
/** Whole days from one day to another, by the calendar. */
|
|
19
|
+
export declare const daysBetween: (from: Date, to: Date) => number;
|
|
20
|
+
/** A field's value as a moment: a date at its midnight, a date and time as it holds. Null when it holds none. */
|
|
21
|
+
export declare function readWhen(value: Value | undefined, kind: WhenKind): Date | null;
|
|
22
|
+
/**
|
|
23
|
+
* A day as a date input writes it, "2026-10-14", at its midnight: null for one that is no day ("2026-02-30", "", a
|
|
24
|
+
* year of more than four digits). A year is read as written: "0026" is the year 26, never 1926.
|
|
25
|
+
*/
|
|
26
|
+
export declare function readDay(text: string): Date | null;
|
|
27
|
+
/** A moment as its field keeps it: a date's day, or a date and time as the date widgets write one (ISO, in UTC). */
|
|
28
|
+
export declare const writeWhen: (d: Date, kind: WhenKind) => string;
|
|
29
|
+
/** The week's first day by language: Saturday in Arabic (as Egypt's week runs), Monday elsewhere, as Fieldia's date picker has it. */
|
|
30
|
+
export declare function firstDayOf(locale: Locale, own?: number): number;
|
|
31
|
+
export declare const startOfWeek: (d: Date, firstDay: number) => Date;
|
|
32
|
+
/** What a view shows from a day in it — a day, its week, its month in whole weeks, or a week on from it (the agenda) — from the first moment of the first day to the first of the day after the last. */
|
|
33
|
+
export interface Range {
|
|
34
|
+
from: Date;
|
|
35
|
+
to: Date;
|
|
36
|
+
days: Date[];
|
|
37
|
+
}
|
|
38
|
+
export declare function rangeOf(view: CalendarView, anchor: Date, firstDay: number): Range;
|
|
39
|
+
/** A view's next span, or its last: a day, a week, or a month (to its last day where the next month is shorter). */
|
|
40
|
+
export declare function stepFrom(view: CalendarView, anchor: Date, by: 1 | -1): Date;
|
|
41
|
+
/** The language as Intl reads it: British English's day before month, every language's digits Latin, as Fieldia writes dates. */
|
|
42
|
+
export declare const intlTag: (locale: Locale) => "ar" | "de" | "fr" | "en-GB";
|
|
43
|
+
export declare const format: (locale: Locale, options: Intl.DateTimeFormatOptions) => Intl.DateTimeFormat;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { CalendarView, Locale, Value } from '@fieldia/core';
|
|
2
|
+
/**
|
|
3
|
+
* A calendar's days, in the reader's own time. Whole days are counted by the
|
|
4
|
+
* calendar's date, never by adding 24 hours, so a change of the clocks moves
|
|
5
|
+
* no day.
|
|
6
|
+
*/
|
|
7
|
+
export type WhenKind = 'date' | 'datetime';
|
|
8
|
+
/** A day's key, as a date field keeps it: "2026-10-14". */
|
|
9
|
+
export declare const dayKey: (d: Date) => string;
|
|
10
|
+
export declare const startOfDay: (d: Date) => Date;
|
|
11
|
+
export declare const addDays: (d: Date, n: number) => Date;
|
|
12
|
+
export declare const addMinutes: (d: Date, n: number) => Date;
|
|
13
|
+
export declare const sameDay: (a: Date, b: Date) => boolean;
|
|
14
|
+
/** Minutes since the day's midnight. */
|
|
15
|
+
export declare const minutesOf: (d: Date) => number;
|
|
16
|
+
/** The moment `minutes` after a day's midnight, by the clock on the wall. */
|
|
17
|
+
export declare const atMinutes: (day: Date, minutes: number) => Date;
|
|
18
|
+
/** Whole days from one day to another, by the calendar. */
|
|
19
|
+
export declare const daysBetween: (from: Date, to: Date) => number;
|
|
20
|
+
/** A field's value as a moment: a date at its midnight, a date and time as it holds. Null when it holds none. */
|
|
21
|
+
export declare function readWhen(value: Value | undefined, kind: WhenKind): Date | null;
|
|
22
|
+
/**
|
|
23
|
+
* A day as a date input writes it, "2026-10-14", at its midnight: null for one that is no day ("2026-02-30", "", a
|
|
24
|
+
* year of more than four digits). A year is read as written: "0026" is the year 26, never 1926.
|
|
25
|
+
*/
|
|
26
|
+
export declare function readDay(text: string): Date | null;
|
|
27
|
+
/** A moment as its field keeps it: a date's day, or a date and time as the date widgets write one (ISO, in UTC). */
|
|
28
|
+
export declare const writeWhen: (d: Date, kind: WhenKind) => string;
|
|
29
|
+
/** The week's first day by language: Saturday in Arabic (as Egypt's week runs), Monday elsewhere, as Fieldia's date picker has it. */
|
|
30
|
+
export declare function firstDayOf(locale: Locale, own?: number): number;
|
|
31
|
+
export declare const startOfWeek: (d: Date, firstDay: number) => Date;
|
|
32
|
+
/** What a view shows from a day in it — a day, its week, its month in whole weeks, or a week on from it (the agenda) — from the first moment of the first day to the first of the day after the last. */
|
|
33
|
+
export interface Range {
|
|
34
|
+
from: Date;
|
|
35
|
+
to: Date;
|
|
36
|
+
days: Date[];
|
|
37
|
+
}
|
|
38
|
+
export declare function rangeOf(view: CalendarView, anchor: Date, firstDay: number): Range;
|
|
39
|
+
/** A view's next span, or its last: a day, a week, or a month (to its last day where the next month is shorter). */
|
|
40
|
+
export declare function stepFrom(view: CalendarView, anchor: Date, by: 1 | -1): Date;
|
|
41
|
+
/** The language as Intl reads it: British English's day before month, every language's digits Latin, as Fieldia writes dates. */
|
|
42
|
+
export declare const intlTag: (locale: Locale) => "ar" | "de" | "fr" | "en-GB";
|
|
43
|
+
export declare const format: (locale: Locale, options: Intl.DateTimeFormatOptions) => Intl.DateTimeFormat;
|
package/src/lib/dates.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.format = exports.intlTag = exports.startOfWeek = exports.writeWhen = exports.daysBetween = exports.atMinutes = exports.minutesOf = exports.sameDay = exports.addMinutes = exports.addDays = exports.startOfDay = exports.dayKey = void 0;
|
|
4
|
+
exports.readWhen = readWhen;
|
|
5
|
+
exports.readDay = readDay;
|
|
6
|
+
exports.firstDayOf = firstDayOf;
|
|
7
|
+
exports.rangeOf = rangeOf;
|
|
8
|
+
exports.stepFrom = stepFrom;
|
|
9
|
+
const pad = (n) => String(n).padStart(2, '0');
|
|
10
|
+
/** A day's key, as a date field keeps it: "2026-10-14". */
|
|
11
|
+
const dayKey = (d) => `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;
|
|
12
|
+
exports.dayKey = dayKey;
|
|
13
|
+
const startOfDay = (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate());
|
|
14
|
+
exports.startOfDay = startOfDay;
|
|
15
|
+
const addDays = (d, n) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + n, d.getHours(), d.getMinutes());
|
|
16
|
+
exports.addDays = addDays;
|
|
17
|
+
const addMinutes = (d, n) => new Date(d.getTime() + n * 60000);
|
|
18
|
+
exports.addMinutes = addMinutes;
|
|
19
|
+
const sameDay = (a, b) => (0, exports.dayKey)(a) === (0, exports.dayKey)(b);
|
|
20
|
+
exports.sameDay = sameDay;
|
|
21
|
+
/** Minutes since the day's midnight. */
|
|
22
|
+
const minutesOf = (d) => d.getHours() * 60 + d.getMinutes();
|
|
23
|
+
exports.minutesOf = minutesOf;
|
|
24
|
+
/** The moment `minutes` after a day's midnight, by the clock on the wall. */
|
|
25
|
+
const atMinutes = (day, minutes) => new Date(day.getFullYear(), day.getMonth(), day.getDate(), Math.floor(minutes / 60), minutes % 60);
|
|
26
|
+
exports.atMinutes = atMinutes;
|
|
27
|
+
/** Whole days from one day to another, by the calendar. */
|
|
28
|
+
const daysBetween = (from, to) => Math.round((Date.UTC(to.getFullYear(), to.getMonth(), to.getDate()) - Date.UTC(from.getFullYear(), from.getMonth(), from.getDate())) / 86400000);
|
|
29
|
+
exports.daysBetween = daysBetween;
|
|
30
|
+
/** A field's value as a moment: a date at its midnight, a date and time as it holds. Null when it holds none. */
|
|
31
|
+
function readWhen(value, kind) {
|
|
32
|
+
if (typeof value !== 'string' || !value)
|
|
33
|
+
return null;
|
|
34
|
+
if (kind === 'date') {
|
|
35
|
+
const m = /^(\d{4})-(\d{2})-(\d{2})/.exec(value);
|
|
36
|
+
return m ? new Date(Number(m[1]), Number(m[2]) - 1, Number(m[3])) : null;
|
|
37
|
+
}
|
|
38
|
+
const d = new Date(value);
|
|
39
|
+
return Number.isNaN(d.getTime()) ? null : d;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A day as a date input writes it, "2026-10-14", at its midnight: null for one that is no day ("2026-02-30", "", a
|
|
43
|
+
* year of more than four digits). A year is read as written: "0026" is the year 26, never 1926.
|
|
44
|
+
*/
|
|
45
|
+
function readDay(text) {
|
|
46
|
+
const m = /^(\d{4})-(\d\d)-(\d\d)$/.exec(text);
|
|
47
|
+
if (!m)
|
|
48
|
+
return null;
|
|
49
|
+
const [y, mo, d] = [Number(m[1]), Number(m[2]) - 1, Number(m[3])];
|
|
50
|
+
const day = new Date(2000, 0, 1);
|
|
51
|
+
day.setFullYear(y, mo, d);
|
|
52
|
+
return day.getFullYear() === y && day.getMonth() === mo && day.getDate() === d ? day : null;
|
|
53
|
+
}
|
|
54
|
+
/** A moment as its field keeps it: a date's day, or a date and time as the date widgets write one (ISO, in UTC). */
|
|
55
|
+
const writeWhen = (d, kind) => (kind === 'date' ? (0, exports.dayKey)(d) : d.toISOString());
|
|
56
|
+
exports.writeWhen = writeWhen;
|
|
57
|
+
/** The week's first day by language: Saturday in Arabic (as Egypt's week runs), Monday elsewhere, as Fieldia's date picker has it. */
|
|
58
|
+
function firstDayOf(locale, own) {
|
|
59
|
+
if (own !== undefined)
|
|
60
|
+
return own;
|
|
61
|
+
return locale === 'ar' ? 6 : 1;
|
|
62
|
+
}
|
|
63
|
+
const startOfWeek = (d, firstDay) => (0, exports.addDays)((0, exports.startOfDay)(d), -((d.getDay() - firstDay + 7) % 7));
|
|
64
|
+
exports.startOfWeek = startOfWeek;
|
|
65
|
+
function rangeOf(view, anchor, firstDay) {
|
|
66
|
+
let from;
|
|
67
|
+
let count;
|
|
68
|
+
if (view === 'day' || view === 'agenda') {
|
|
69
|
+
// The agenda: what comes, the day shown and the six after it.
|
|
70
|
+
from = (0, exports.startOfDay)(anchor);
|
|
71
|
+
count = view === 'day' ? 1 : 7;
|
|
72
|
+
}
|
|
73
|
+
else if (view === 'month') {
|
|
74
|
+
// Whole weeks round the month: from the week of its first day to the week of its last.
|
|
75
|
+
from = (0, exports.startOfWeek)(new Date(anchor.getFullYear(), anchor.getMonth(), 1), firstDay);
|
|
76
|
+
const last = new Date(anchor.getFullYear(), anchor.getMonth() + 1, 0);
|
|
77
|
+
count = (0, exports.daysBetween)(from, (0, exports.startOfWeek)(last, firstDay)) + 7;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
from = (0, exports.startOfWeek)(anchor, firstDay);
|
|
81
|
+
count = 7;
|
|
82
|
+
}
|
|
83
|
+
const days = Array.from({ length: count }, (_, i) => (0, exports.addDays)(from, i));
|
|
84
|
+
return { from, to: (0, exports.addDays)(from, count), days };
|
|
85
|
+
}
|
|
86
|
+
/** A view's next span, or its last: a day, a week, or a month (to its last day where the next month is shorter). */
|
|
87
|
+
function stepFrom(view, anchor, by) {
|
|
88
|
+
if (view === 'day')
|
|
89
|
+
return (0, exports.addDays)(anchor, by);
|
|
90
|
+
if (view !== 'month')
|
|
91
|
+
return (0, exports.addDays)(anchor, 7 * by);
|
|
92
|
+
const last = new Date(anchor.getFullYear(), anchor.getMonth() + by + 1, 0).getDate();
|
|
93
|
+
return new Date(anchor.getFullYear(), anchor.getMonth() + by, Math.min(anchor.getDate(), last));
|
|
94
|
+
}
|
|
95
|
+
/** The language as Intl reads it: British English's day before month, every language's digits Latin, as Fieldia writes dates. */
|
|
96
|
+
const intlTag = (locale) => (locale === 'en' ? 'en-GB' : locale);
|
|
97
|
+
exports.intlTag = intlTag;
|
|
98
|
+
const format = (locale, options) => new Intl.DateTimeFormat((0, exports.intlTag)(locale), { numberingSystem: 'latn', ...options });
|
|
99
|
+
exports.format = format;
|
|
100
|
+
//# sourceMappingURL=dates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dates.js","sourceRoot":"","sources":["../../../../../libs/calendar/src/lib/dates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
const pad = (n) => String(n).padStart(2, '0');
|
|
2
|
+
/** A day's key, as a date field keeps it: "2026-10-14". */
|
|
3
|
+
export const dayKey = (d) => `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;
|
|
4
|
+
export const startOfDay = (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate());
|
|
5
|
+
export const addDays = (d, n) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + n, d.getHours(), d.getMinutes());
|
|
6
|
+
export const addMinutes = (d, n) => new Date(d.getTime() + n * 60000);
|
|
7
|
+
export const sameDay = (a, b) => dayKey(a) === dayKey(b);
|
|
8
|
+
/** Minutes since the day's midnight. */
|
|
9
|
+
export const minutesOf = (d) => d.getHours() * 60 + d.getMinutes();
|
|
10
|
+
/** The moment `minutes` after a day's midnight, by the clock on the wall. */
|
|
11
|
+
export const atMinutes = (day, minutes) => new Date(day.getFullYear(), day.getMonth(), day.getDate(), Math.floor(minutes / 60), minutes % 60);
|
|
12
|
+
/** Whole days from one day to another, by the calendar. */
|
|
13
|
+
export const daysBetween = (from, to) => Math.round((Date.UTC(to.getFullYear(), to.getMonth(), to.getDate()) - Date.UTC(from.getFullYear(), from.getMonth(), from.getDate())) / 86400000);
|
|
14
|
+
/** A field's value as a moment: a date at its midnight, a date and time as it holds. Null when it holds none. */
|
|
15
|
+
export function readWhen(value, kind) {
|
|
16
|
+
if (typeof value !== 'string' || !value)
|
|
17
|
+
return null;
|
|
18
|
+
if (kind === 'date') {
|
|
19
|
+
const m = /^(\d{4})-(\d{2})-(\d{2})/.exec(value);
|
|
20
|
+
return m ? new Date(Number(m[1]), Number(m[2]) - 1, Number(m[3])) : null;
|
|
21
|
+
}
|
|
22
|
+
const d = new Date(value);
|
|
23
|
+
return Number.isNaN(d.getTime()) ? null : d;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A day as a date input writes it, "2026-10-14", at its midnight: null for one that is no day ("2026-02-30", "", a
|
|
27
|
+
* year of more than four digits). A year is read as written: "0026" is the year 26, never 1926.
|
|
28
|
+
*/
|
|
29
|
+
export function readDay(text) {
|
|
30
|
+
const m = /^(\d{4})-(\d\d)-(\d\d)$/.exec(text);
|
|
31
|
+
if (!m)
|
|
32
|
+
return null;
|
|
33
|
+
const [y, mo, d] = [Number(m[1]), Number(m[2]) - 1, Number(m[3])];
|
|
34
|
+
const day = new Date(2000, 0, 1);
|
|
35
|
+
day.setFullYear(y, mo, d);
|
|
36
|
+
return day.getFullYear() === y && day.getMonth() === mo && day.getDate() === d ? day : null;
|
|
37
|
+
}
|
|
38
|
+
/** A moment as its field keeps it: a date's day, or a date and time as the date widgets write one (ISO, in UTC). */
|
|
39
|
+
export const writeWhen = (d, kind) => (kind === 'date' ? dayKey(d) : d.toISOString());
|
|
40
|
+
/** The week's first day by language: Saturday in Arabic (as Egypt's week runs), Monday elsewhere, as Fieldia's date picker has it. */
|
|
41
|
+
export function firstDayOf(locale, own) {
|
|
42
|
+
if (own !== undefined)
|
|
43
|
+
return own;
|
|
44
|
+
return locale === 'ar' ? 6 : 1;
|
|
45
|
+
}
|
|
46
|
+
export const startOfWeek = (d, firstDay) => addDays(startOfDay(d), -((d.getDay() - firstDay + 7) % 7));
|
|
47
|
+
export function rangeOf(view, anchor, firstDay) {
|
|
48
|
+
let from;
|
|
49
|
+
let count;
|
|
50
|
+
if (view === 'day' || view === 'agenda') {
|
|
51
|
+
// The agenda: what comes, the day shown and the six after it.
|
|
52
|
+
from = startOfDay(anchor);
|
|
53
|
+
count = view === 'day' ? 1 : 7;
|
|
54
|
+
}
|
|
55
|
+
else if (view === 'month') {
|
|
56
|
+
// Whole weeks round the month: from the week of its first day to the week of its last.
|
|
57
|
+
from = startOfWeek(new Date(anchor.getFullYear(), anchor.getMonth(), 1), firstDay);
|
|
58
|
+
const last = new Date(anchor.getFullYear(), anchor.getMonth() + 1, 0);
|
|
59
|
+
count = daysBetween(from, startOfWeek(last, firstDay)) + 7;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
from = startOfWeek(anchor, firstDay);
|
|
63
|
+
count = 7;
|
|
64
|
+
}
|
|
65
|
+
const days = Array.from({ length: count }, (_, i) => addDays(from, i));
|
|
66
|
+
return { from, to: addDays(from, count), days };
|
|
67
|
+
}
|
|
68
|
+
/** A view's next span, or its last: a day, a week, or a month (to its last day where the next month is shorter). */
|
|
69
|
+
export function stepFrom(view, anchor, by) {
|
|
70
|
+
if (view === 'day')
|
|
71
|
+
return addDays(anchor, by);
|
|
72
|
+
if (view !== 'month')
|
|
73
|
+
return addDays(anchor, 7 * by);
|
|
74
|
+
const last = new Date(anchor.getFullYear(), anchor.getMonth() + by + 1, 0).getDate();
|
|
75
|
+
return new Date(anchor.getFullYear(), anchor.getMonth() + by, Math.min(anchor.getDate(), last));
|
|
76
|
+
}
|
|
77
|
+
/** The language as Intl reads it: British English's day before month, every language's digits Latin, as Fieldia writes dates. */
|
|
78
|
+
export const intlTag = (locale) => (locale === 'en' ? 'en-GB' : locale);
|
|
79
|
+
export const format = (locale, options) => new Intl.DateTimeFormat(intlTag(locale), { numberingSystem: 'latn', ...options });
|
|
80
|
+
//# sourceMappingURL=dates.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dates.mjs","sourceRoot":"","sources":["../../../../../libs/calendar/src/lib/dates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ListCalendar, ListedRecord, Locale, Page, RecordId, Value, Values } from '@fieldia/core';
|
|
2
|
+
import { type WhenKind } from './dates.mjs';
|
|
3
|
+
/** A record as a calendar draws it. */
|
|
4
|
+
export interface CalendarEvent {
|
|
5
|
+
id: RecordId;
|
|
6
|
+
/** The record as the list gave it: its values, its version, what may be done with it. */
|
|
7
|
+
record: ListedRecord;
|
|
8
|
+
title: string;
|
|
9
|
+
start: Date;
|
|
10
|
+
/** The moment it ends: past its last moment, so a day's event ends at the next midnight. */
|
|
11
|
+
end: Date;
|
|
12
|
+
/** Drawn with the days rather than the hours: a date, or a day and time across whole days. */
|
|
13
|
+
allDay: boolean;
|
|
14
|
+
/** Its person or room, as a key (a link's id, a choice's value), and in words. */
|
|
15
|
+
resource: string | null;
|
|
16
|
+
resourceLabel: string;
|
|
17
|
+
/** What colours it: its colour field's value, as a key. */
|
|
18
|
+
colour: string | null;
|
|
19
|
+
}
|
|
20
|
+
/** A link's id, or a value as it is, as a key. */
|
|
21
|
+
export declare function keyOf(value: Value | undefined): string | null;
|
|
22
|
+
/** The kind of moment a calendar's start keeps: a day, or a day and a time. */
|
|
23
|
+
export declare const kindOf: (page: Page, spec: ListCalendar) => WhenKind;
|
|
24
|
+
/** Each record with a start as an event: an hour long with no end (or an end before its start), a whole day for a date. */
|
|
25
|
+
export declare function eventsOf(records: readonly ListedRecord[], spec: ListCalendar, page: Page, locale: Locale): CalendarEvent[];
|
|
26
|
+
/**
|
|
27
|
+
* Eight colours that read on a light page and a dark one alike, each drawn as
|
|
28
|
+
* a tint of the surface with a bar of its own: the same value, the same one.
|
|
29
|
+
*/
|
|
30
|
+
export declare const PALETTE: string[];
|
|
31
|
+
/** A value's colour: one it names itself (#rrggbb), else one of the palette's, the same for the same value. */
|
|
32
|
+
export declare function colourOf(key: string | null): string | null;
|
|
33
|
+
/** Where an event sits among those it meets: its place, of how many, side by side. */
|
|
34
|
+
export interface Placed {
|
|
35
|
+
column: number;
|
|
36
|
+
columns: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Events that meet, side by side: each crowd (events joined by meeting one
|
|
40
|
+
* another) shares its width, each event in the first place free when it
|
|
41
|
+
* starts; one that meets none takes the whole width.
|
|
42
|
+
*/
|
|
43
|
+
export declare function sideBySide(events: readonly Pick<CalendarEvent, 'id' | 'start' | 'end'>[]): Map<RecordId, Placed>;
|
|
44
|
+
/** A person or room to move to: its value as the field keeps it, and its key. */
|
|
45
|
+
export interface Resource {
|
|
46
|
+
value: Value;
|
|
47
|
+
key: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The values a move writes: its start where it lands (its length kept), or
|
|
51
|
+
* its end alone when stretched (`end`), and its person when it lands in
|
|
52
|
+
* another's column.
|
|
53
|
+
*/
|
|
54
|
+
export declare function moved(event: CalendarEvent, start: Date, spec: ListCalendar, page: Page, resource?: Resource, end?: Date): Values;
|
|
55
|
+
/** Where a move lands, in words: "Wed 14 Oct, 11:15", or the day alone for a whole day's; its year too, when it leaves the record's own. */
|
|
56
|
+
export declare function whereTo(event: Pick<CalendarEvent, 'allDay' | 'start'>, start: Date, locale: Locale): string;
|
|
57
|
+
/** What joins the parts of a sentence as the language writes it: ", ", or in Arabic its own comma, "، ". */
|
|
58
|
+
export declare function comma(locale: Locale): string;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ListCalendar, ListedRecord, Locale, Page, RecordId, Value, Values } from '@fieldia/core';
|
|
2
|
+
import { type WhenKind } from './dates';
|
|
3
|
+
/** A record as a calendar draws it. */
|
|
4
|
+
export interface CalendarEvent {
|
|
5
|
+
id: RecordId;
|
|
6
|
+
/** The record as the list gave it: its values, its version, what may be done with it. */
|
|
7
|
+
record: ListedRecord;
|
|
8
|
+
title: string;
|
|
9
|
+
start: Date;
|
|
10
|
+
/** The moment it ends: past its last moment, so a day's event ends at the next midnight. */
|
|
11
|
+
end: Date;
|
|
12
|
+
/** Drawn with the days rather than the hours: a date, or a day and time across whole days. */
|
|
13
|
+
allDay: boolean;
|
|
14
|
+
/** Its person or room, as a key (a link's id, a choice's value), and in words. */
|
|
15
|
+
resource: string | null;
|
|
16
|
+
resourceLabel: string;
|
|
17
|
+
/** What colours it: its colour field's value, as a key. */
|
|
18
|
+
colour: string | null;
|
|
19
|
+
}
|
|
20
|
+
/** A link's id, or a value as it is, as a key. */
|
|
21
|
+
export declare function keyOf(value: Value | undefined): string | null;
|
|
22
|
+
/** The kind of moment a calendar's start keeps: a day, or a day and a time. */
|
|
23
|
+
export declare const kindOf: (page: Page, spec: ListCalendar) => WhenKind;
|
|
24
|
+
/** Each record with a start as an event: an hour long with no end (or an end before its start), a whole day for a date. */
|
|
25
|
+
export declare function eventsOf(records: readonly ListedRecord[], spec: ListCalendar, page: Page, locale: Locale): CalendarEvent[];
|
|
26
|
+
/**
|
|
27
|
+
* Eight colours that read on a light page and a dark one alike, each drawn as
|
|
28
|
+
* a tint of the surface with a bar of its own: the same value, the same one.
|
|
29
|
+
*/
|
|
30
|
+
export declare const PALETTE: string[];
|
|
31
|
+
/** A value's colour: one it names itself (#rrggbb), else one of the palette's, the same for the same value. */
|
|
32
|
+
export declare function colourOf(key: string | null): string | null;
|
|
33
|
+
/** Where an event sits among those it meets: its place, of how many, side by side. */
|
|
34
|
+
export interface Placed {
|
|
35
|
+
column: number;
|
|
36
|
+
columns: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Events that meet, side by side: each crowd (events joined by meeting one
|
|
40
|
+
* another) shares its width, each event in the first place free when it
|
|
41
|
+
* starts; one that meets none takes the whole width.
|
|
42
|
+
*/
|
|
43
|
+
export declare function sideBySide(events: readonly Pick<CalendarEvent, 'id' | 'start' | 'end'>[]): Map<RecordId, Placed>;
|
|
44
|
+
/** A person or room to move to: its value as the field keeps it, and its key. */
|
|
45
|
+
export interface Resource {
|
|
46
|
+
value: Value;
|
|
47
|
+
key: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The values a move writes: its start where it lands (its length kept), or
|
|
51
|
+
* its end alone when stretched (`end`), and its person when it lands in
|
|
52
|
+
* another's column.
|
|
53
|
+
*/
|
|
54
|
+
export declare function moved(event: CalendarEvent, start: Date, spec: ListCalendar, page: Page, resource?: Resource, end?: Date): Values;
|
|
55
|
+
/** Where a move lands, in words: "Wed 14 Oct, 11:15", or the day alone for a whole day's; its year too, when it leaves the record's own. */
|
|
56
|
+
export declare function whereTo(event: Pick<CalendarEvent, 'allDay' | 'start'>, start: Date, locale: Locale): string;
|
|
57
|
+
/** What joins the parts of a sentence as the language writes it: ", ", or in Arabic its own comma, "، ". */
|
|
58
|
+
export declare function comma(locale: Locale): string;
|