@ifc-lite/export 2.9.4 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/csv-cell.d.ts +101 -0
- package/dist/csv-cell.d.ts.map +1 -0
- package/dist/csv-cell.js +90 -0
- package/dist/csv-cell.js.map +1 -0
- package/dist/demesh-session.d.ts.map +1 -1
- package/dist/demesh-session.js +2 -1
- package/dist/demesh-session.js.map +1 -1
- package/dist/effective-index.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/lod1-generator.d.ts +0 -2
- package/dist/lod1-generator.d.ts.map +1 -1
- package/dist/lod1-generator.js +1 -1
- package/dist/lod1-generator.js.map +1 -1
- package/dist/merged-exporter.d.ts.map +1 -1
- package/dist/merged-exporter.js +23 -41
- package/dist/merged-exporter.js.map +1 -1
- package/dist/reference-collector.js +1 -1
- package/dist/step-attribute-mutations.d.ts +91 -0
- package/dist/step-attribute-mutations.d.ts.map +1 -0
- package/dist/step-attribute-mutations.js +302 -0
- package/dist/step-attribute-mutations.js.map +1 -0
- package/dist/step-collection.d.ts +55 -0
- package/dist/step-collection.d.ts.map +1 -0
- package/dist/step-collection.js +125 -0
- package/dist/step-collection.js.map +1 -0
- package/dist/step-export-contexts.d.ts +63 -0
- package/dist/step-export-contexts.d.ts.map +1 -0
- package/dist/step-export-contexts.js +51 -0
- package/dist/step-export-contexts.js.map +1 -0
- package/dist/step-export-types.d.ts +262 -0
- package/dist/step-export-types.d.ts.map +1 -0
- package/dist/step-export-types.js +22 -0
- package/dist/step-export-types.js.map +1 -0
- package/dist/step-exporter.d.ts +20 -351
- package/dist/step-exporter.d.ts.map +1 -1
- package/dist/step-exporter.js +73 -1257
- package/dist/step-exporter.js.map +1 -1
- package/dist/step-geometry-types.d.ts +19 -0
- package/dist/step-geometry-types.d.ts.map +1 -0
- package/dist/step-geometry-types.js +57 -0
- package/dist/step-geometry-types.js.map +1 -0
- package/dist/step-header.d.ts +43 -0
- package/dist/step-header.d.ts.map +1 -0
- package/dist/step-header.js +70 -0
- package/dist/step-header.js.map +1 -0
- package/dist/step-omission-predicates.d.ts +51 -0
- package/dist/step-omission-predicates.d.ts.map +1 -0
- package/dist/step-omission-predicates.js +268 -0
- package/dist/step-omission-predicates.js.map +1 -0
- package/dist/step-overlay-entities.d.ts +64 -0
- package/dist/step-overlay-entities.d.ts.map +1 -0
- package/dist/step-overlay-entities.js +119 -0
- package/dist/step-overlay-entities.js.map +1 -0
- package/dist/step-pass-builder.d.ts +44 -0
- package/dist/step-pass-builder.d.ts.map +1 -0
- package/dist/step-pass-builder.js +249 -0
- package/dist/step-pass-builder.js.map +1 -0
- package/dist/step-property-sets.d.ts +7 -5
- package/dist/step-property-sets.d.ts.map +1 -1
- package/dist/step-property-sets.js.map +1 -1
- package/dist/step-serialization.d.ts +16 -1
- package/dist/step-serialization.d.ts.map +1 -1
- package/dist/step-serialization.js +50 -3
- package/dist/step-serialization.js.map +1 -1
- package/dist/step-source-iteration.d.ts +95 -0
- package/dist/step-source-iteration.d.ts.map +1 -0
- package/dist/step-source-iteration.js +178 -0
- package/dist/step-source-iteration.js.map +1 -0
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-exporter.js","sourceRoot":"","sources":["../src/step-exporter.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAU/D,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,8BAA8B,GAG/B,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,oCAAoC,GACrC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAyB,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACL,wBAAwB,GAGzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EACL,gCAAgC,EAChC,sCAAsC,EACtC,sCAAsC,EACtC,mBAAmB,GAGpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,4BAA4B,EAAsB,MAAM,0BAA0B,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAA6B,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1H,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAoIzE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,2BAA2B,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAU,EAAE,CAC9E,iBAAiB,SAAS,KAAK,IAAI,0SAA0S,CAAC;AAmGhV;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,SAAS,CAAe;IACxB,YAAY,CAA6B;IACzC,aAAa,CAAS;IACtB,eAAe,CAAyB;IAChD;;;;;;;;OAQG;IACK,YAAY,GAAsB,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAC1F;;;;;OAKG;IACK,mBAAmB,CAA2C;IAEtE,YAAY,SAAuB,EAAE,YAAkC;QACrE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,OAAO,YAAY,EAAE,iBAAiB,KAAK,UAAU;YAC5E,CAAC,CAAC,YAAY,CAAC,iBAAiB,EAAE,GAAG,CAAC;YACtC,CAAC,CAAC,CAAC,CAAC;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAA0B;QAC/B,uEAAuE;QACvE,2EAA2E;QAC3E,oEAAoE;QACpE,4DAA4D;QAC5D,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,SAAS,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEnC,sEAAsE;QACtE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAK,IAAI,CAAC,SAAS,CAAC,aAAkC,IAAI,MAAM,CAAC;QAC9F,MAAM,YAAY,GAAI,IAAI,CAAC,SAAS,CAAC,aAAkC,IAAI,MAAM,CAAC;QAClF,MAAM,UAAU,GAAG,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAEzD,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,sEAAsE;QACtE,0EAA0E;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,wDAAwD;QACxD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,KAAK,KAAK,CAAC;QACxD,0EAA0E;QAC1E,2EAA2E;QAC3E,4EAA4E;QAC5E,kDAAkD;QAClD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,KAAK,KAAK,CAAC;QAE1D,IACE,MAAM,KAAK,QAAQ;YACnB,cAAc;YACd,OAAO,CAAC,eAAe;YACvB,CACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CACpE,EACD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,0HAA0H,CAAC,CAAC;QAC9I,CAAC;QAED,0EAA0E;QAC1E,qEAAqE;QACrE,0EAA0E;QAC1E,4EAA4E;QAC5E,yEAAyE;QACzE,MAAM,YAAY,GAChB,IAAI,CAAC,SAAS,CAAC,YAAY;eACxB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC;gBACtC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC1C,CAAC,CAAC,SAAS,CAAC,CAAC;QAEjB,4EAA4E;QAC5E,4EAA4E;QAC5E,MAAM,WAAW,GACf,CAAC,UAAU,IAAI,YAAY,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;YACjD,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACnC,CAAC,CAAC,MAAM,CAAC;QAEb,wEAAwE;QACxE,mEAAmE;QACnE,0EAA0E;QAC1E,yCAAyC;QACzC,MAAM,IAAI,GAAe;YACvB,QAAQ,EAAE,EAAE;YACZ,cAAc,EAAE,CAAC;YACjB,MAAM;YACN,YAAY;YACZ,UAAU;YACV,YAAY;YACZ,WAAW;YACX,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,cAAc;YAEpD,4EAA4E;YAC5E,2EAA2E;YAC3E,WAAW,EAAE,CAAC,aAAqB,EAAU,EAAE;gBAC7C,yEAAyE;gBACzE,sCAAsC;gBACtC,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,KAAK,SAAS;oBAC/B,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;oBACvB,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;wBACnD,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC;wBAC/B,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;gBACnC,wEAAwE;gBACxE,+DAA+D;gBAC/D,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;oBACtB,WAAW,CAAC,IAAI,CACd,4BAA4B,aAAa,gBAAgB,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAC1F,CAAC;gBACJ,CAAC;gBACD,OAAO,cAAc,CAAC;oBACpB,MAAM,EAAE,WAAW;oBACnB,WAAW;oBACX,mBAAmB,EAAE,YAAY,EAAE,mBAAmB;oBACtD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,MAAM;oBAC9C,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,YAAY,EAAE,YAAY;oBAChE,mEAAmE;oBACnE,yEAAyE;oBACzE,mBAAmB,EAAE,OAAO,CAAC,WAAW,IAAI,UAAU;oBACtD,iBAAiB,EAAE,YAAY,EAAE,iBAAiB;oBAClD,aAAa,EAAE,YAAY,EAAE,aAAa;oBAC1C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,UAAU;oBAC9C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,YAAY;oBAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CAAC,CAAC;YACL,CAAC;YAED,2EAA2E;YAC3E,yEAAyE;YACzE,qDAAqD;YACrD,SAAS,EAAE,uBAAuB,CAChC,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,YAAY,EACjB,cAAc,CACf;YAED,yEAAyE;YACzE,2EAA2E;YAC3E,4EAA4E;YAC5E,0EAA0E;YAC1E,gBAAgB,EAAE,CAAC,QAAgB,EAAW,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC;YAE1F,4EAA4E;YAC5E,wEAAwE;YACxE,wEAAwE;YACxE,2EAA2E;YAC3E,mBAAmB,EAAE,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAEjE,4EAA4E;YAC5E,0EAA0E;YAC1E,0EAA0E;YAC1E,yEAAyE;YACzE,uEAAuE;YACvE,mEAAmE;YACnE,kEAAkE;YAClE,EAAE;YACF,uEAAuE;YACvE,qEAAqE;YACrE,yEAAyE;YACzE,qEAAqE;YACrE,0EAA0E;YAC1E,gBAAgB,EAAE,IAAI;YAEtB,sEAAsE;YACtE,0EAA0E;YAC1E,2EAA2E;YAC3E,0EAA0E;YAC1E,2EAA2E;YAC3E,wEAAwE;YACxE,wEAAwE;YACxE,yEAAyE;YACzE,8DAA8D;YAC9D,sBAAsB;YACtB,gBAAgB,EAAE,IAAI;YAEtB,wEAAwE;YACxE,6EAA6E;YAC7E,2EAA2E;YAC3E,wEAAwE;YACxE,yEAAyE;YACzE,2EAA2E;YAC3E,2EAA2E;YAC3E,0EAA0E;YAC1E,0EAA0E;YAC1E,wEAAwE;YACxE,EAAE;YACF,kEAAkE;YAClE,wEAAwE;YACxE,2EAA2E;YAC3E,0DAA0D;YAC1D,2EAA2E;YAC3E,qEAAqE;YACrE,4EAA4E;YAC5E,0EAA0E;YAC1E,0DAA0D;YAC1D,EAAE;YACF,+DAA+D;YAC/D,EAAE;YACF,iEAAiE;YACjE,wEAAwE;YACxE,2EAA2E;YAC3E,mEAAmE;YACnE,aAAa;YACb,EAAE;YACF,uEAAuE;YACvE,mEAAmE;YACnE,wEAAwE;YACxE,0EAA0E;YAC1E,wEAAwE;YACxE,qCAAqC;YACrC,EAAE;YACF,sEAAsE;YACtE,oEAAoE;YACpE,uEAAuE;YACvE,0EAA0E;YAC1E,gEAAgE;YAChE,2EAA2E;YAC3E,sEAAsE;YACtE,4EAA4E;YAC5E,2DAA2D;YAC3D,uEAAuE;YACvE,8BAA8B,EAAE,CAAC,EAAU,EAAW,EAAE,CACtD,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;mBAC9D,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YAEjC,yEAAyE;YACzE,oEAAoE;YACpE,uEAAuE;YACvE,0DAA0D;YAC1D,uEAAuE;YACvE,4EAA4E;YAC5E,sEAAsE;YACtE,0EAA0E;YAC1E,yEAAyE;YACzE,uEAAuE;YACvE,EAAE;YACF,yEAAyE;YACzE,uEAAuE;YACvE,uEAAuE;YACvE,0EAA0E;YAC1E,uEAAuE;YACvE,yEAAyE;YACzE,yEAAyE;YACzE,0EAA0E;YAC1E,4BAA4B;YAC5B,kBAAkB,EAAE,CAAC,QAAgB,EAAE,UAAkB,EAAW,EAAE,CACpE,eAAe;mBACZ,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC9E,qBAAqB,EAAE,CAAC,QAAgB,EAAW,EAAE;gBACnD,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACzF,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACzC,sEAAsE;gBACtE,sEAAsE;gBACtE,wEAAwE;gBACxE,0BAA0B;gBAC1B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACzD,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC5F,OAAO,IAAI,CAAC;YACd,CAAC;YAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA8BG;YACH,aAAa,EAAE,CAAC,QAAgB,EAAW,EAAE;gBAC3C,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACzF,qEAAqE;gBACrE,0EAA0E;gBAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,CAAC,GAAG;oBAAE,OAAO,KAAK,CAAC;gBACvB,sEAAsE;gBACtE,sEAAsE;gBACtE,IAAI,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9C,mEAAmE;oBACnE,qEAAqE;oBACrE,+DAA+D;oBAC/D,8CAA8C;oBAC9C,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtD,CAAC;gBACD,uEAAuE;gBACvE,uEAAuE;gBACvE,wEAAwE;gBACxE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACjD,iEAAiE;gBACjE,mEAAmE;gBACnE,uEAAuE;gBACvE,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACtD,CAAC;YAED,yEAAyE;YACzE,0EAA0E;YAC1E,4EAA4E;YAC5E,0EAA0E;YAC1E,WAAW;YACX,aAAa,EAAE,wBAAwB,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC;YAEnE;;;;;;eAMG;YACH,eAAe,EAAE;gBACf,SAAS,EAAE,IAAI,GAAG,EAAU;gBAC5B,cAAc,EAAE,IAAI,GAAG,EAAU;aAClC;YAED,uDAAuD;YACvD,gBAAgB,EAAE,IAAI,GAAG,EAAU;YACnC,kBAAkB,EAAE,IAAI,GAAG,EAA+B;YAC1D,eAAe,EAAE,EAAE;YACnB,eAAe,EAAE,EAAE;YACnB,0BAA0B,EAAE,IAAI,GAAG,EAAuB;YAC1D,wBAAwB,EAAE,IAAI,GAAG,EAAoB;YACrD,kBAAkB,EAAE,IAAI,GAAG,EAAU;YACrC,oBAAoB,EAAE,IAAI,GAAG,EAAkB;YAC/C;iFACqE;YACrE,qBAAqB,EAAE,IAAI,GAAG,EAA6B;YAE3D,sDAAsD;YACtD,kBAAkB,EAAE,IAAI,GAAG,EAAU;YACrC,mBAAmB,EAAE,IAAI,GAAG,EAAU;YAEtC,iEAAiE;YACjE,mEAAmE;YACnE,cAAc,EAAE,EAAE;YAClB,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG,mBAAmB,CACjC,IAAI,CAAC,SAAS,EACd,OAAO,CAAC,eAAe,IAAI,IAAI,GAAG,EAAE,EACpC,OAAO,CAAC,iBAAiB,IAAI,IAAI,EACjC,IAAI,CAAC,SAAS,CACf,CAAC;YACF,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YACjD,IAAI,CAAC,gBAAgB,GAAG,0BAA0B,CAChD,OAAO,CAAC,KAAK,EACb,IAAI,CAAC,SAAS,CAAC,MAAM,EACrB,IAAI,CAAC,SAAS,EACd,OAAO,CAAC,gBAAgB,EACxB,IAAI,CAAC,8BAA8B,CACpC,CAAC;YACF,sEAAsE;YACtE,yEAAyE;YACzE,iDAAiD;YACjD,oBAAoB,CAClB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,SAAS,CAAC,MAAM,EACrB,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CACxD,CAAC;QACJ,CAAC;QAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAwDG;QACH,MAAM,yBAAyB,GAAG,GAAY,EAAE;YAC9C,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;YAClD,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAGF,+CAA+C;QAC/C,IAAI,IAAI,CAAC,YAAY,IAAI,cAAc,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YAEnD,oEAAoE;YACpE,uEAAuE;YACvE,0EAA0E;YAC1E,wEAAwE;YACxE,yEAAyE;YACzE,sEAAsE;YACtE,8CAA8C;YAC9C,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,EAAE,CAAC;gBAClF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpC,IAAI,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;oBACnB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAChD,CAAC;gBACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK;oBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;YAED,uEAAuE;YACvE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAuB,CAAC;YAC3D,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAuB,CAAC;YAC5D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,gEAAgE;gBAChE,qEAAqE;gBACrE,mEAAmE;gBACnE,qBAAqB;gBACrB,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB;oBAAE,SAAS;gBAEnD,IAAI,CAAC,QAAQ,CAAC,QAAQ;oBAAE,SAAS;gBAEjC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,KAAK,iBAAiB,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB;uBACxF,QAAQ,CAAC,IAAI,KAAK,iBAAiB,IAAI,QAAQ,CAAC,IAAI,KAAK,qBAAqB,CAAC;gBACpF,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC;gBAE1E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC9C,CAAC;gBACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC3D,CAAC;YAED,uEAAuE;YACvE,sEAAsE;YACtE,iEAAiE;YACjE,gEAAgE;YAChE,8DAA8D;YAC9D,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,gCAAgC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAEnH,oEAAoE;YACpE,uEAAuE;YACvE,0EAA0E;YAC1E,uEAAuE;YACvE,2EAA2E;YAC3E,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC5C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBAC9E,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;YAED,sCAAsC,CACpC,IAAI,EACJ,OAAO,EACP,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,EACjE,IAAI,CAAC,kBAAkB,EAAE,CAC1B,CAAC;YAEF,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACjD,sEAAsE;gBACtE,qEAAqE;gBACrE,uEAAuE;gBACvE,iCAAiC;gBACjC,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAC9C,mEAAmE;gBACnE,mEAAmE;gBACnE,qCAAqC;gBACrC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBACpD,oEAAoE;gBACpE,oEAAoE;gBACpE,kEAAkE;gBAClE,sEAAsE;gBACtE,sEAAsE;gBACtE,kEAAkE;gBAClE,4CAA4C;gBAC5C,EAAE;gBACF,iEAAiE;gBACjE,qEAAqE;gBACrE,wEAAwE;gBACxE,sEAAsE;gBACtE,4DAA4D;gBAC5D,EAAE;gBACF,uEAAuE;gBACvE,oEAAoE;gBACpE,oEAAoE;gBACpE,wEAAwE;gBACxE,sEAAsE;gBACtE,oCAAoC;gBACpC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC7C,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI;oBAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,IAAI,cAAc,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YAC9C,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC;QAC9G,CAAC;QAED,yEAAyE;QACzE,wEAAwE;QACxE,6BAA6B;QAC7B,MAAM,qBAAqB,GAAG,CAC5B,IAAI,CAAC,YAAY;eACd,cAAc;eACd,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,KAAK,UAAU,CAC1D,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,2EAA2E;QAC3E,0CAA0C;QAC1C,IACE,OAAO,CAAC,SAAS;eACd,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;eAChC,qBAAqB,KAAK,CAAC;eAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EACnC,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,qCAAqC,CAAC,CAAC;YAC3G,OAAO;gBACL,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE;oBACL,WAAW,EAAE,CAAC;oBACd,cAAc,EAAE,CAAC;oBACjB,mBAAmB,EAAE,CAAC;oBACtB,QAAQ,EAAE,YAAY,CAAC,UAAU;oBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB;aACF,CAAC;QACJ,CAAC;QAGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA+EG;QACH,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAW,EAAE,CAClD,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4EG;QACH,MAAM,kBAAkB,GACtB,IAAI,CAAC,gBAAgB,KAAK,IAAI;eAC3B,IAAI,CAAC,aAAa;eAClB,eAAe;eACf,yBAAyB,EAAE,CAAC;QAEjC,8EAA8E;QAC9E,uEAAuE;QACvE,8EAA8E;QAC9E,8EAA8E;QAC9E,gFAAgF;QAChF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEvE,+EAA+E;QAC/E,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAErC,yEAAyE;YACzE,qEAAqE;YACrE,gCAAgC;YAChC,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpD,uEAAuE;gBACvE,sEAAsE;gBACtE,sEAAsE;gBACtE,sEAAsE;gBACtE,+DAA+D;gBAC/D,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;oBACzC,SAAS;gBACX,CAAC;gBAED,4CAA4C;gBAC5C,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC5E,SAAS;gBACX,CAAC;gBAED,2DAA2D;gBAC3D,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtF,SAAS;gBACX,CAAC;gBAED,uEAAuE;gBACvE,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3C,SAAS;gBACX,CAAC;gBAED,qEAAqE;gBACrE,qEAAqE;gBACrE,oEAAoE;gBACpE,mEAAmE;gBACnE,kEAAkE;gBAClE,mEAAmE;gBACnE,kDAAkD;gBAClD,qEAAqE;gBACrE,6DAA6D;gBAC7D,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvD,SAAS;gBACX,CAAC;gBAED,4DAA4D;gBAC5D,6DAA6D;gBAC7D,+DAA+D;gBAC/D,qDAAqD;gBACrD,MAAM,UAAU,GAAG,WAAW,CAC5B,MAAM,EACN,SAAS,CAAC,UAAU,EACpB,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAC5C,CAAC;gBACF,qEAAqE;gBACrE,wEAAwE;gBACxE,gEAAgE;gBAChE,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAC3C,SAAS,EACT,UAAU,EACV,SAAS,CAAC,IAAI,EACd,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EACtC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,EAClB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,WAAW,SAAS,eAAe,IAAI,iBAAiB;oBACtD,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,6CAA6C,CACxE,CACJ,CAAC;gBACF,IAAI,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;gBAElC,+DAA+D;gBAC/D,uEAAuE;gBACvE,6DAA6D;gBAC7D,qEAAqE;gBACrE,8DAA8D;gBAC9D,qEAAqE;gBACrE,iEAAiE;gBACjE,oEAAoE;gBACpE,kEAAkE;gBAClE,EAAE;gBACF,oEAAoE;gBACpE,gEAAgE;gBAChE,yEAAyE;gBACzE,qEAAqE;gBACrE,4DAA4D;gBAC5D,qEAAqE;gBACrE,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC/F,IAAI,kBAAkB,IAAI,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChE,MAAM,QAAQ,GAAG,oCAAoC,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;oBAC3F,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;wBACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;wBAC7E,SAAS;oBACX,CAAC;oBACD,cAAc,GAAG,QAAQ,CAAC;gBAC5B,CAAC;gBAED,oEAAoE;gBACpE,qEAAqE;gBACrE,uEAAuE;gBACvE,sEAAsE;gBACtE,sEAAsE;gBACtE,sEAAsE;gBACtE,wEAAwE;gBACxE,wEAAwE;gBACxE,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU;oBAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAChF,IAAI,OAAO,CAAC,OAAO;oBAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACtE,IAAI,OAAO,CAAC,UAAU;oBAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBAC7E,gEAAgE;gBAChE,wEAAwE;gBACxE,8DAA8D;gBAC9D,6BAA6B,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBAE5F,qEAAqE;gBACrE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,SAAS,GAAG,eAAe,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBACtG,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;wBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAChC,CAAC;oBACD,iFAAiF;gBACnF,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,wEAAwE;QACxE,sCAAsC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAEjF,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpC,CAAC;QAED,sEAAsE;QACtE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,8EAA8E;QAC9E,uEAAuE;QACvE,uEAAuE;QACvE,6DAA6D;QAC7D,kCAAkC;QAClC,IACE,IAAI,CAAC,YAAY;eACd,cAAc;eACd,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,KAAK,UAAU,EACzD,CAAC;YACD,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,qBAAqB,KAAK,UAAU;gBAC9E,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;gBACjE,CAAC,CAAC,IAAI,CAAC;YACT,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC;gBACxD,oEAAoE;gBACpE,qEAAqE;gBACrE,oEAAoE;gBACpE,gDAAgD;gBAChD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACjE,MAAM,aAAa,GAAG,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC;gBACtD,qEAAqE;gBACrE,oCAAoC;gBACpC,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;gBAC9C,IAAI,eAAe,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxD,SAAS;gBACX,CAAC;gBACD,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnF,SAAS;gBACX,CAAC;gBACD,+DAA+D;gBAC/D,qEAAqE;gBACrE,6DAA6D;gBAC7D,qDAAqD;gBACrD,IAAI,QAAgB,CAAC;gBACrB,IAAI,OAAO,EAAE,CAAC;oBACZ,yEAAyE;oBACzE,iEAAiE;oBACjE,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CACrC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAC/E,CAAC;oBACF,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAChC,SAAS,EACT,MAAM,CAAC,IAAI,EACX,aAAa,EACb,OAAO,CAAC,cAAc,IAAI,IAAI,EAC9B,IAAI,CAAC,YAAY,CAClB,CAAC;oBACF,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpF,CAAC;gBACD,gEAAgE;gBAChE,sEAAsE;gBACtE,yEAAyE;gBACzE,yEAAyE;gBACzE,0DAA0D;gBAC1D,oEAAoE;gBACpE,iDAAiD;gBACjD,EAAE;gBACF,uEAAuE;gBACvE,kEAAkE;gBAClE,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;gBACjF,MAAM,gBAAgB,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,+BAA+B,KAAK,UAAU;oBAC9F,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,+BAA+B,CAAC,MAAM,CAAC,SAAS,CAAC;oBACrE,CAAC,CAAC,IAAI,CAAC;gBACT,wEAAwE;gBACxE,sEAAsE;gBACtE,oEAAoE;gBACpE,qEAAqE;gBACrE,qEAAqE;gBACrE,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;oBAC1E,CAAC,CAAC,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAC3B,sBAAsB,EACtB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CACzD;oBACH,CAAC,CAAC,gBAAgB,CAAC;gBACrB,IACE,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,CAAC;uBAChD,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,GAAG,CAAC,CAAC,EACxD,CAAC;oBACD,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CACzC,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,mBAAmB,EACnB,IAAI,CAAC,YAAY;oBACjB,kEAAkE;oBAClE,oEAAoE;oBACpE,4DAA4D;oBAC5D,uDAAuD;oBACvD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,WAAW,MAAM,CAAC,SAAS,eAAe,IAAI,iBAAiB;wBAC7D,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,6CAA6C,CACxE,CACJ,CAAC;gBACJ,CAAC;gBACD,IAAI,IAAI,GAAkB,IAAI,MAAM,CAAC,SAAS,IAAI,SAAS,IAAI,QAAQ,IAAI,CAAC;gBAC5E,iEAAiE;gBACjE,gDAAgD;gBAChD,EAAE;gBACF,qEAAqE;gBACrE,iEAAiE;gBACjE,uEAAuE;gBACvE,yEAAyE;gBACzE,uEAAuE;gBACvE,uEAAuE;gBACvE,0DAA0D;gBAC1D,IAAI,kBAAkB,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzD,IAAI,GAAG,oCAAoC,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;oBACvE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;wBAC7E,SAAS;oBACX,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC5F,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;wBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;oBACxB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACzB,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,yEAAyE;QACzE,4EAA4E;QAC5E,4EAA4E;QAC5E,6CAA6C;QAC7C,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QACrF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAErC,4EAA4E;QAC5E,2EAA2E;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzD,OAAO;YACL,OAAO;YACP,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;gBACjC,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,mBAAmB;gBACnB,QAAQ,EAAE,OAAO,CAAC,UAAU;gBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB;SACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,OAA0B;QAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC,yBAAyB;QACzB,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;QAClE,IAAI,UAAU;YAAE,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC;QACnH,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzC,yEAAyE;QACzE,+EAA+E;QAC/E,IAAI,UAAU;YAAE,UAAU,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC;QACpH,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEpC,IAAI,UAAU;YAAE,UAAU,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC;QACnI,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,OAAmD;QACtE,OAAO,IAAI,CAAC,MAAM,CAAC;YACjB,GAAG,OAAO;YACV,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG;IACK,wBAAwB,CAC9B,SAAiB,EACjB,UAAkB,EAClB,UAAkB,EAClB,kBAAmD,EACnD,YAA8B,EAC9B,aAAsB,EACtB,UAAsD;QAEtD,IAAI,IAAI,GAAG,UAAU,CAAC;QACtB,IAAI,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,YAAY,GAAG,aAAa,IAAI,OAAO,IAAI,CAAC,YAAa,CAAC,qBAAqB,KAAK,UAAU;YAClG,CAAC,CAAC,IAAI,CAAC,YAAa,CAAC,qBAAqB,CAAC,SAAS,CAAC;YACrD,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,YAAY,GAAG,IAAI,CAAC;YAC1B,IAAI,GAAG,cAAc,CACnB,IAAI,EACJ,UAAU,EACV,YAAY,CAAC,OAAO,EACpB,YAAY,CAAC,cAAc,IAAI,IAAI,EACnC,YAAY,CACb,CAAC;YACF,OAAO,GAAG,IAAI,KAAK,YAAY,CAAC;YAChC,wEAAwE;YACxE,uEAAuE;YACvE,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACnD,CAAC;QAED,sEAAsE;QACtE,wEAAwE;QACxE,0EAA0E;QAC1E,yDAAyD;QACzD,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC,uBAAuB,CACjC,IAAI,EACJ,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,UAAU,CACX,CAAC;YACF,UAAU,GAAG,IAAI,KAAK,gBAAgB,CAAC;QACzC,CAAC;QAED,MAAM,WAAW,GAAG,aAAa,IAAI,OAAO,IAAI,CAAC,YAAa,CAAC,+BAA+B,KAAK,UAAU;YAC3G,CAAC,CAAC,IAAI,CAAC,YAAa,CAAC,+BAA+B,CAAC,SAAS,CAAC;YAC/D,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,iBAAiB,GAAG,IAAI,CAAC;YAC/B,IAAI,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YACnF,UAAU,GAAG,IAAI,KAAK,iBAAiB,CAAC;QAC1C,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,UAAkB,EAClB,UAAkB,EAClB,kBAAuC,EACvC,aAA+B,EAC/B,UAAsD;QAEtD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,SAAS,GAAG,CAAC,IAAI,UAAU,GAAG,SAAS,EAAE,CAAC;YAC5C,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,4EAA4E;QAC5E,4EAA4E;QAC5E,wEAAwE;QACxE,2EAA2E;QAC3E,6EAA6E;QAC7E,MAAM,SAAS,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,IAAI,GAAG,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5E,sEAAsE;QACtE,2EAA2E;QAC3E,+CAA+C;QAC/C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAE/D,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,kBAAkB,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;gBAAE,SAAS;YAChD,sEAAsE;YACtE,yEAAyE;YACzE,mCAAmC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,EACX,SAAS,CACV,CAAC;YACF,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,mEAAmE;gBACnE,2DAA2D;gBAC3D,UAAU,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC9B,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;YACzB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;IACjG,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACK,uBAAuB,CAC7B,UAAkB,EAClB,KAAa,EACb,KAAa,EACb,YAAoB,EACpB,SAA8B;QAE9B,IAAI,iBAAiB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC/E,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAClF,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,OAAO,KAAK,EAAE;gBAAE,OAAO,GAAG,CAAC;YAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;YACjE,yEAAyE;YACzE,oEAAoE;YACpE,qEAAqE;YACrE,yEAAyE;YACzE,kBAAkB;YAClB,EAAE;YACF,qEAAqE;YACrE,yEAAyE;YACzE,qEAAqE;YACrE,wEAAwE;YACxE,0EAA0E;YAC1E,qCAAqC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,uBAAuB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACK,2BAA2B,CACjC,QAAgB,EAChB,UAAkB,EAClB,kBAA8C,EAC9C,mBAA0D,EAC1D,aAA+B,EAC/B,UAAsD;QAEtD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAC;QAE7D,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,kBAAkB,IAAI,EAAE,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,KAAK,IAAI,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,6BAA6B;QAC7B,EAAE;QACF,uEAAuE;QACvE,2EAA2E;QAC3E,yEAAyE;QACzE,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,IAAI,mBAAmB,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,mBAAmB,EAAE,CAAC;gBAC1C,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;oBACrD,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC;QAED,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC/D,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAC7C,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,EACX,SAAS,CACV,CAAC;YACF,0EAA0E;YAC1E,wEAAwE;YACxE,4DAA4D;YAC5D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,UAAU,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;gBACrD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;QAC3B,CAAC;QAED,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACxD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,mBAAmB,EAAE,CAAC;gBACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;oBAAE,SAAS;gBAChD,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAC5C,UAAU,EACV,KAAK,EACL,KAAK,EACL,IAAI,CAAC,KAAK,CAAC,EACX,SAAS,EACT,aAAa,CACd,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACK,wBAAwB,CAC9B,UAAkB,EAClB,WAA2C,EAC3C,UAAkB,EAClB,aAA+B;QAE/B,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,SAAS,GAAG,CAAC,IAAI,UAAU,GAAG,SAAS;YAAE,OAAO,UAAU,CAAC;QAE/D,MAAM,IAAI,GAAG,iBAAiB,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,iBAAiB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC/D,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;YACzC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;gBAAE,SAAS;YAChD,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YAChH,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,OAAO;YAAE,OAAO,UAAU,CAAC;QAChC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;IACjG,CAAC;IAED;;;;;;;OAOG;IACK,2BAA2B,CACjC,UAAkB,EAClB,KAAa,EACb,KAAwB,EACxB,YAAoB,EACpB,SAA8B,EAC9B,aAA+B;QAE/B,IAAI,aAAa,CAAC,KAAK,CAAC;YAAE,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,4BAA4B,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACzE,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QACzC,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAC3E,OAAO,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,yEAAyE;QACzE,+EAA+E;QAC/E,OAAO,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;OASG;IACK,aAAa,CAAC,SAAkB;QACtC,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YAC7C,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,kBAAkB;QACxB,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;YAC7C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,wBAAwB,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,CAC3H,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,CAAC;SAChI,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,IAAY;QACnC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;YAC5B,mBAAmB;YACnB,cAAc;YACd,qBAAqB;YACrB,qBAAqB;YACrB,mBAAmB;YACnB,wBAAwB;YACxB,2BAA2B;YAC3B,mCAAmC;YACnC,sCAAsC;YACtC,sBAAsB;YACtB,gBAAgB;YAChB,aAAa;YACb,SAAS;YACT,mBAAmB;YACnB,gBAAgB;YAChB,wBAAwB;YACxB,qBAAqB;YACrB,8BAA8B;YAC9B,aAAa;YACb,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,wBAAwB;YACxB,kBAAkB;YAClB,yBAAyB;YACzB,qBAAqB;YACrB,eAAe;YACf,gCAAgC;YAChC,iBAAiB;YACjB,0BAA0B;YAC1B,cAAc;SACf,CAAC,CAAC;QACH,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,iBAAiB,CAAC,OAAoB,EAAE,gBAAoC;QAClF,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAC/B,2EAA2E;QAC3E,4EAA4E;QAC5E,4DAA4D;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC;QACjD,MAAM,YAAY,GAAG;YACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YACvC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;SAC5C,CAAC;QACF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,sEAAsE;YACtE,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;gBAAE,SAAS;YACvC,4EAA4E;YAC5E,mCAAmC;YACnC,IAAI,gBAAgB,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC;gBAAE,SAAS;YAC9E,KAAK,MAAM,MAAM,IAAI,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC3D,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;CAEF;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAuB,EACvB,OAAoC;IAEpC,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC7B,MAAM,EAAE,MAAM;QACd,GAAG,OAAO;KACX,CAAC,CAAC;IACH,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC"}
|
|
1
|
+
{"version":3,"file":"step-exporter.js","sourceRoot":"","sources":["../src/step-exporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The entity types a STEP export treats as geometry.
|
|
3
|
+
*
|
|
4
|
+
* Split out of `StepExporter` for #2475. It was a private method only by
|
|
5
|
+
* habit: it reads nothing off the instance, so every consumer already
|
|
6
|
+
* received it as an injected callback rather than calling it through an
|
|
7
|
+
* exporter. Moving it changes no call site -- the three inside
|
|
8
|
+
* `step-exporter.ts` stop wrapping it in an arrow, and that is all.
|
|
9
|
+
*
|
|
10
|
+
* The set is the definition, not a cache of one. `includegeometry-header-count.test.ts`
|
|
11
|
+
* and `retype-geometry-boundary.test.ts` pin what belongs in it, and
|
|
12
|
+
* `reference-collector.ts` documents the one place a type in this set is
|
|
13
|
+
* still reachable when geometry is excluded.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Check if an entity type is a geometry-related type
|
|
17
|
+
*/
|
|
18
|
+
export declare function isGeometryEntity(type: string): boolean;
|
|
19
|
+
//# sourceMappingURL=step-geometry-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-geometry-types.d.ts","sourceRoot":"","sources":["../src/step-geometry-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAmCtD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* The entity types a STEP export treats as geometry.
|
|
6
|
+
*
|
|
7
|
+
* Split out of `StepExporter` for #2475. It was a private method only by
|
|
8
|
+
* habit: it reads nothing off the instance, so every consumer already
|
|
9
|
+
* received it as an injected callback rather than calling it through an
|
|
10
|
+
* exporter. Moving it changes no call site -- the three inside
|
|
11
|
+
* `step-exporter.ts` stop wrapping it in an arrow, and that is all.
|
|
12
|
+
*
|
|
13
|
+
* The set is the definition, not a cache of one. `includegeometry-header-count.test.ts`
|
|
14
|
+
* and `retype-geometry-boundary.test.ts` pin what belongs in it, and
|
|
15
|
+
* `reference-collector.ts` documents the one place a type in this set is
|
|
16
|
+
* still reachable when geometry is excluded.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Check if an entity type is a geometry-related type
|
|
20
|
+
*/
|
|
21
|
+
export function isGeometryEntity(type) {
|
|
22
|
+
const geometryTypes = new Set([
|
|
23
|
+
'IFCCARTESIANPOINT',
|
|
24
|
+
'IFCDIRECTION',
|
|
25
|
+
'IFCAXIS2PLACEMENT2D',
|
|
26
|
+
'IFCAXIS2PLACEMENT3D',
|
|
27
|
+
'IFCLOCALPLACEMENT',
|
|
28
|
+
'IFCSHAPEREPRESENTATION',
|
|
29
|
+
'IFCPRODUCTDEFINITIONSHAPE',
|
|
30
|
+
'IFCGEOMETRICREPRESENTATIONCONTEXT',
|
|
31
|
+
'IFCGEOMETRICREPRESENTATIONSUBCONTEXT',
|
|
32
|
+
'IFCEXTRUDEDAREASOLID',
|
|
33
|
+
'IFCFACETEDBREP',
|
|
34
|
+
'IFCPOLYLOOP',
|
|
35
|
+
'IFCFACE',
|
|
36
|
+
'IFCFACEOUTERBOUND',
|
|
37
|
+
'IFCCLOSEDSHELL',
|
|
38
|
+
'IFCRECTANGLEPROFILEDEF',
|
|
39
|
+
'IFCCIRCLEPROFILEDEF',
|
|
40
|
+
'IFCARBITRARYCLOSEDPROFILEDEF',
|
|
41
|
+
'IFCPOLYLINE',
|
|
42
|
+
'IFCTRIMMEDCURVE',
|
|
43
|
+
'IFCBSPLINECURVE',
|
|
44
|
+
'IFCBSPLINESURFACE',
|
|
45
|
+
'IFCTRIANGULATEDFACESET',
|
|
46
|
+
'IFCPOLYGONALFACE',
|
|
47
|
+
'IFCINDEXEDPOLYGONALFACE',
|
|
48
|
+
'IFCPOLYGONALFACESET',
|
|
49
|
+
'IFCSTYLEDITEM',
|
|
50
|
+
'IFCPRESENTATIONSTYLEASSIGNMENT',
|
|
51
|
+
'IFCSURFACESTYLE',
|
|
52
|
+
'IFCSURFACESTYLERENDERING',
|
|
53
|
+
'IFCCOLOURRGB',
|
|
54
|
+
]);
|
|
55
|
+
return geometryTypes.has(type);
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=step-geometry-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-geometry-types.js","sourceRoot":"","sources":["../src/step-geometry-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;GAaG;AAEH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;QAC5B,mBAAmB;QACnB,cAAc;QACd,qBAAqB;QACrB,qBAAqB;QACrB,mBAAmB;QACnB,wBAAwB;QACxB,2BAA2B;QAC3B,mCAAmC;QACnC,sCAAsC;QACtC,sBAAsB;QACtB,gBAAgB;QAChB,aAAa;QACb,SAAS;QACT,mBAAmB;QACnB,gBAAgB;QAChB,wBAAwB;QACxB,qBAAqB;QACrB,8BAA8B;QAC9B,aAAa;QACb,iBAAiB;QACjB,iBAAiB;QACjB,mBAAmB;QACnB,wBAAwB;QACxB,kBAAkB;QAClB,yBAAyB;QACzB,qBAAqB;QACrB,eAAe;QACf,gCAAgC;QAChC,iBAAiB;QACjB,0BAA0B;QAC1B,cAAc;KACf,CAAC,CAAC;IACH,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The header/assembly tail of `StepExporter.export()` (#2475, the last seam
|
|
3
|
+
* this issue names): building the FILE_DESCRIPTION/HEADER text and turning
|
|
4
|
+
* the finished `ExportPass.entities` into the returned `StepExportResult`.
|
|
5
|
+
*
|
|
6
|
+
* Both functions here are pure — neither reads `this.dataStore`,
|
|
7
|
+
* `this.mutationView`, nor any of `ExportPass`'s three adversarial-review
|
|
8
|
+
* predicates (`isOmittedFromOutput`, `mayNameOmittedRefs`,
|
|
9
|
+
* `hasAnyUnreadableSourceRef`). Those stay in `step-exporter.ts`: their last
|
|
10
|
+
* reader is `writeOverlayCreatedEntities`, several statements before this
|
|
11
|
+
* tail begins, and nothing here reads them back. That is the same test
|
|
12
|
+
* `step-collection.ts` applied when it left them in place (#2475 collection
|
|
13
|
+
* step) — moving them here would relocate a dependency, not remove one.
|
|
14
|
+
*
|
|
15
|
+
* `buildStepHeader` is `pass.buildHeader`'s body, unchanged: `export()`
|
|
16
|
+
* still builds the closure (it needs to close over the per-call `options`
|
|
17
|
+
* and the two call sites still read `pass.buildHeader`), but the closure
|
|
18
|
+
* now just forwards here instead of carrying the logic itself.
|
|
19
|
+
*
|
|
20
|
+
* `assembleExportResult` is the true final phase from the original
|
|
21
|
+
* decomposition table (settle the ledger, build the header, assemble): it is
|
|
22
|
+
* NOT used by the earlier `deltaOnly`-empty-export early return, which
|
|
23
|
+
* hand-builds its own (shorter) `StepExportResult` because it skips
|
|
24
|
+
* `assembleStepBytes` entirely — see the comment at that call site in
|
|
25
|
+
* `step-exporter.ts`.
|
|
26
|
+
*/
|
|
27
|
+
import type { IfcSourceHeader } from '@ifc-lite/parser';
|
|
28
|
+
import type { ExportPass, StepExportOptions, StepExportResult } from './step-exporter.js';
|
|
29
|
+
/**
|
|
30
|
+
* Build the STEP HEADER section text. `modifications` is read last, at each
|
|
31
|
+
* call site, once the real count is known — see the two callers in
|
|
32
|
+
* `step-exporter.ts` (the `deltaOnly`-empty early return, and
|
|
33
|
+
* {@link assembleExportResult} below) — so the provenance item it appends
|
|
34
|
+
* reflects what this export actually wrote, not a guess made at setup time.
|
|
35
|
+
*/
|
|
36
|
+
export declare function buildStepHeader(options: StepExportOptions, sourceHeader: IfcSourceHeader | undefined, schemaToken: string, modifications: number): string;
|
|
37
|
+
/**
|
|
38
|
+
* Settle the delta ledger, build the header against the settled count, and
|
|
39
|
+
* assemble the finished bytes. The header is built last so its provenance
|
|
40
|
+
* item reflects the real count — see {@link buildStepHeader}.
|
|
41
|
+
*/
|
|
42
|
+
export declare function assembleExportResult(pass: ExportPass): StepExportResult;
|
|
43
|
+
//# sourceMappingURL=step-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-header.d.ts","sourceRoot":"","sources":["../src/step-header.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE1F;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,eAAe,GAAG,SAAS,EACzC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,MAAM,CA+BR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,gBAAgB,CAwBvE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
import { generateHeader } from '@ifc-lite/parser';
|
|
5
|
+
import { assembleStepBytes } from './step-file-assembly.js';
|
|
6
|
+
/**
|
|
7
|
+
* Build the STEP HEADER section text. `modifications` is read last, at each
|
|
8
|
+
* call site, once the real count is known — see the two callers in
|
|
9
|
+
* `step-exporter.ts` (the `deltaOnly`-empty early return, and
|
|
10
|
+
* {@link assembleExportResult} below) — so the provenance item it appends
|
|
11
|
+
* reflects what this export actually wrote, not a guess made at setup time.
|
|
12
|
+
*/
|
|
13
|
+
export function buildStepHeader(options, sourceHeader, schemaToken, modifications) {
|
|
14
|
+
// FILE_DESCRIPTION items: an explicit option wins, else the source items
|
|
15
|
+
// verbatim, else the generic default.
|
|
16
|
+
const description = options.description !== undefined
|
|
17
|
+
? [options.description]
|
|
18
|
+
: sourceHeader && sourceHeader.description.length > 0
|
|
19
|
+
? [...sourceHeader.description]
|
|
20
|
+
: ['Exported from ifc-lite'];
|
|
21
|
+
// Honest provenance: never claim untouched source output. Append (never
|
|
22
|
+
// overwrite) one item when ifc-lite actually changed the file.
|
|
23
|
+
if (modifications > 0) {
|
|
24
|
+
description.push(`Re-exported by ifc-lite, ${modifications} modification${modifications === 1 ? '' : 's'}`);
|
|
25
|
+
}
|
|
26
|
+
return generateHeader({
|
|
27
|
+
schema: schemaToken,
|
|
28
|
+
description,
|
|
29
|
+
implementationLevel: sourceHeader?.implementationLevel,
|
|
30
|
+
author: options.author ?? sourceHeader?.author,
|
|
31
|
+
organization: options.organization ?? sourceHeader?.organization,
|
|
32
|
+
// preprocessor_version = the tool that WROTE this file (ifc-lite);
|
|
33
|
+
// originating_system keeps the source authoring tool so it isn't erased.
|
|
34
|
+
preprocessorVersion: options.application ?? 'ifc-lite',
|
|
35
|
+
originatingSystem: sourceHeader?.originatingSystem,
|
|
36
|
+
authorization: sourceHeader?.authorization,
|
|
37
|
+
application: options.application ?? 'ifc-lite',
|
|
38
|
+
filename: options.filename ?? 'export.ifc',
|
|
39
|
+
timeStamp: options.timeStamp,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Settle the delta ledger, build the header against the settled count, and
|
|
44
|
+
* assemble the finished bytes. The header is built last so its provenance
|
|
45
|
+
* item reflects the real count — see {@link buildStepHeader}.
|
|
46
|
+
*/
|
|
47
|
+
export function assembleExportResult(pass) {
|
|
48
|
+
// Settle the count against what the passes above actually wrote, and say
|
|
49
|
+
// out loud every KIND of edit a delta could not carry, per host. Silence
|
|
50
|
+
// was the other half of #2462: `deltaOnly` skips the source-iteration pass,
|
|
51
|
+
// so an in-place edit to a source entity is not in the file and never was —
|
|
52
|
+
// the header merely used to claim otherwise.
|
|
53
|
+
const { modifiedEntityCount, warnings: deltaWarnings } = pass.modifications.settle();
|
|
54
|
+
pass.warnings.push(...deltaWarnings);
|
|
55
|
+
// Assemble final file as Uint8Array chunks to avoid V8 string length limit.
|
|
56
|
+
// The header is built last so its provenance item reflects the real count.
|
|
57
|
+
const header = pass.buildHeader(pass.newEntityCount + modifiedEntityCount);
|
|
58
|
+
const content = assembleStepBytes(header, pass.entities);
|
|
59
|
+
return {
|
|
60
|
+
content,
|
|
61
|
+
stats: {
|
|
62
|
+
entityCount: pass.entities.length,
|
|
63
|
+
newEntityCount: pass.newEntityCount,
|
|
64
|
+
modifiedEntityCount,
|
|
65
|
+
fileSize: content.byteLength,
|
|
66
|
+
warnings: pass.warnings,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=step-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-header.js","sourceRoot":"","sources":["../src/step-header.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA8B/D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAA0B,EAC1B,YAAyC,EACzC,WAAmB,EACnB,aAAqB;IAErB,yEAAyE;IACzE,sCAAsC;IACtC,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,KAAK,SAAS;QAC/B,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QACvB,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YACnD,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC;YAC/B,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACnC,wEAAwE;IACxE,+DAA+D;IAC/D,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,WAAW,CAAC,IAAI,CACd,4BAA4B,aAAa,gBAAgB,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;QACpB,MAAM,EAAE,WAAW;QACnB,WAAW;QACX,mBAAmB,EAAE,YAAY,EAAE,mBAAmB;QACtD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,MAAM;QAC9C,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,YAAY,EAAE,YAAY;QAChE,mEAAmE;QACnE,yEAAyE;QACzE,mBAAmB,EAAE,OAAO,CAAC,WAAW,IAAI,UAAU;QACtD,iBAAiB,EAAE,YAAY,EAAE,iBAAiB;QAClD,aAAa,EAAE,YAAY,EAAE,aAAa;QAC1C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,UAAU;QAC9C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,YAAY;QAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAgB;IACnD,yEAAyE;IACzE,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,6CAA6C;IAC7C,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IACrF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAErC,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEzD,OAAO;QACL,OAAO;QACP,KAAK,EAAE;YACL,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YACjC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB;YACnB,QAAQ,EAAE,OAAO,CAAC,UAAU;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which ids a STEP export may still NAME, once it has decided which ids it is
|
|
3
|
+
* writing.
|
|
4
|
+
*
|
|
5
|
+
* Split out of `step-exporter.ts` for #2475, verbatim apart from the two
|
|
6
|
+
* changes noted below. It runs immediately after `collectModifications` and
|
|
7
|
+
* before the output passes, and that position is not incidental: everything
|
|
8
|
+
* here reads what the collection phase produced -- `pass.modifiedEntities`,
|
|
9
|
+
* `pass.newGeorefLines`, `pass.allowedEntityIds`, `pass.overlayActive` -- and
|
|
10
|
+
* everything the output passes do with omitted references reads what this
|
|
11
|
+
* returns. Calling it earlier gives answers computed from an unpopulated pass.
|
|
12
|
+
*
|
|
13
|
+
* Why not in `step-collection.ts`: that module produces the values these
|
|
14
|
+
* predicates consume and never reads them back, so putting them there would
|
|
15
|
+
* relocate a dependency rather than remove one. That argument was always about
|
|
16
|
+
* `step-collection.ts` specifically, not about these predicates being welded
|
|
17
|
+
* to `export()`.
|
|
18
|
+
*
|
|
19
|
+
* TWO CHANGES FROM THE ORIGINAL, both forced by it becoming a function:
|
|
20
|
+
*
|
|
21
|
+
* 1. The deltaOnly empty short-circuit used to `return` out of `export()`.
|
|
22
|
+
* A free function cannot, so it returns a tagged `'short-circuit'` result
|
|
23
|
+
* the caller returns instead. That rewrite is safe by measurement, not by
|
|
24
|
+
* argument: disabling the branch entirely leaves the suite green and the
|
|
25
|
+
* emitted bytes and stats identical, because for a model with no edits the
|
|
26
|
+
* ordinary path arrives at the same place. See
|
|
27
|
+
* `delta-empty-shortcircuit.test.ts`, which pins the contract and says
|
|
28
|
+
* outright that it does not pin the branch.
|
|
29
|
+
* 2. `this.mutationView` arrives as a parameter.
|
|
30
|
+
*/
|
|
31
|
+
import type { MutablePropertyView } from '@ifc-lite/mutations';
|
|
32
|
+
import type { ExportPass, StepExportOptions, StepExportResult } from './step-export-types.js';
|
|
33
|
+
/**
|
|
34
|
+
* Either the export is already over, or here are the two things the output
|
|
35
|
+
* passes need from it.
|
|
36
|
+
*
|
|
37
|
+
* A tagged union rather than an optional field, so a caller cannot read
|
|
38
|
+
* `isOmittedFromOutput` off a short-circuited result and get `undefined`
|
|
39
|
+
* without the compiler saying so.
|
|
40
|
+
*/
|
|
41
|
+
export type OmissionEvaluation = {
|
|
42
|
+
readonly kind: 'short-circuit';
|
|
43
|
+
readonly result: StepExportResult;
|
|
44
|
+
} | {
|
|
45
|
+
readonly kind: 'continue';
|
|
46
|
+
readonly isOmittedFromOutput: (id: number) => boolean;
|
|
47
|
+
/** A boolean, not a predicate: the precondition both filter sites gate on. */
|
|
48
|
+
readonly mayNameOmittedRefs: boolean;
|
|
49
|
+
};
|
|
50
|
+
export declare function evaluateOmissionPredicates(pass: ExportPass, options: StepExportOptions, applyMutations: boolean, excludeGeometry: boolean, mutationView: MutablePropertyView | null): OmissionEvaluation;
|
|
51
|
+
//# sourceMappingURL=step-omission-predicates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-omission-predicates.d.ts","sourceRoot":"","sources":["../src/step-omission-predicates.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE9F;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACrE;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACtD,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC,CAAC;AAEN,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,cAAc,EAAE,OAAO,EACvB,eAAe,EAAE,OAAO,EACxB,YAAY,EAAE,mBAAmB,GAAG,IAAI,GACvC,kBAAkB,CA+QpB"}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
export function evaluateOmissionPredicates(pass, options, applyMutations, excludeGeometry, mutationView) {
|
|
5
|
+
/**
|
|
6
|
+
* "Does this model hold a record whose bytes this export cannot read?" —
|
|
7
|
+
* the one disjunct of {@link mayNameOmittedRefs} that is not already a
|
|
8
|
+
* value in hand, so it is a function and called last, behind `||`.
|
|
9
|
+
*
|
|
10
|
+
* Scans the EFFECTIVE index, and that is a requirement rather than an
|
|
11
|
+
* implementation detail: it has to cover the id space
|
|
12
|
+
* `isOmittedFromOutput` answers over, and an unreadable record can live in
|
|
13
|
+
* `deferredEntityIndex` — the secondary index `getCompleteEntityIndex`
|
|
14
|
+
* exists to merge — and nowhere in `entityIndex.byId`. Scanning `byId`,
|
|
15
|
+
* the obvious cheaper source, was measured to leave the gate false and
|
|
16
|
+
* ship the dangling ref; `relationship-filter-gate.test.ts` pins the
|
|
17
|
+
* merged scan behaviourally so that shortcut cannot come back as an
|
|
18
|
+
* optimisation.
|
|
19
|
+
*
|
|
20
|
+
* Reads the ref ITERATION yields — what the source-iteration pass's own
|
|
21
|
+
* skip reads — rather than re-asking `effective.get(id)` per id as
|
|
22
|
+
* `willBeEmitted` does, which on the largest files would cost a binary
|
|
23
|
+
* search and an allocation per entity and defeat the point of the gate.
|
|
24
|
+
* Every index here keeps the two in step by construction:
|
|
25
|
+
* `CompactEntityIndex` serves `get`, `has` and iteration from one pair of
|
|
26
|
+
* `Uint32Array`s, a `Map` trivially agrees, the merged deferred view is
|
|
27
|
+
* `byId.get ?? deferred.get` over `yield* byId; yield* deferred`, and
|
|
28
|
+
* `OverlayIndex` filters both by one tombstone set. An index whose `has`
|
|
29
|
+
* accepted an id its iteration never yields would defeat this — and would
|
|
30
|
+
* equally defeat the source-iteration pass's skip, so that file is broken
|
|
31
|
+
* either way; nothing in the repo builds one.
|
|
32
|
+
*
|
|
33
|
+
* Not short-circuited on `overlayActive`: an overlay-created record carries
|
|
34
|
+
* `(OVERLAY_BYTE_OFFSET, 0)` and so counts as unreadable here, which would
|
|
35
|
+
* make this always answer true once an overlay exists. Harmless —
|
|
36
|
+
* `overlayActive` is an earlier disjunct, so this never runs then — and
|
|
37
|
+
* correct if it ever did.
|
|
38
|
+
*
|
|
39
|
+
* ## Why a standalone pass rather than a value off the index
|
|
40
|
+
*
|
|
41
|
+
* Measured: 12.0 ms of a 470 ms export at 714,485 entities (2.55%), one
|
|
42
|
+
* call, whole index walked because a well-formed model gives it nothing to
|
|
43
|
+
* short-circuit on. The cheaper shape was prototyped and is 13x faster —
|
|
44
|
+
* `min(byteLength)` and `max(byteOffset + byteLength)` over
|
|
45
|
+
* `CompactEntityIndex`'s own `Uint32Array`s answer "is every ref readable
|
|
46
|
+
* within `extent`" exactly and allocation-free in 0.74 ms — and was not
|
|
47
|
+
* taken, because 11 ms does not buy what it costs.
|
|
48
|
+
*
|
|
49
|
+
* It could only stand in FRONT of this loop, never replace it:
|
|
50
|
+
* `EntityByIdIndex` is a structural type and plain `Map`s satisfy it
|
|
51
|
+
* (`synthetic-data-store.ts` builds one), so the walk stays for those. That
|
|
52
|
+
* makes it a second implementation of one predicate across a package
|
|
53
|
+
* boundary — the defect class #2637, #2668 and this gate are all instances
|
|
54
|
+
* of. And storing it at construction is the invariant
|
|
55
|
+
* `source-ref-bounds.ts` exists to delete: `CompactEntityIndex` is built by
|
|
56
|
+
* its builder, by `compactEntityIndexFromColumns` in the transport, and by
|
|
57
|
+
* embedders, so a value one producer writes is a value the next can skip,
|
|
58
|
+
* whereas testing the ref where it is READ cannot be bypassed. If 2.5% ever
|
|
59
|
+
* has to go, the safe shape is a memoized derivation the index computes
|
|
60
|
+
* from its own arrays on demand — not a field set at build time.
|
|
61
|
+
*/
|
|
62
|
+
const hasAnyUnreadableSourceRef = () => {
|
|
63
|
+
for (const [, ref] of pass.effective) {
|
|
64
|
+
if (!pass.isReadableSourceRef(ref))
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
};
|
|
69
|
+
// If delta only, only export modified entities. Overlay-created entities
|
|
70
|
+
// also count — without this, `createEntity()`-only edits would silently
|
|
71
|
+
// drop out of delta exports.
|
|
72
|
+
const overlayNewEntityCount = (mutationView
|
|
73
|
+
&& applyMutations
|
|
74
|
+
&& typeof mutationView.getNewEntities === 'function') ? mutationView.getNewEntities().length : 0;
|
|
75
|
+
// Georef-only deltas (newGeorefLines populated but no entity changes) must
|
|
76
|
+
// still produce a non-empty DATA section.
|
|
77
|
+
if (
|
|
78
|
+
// `=== true`, matching `step-pass-builder.ts`'s two reads of the same
|
|
79
|
+
// option. A plain-JS caller passing `deltaOnly: 1` would otherwise have
|
|
80
|
+
// this module call the export a delta while the predicates there call it
|
|
81
|
+
// a full export -- the same divergence this file argues against for
|
|
82
|
+
// `visibleOnly` a few paragraphs down.
|
|
83
|
+
options.deltaOnly === true
|
|
84
|
+
&& pass.modifiedEntities.size === 0
|
|
85
|
+
&& overlayNewEntityCount === 0
|
|
86
|
+
&& pass.newGeorefLines.length === 0) {
|
|
87
|
+
const emptyContent = new TextEncoder().encode(pass.buildHeader(0) + 'DATA;\nENDSEC;\nEND-ISO-10303-21;\n');
|
|
88
|
+
return {
|
|
89
|
+
kind: 'short-circuit',
|
|
90
|
+
result: {
|
|
91
|
+
content: emptyContent,
|
|
92
|
+
stats: {
|
|
93
|
+
entityCount: 0,
|
|
94
|
+
newEntityCount: 0,
|
|
95
|
+
modifiedEntityCount: 0,
|
|
96
|
+
fileSize: emptyContent.byteLength,
|
|
97
|
+
warnings: pass.warnings,
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* "May a line this export writes name `#id`?" — the single predicate both
|
|
104
|
+
* relationship-line filter sites consume, derived from `willBeEmitted`
|
|
105
|
+
* rather than from a second list kept in step with it by hand.
|
|
106
|
+
*
|
|
107
|
+
* DERIVED, not identical, and the gaps are named below rather than glossed:
|
|
108
|
+
* a scope qualifier for ids the file never had, and `deltaOnly`, where
|
|
109
|
+
* `willBeEmitted` answers `true` for a source record whose line this export
|
|
110
|
+
* does not write at all (the source-iteration pass is skipped wholesale in
|
|
111
|
+
* that mode). Nor does this make the CLOSURE WALK agree with either: the
|
|
112
|
+
* walk keeps `isRefExcludedDuringClosureWalk` and diverges from this
|
|
113
|
+
* predicate for an unreadable source ref — see the note on that predicate,
|
|
114
|
+
* and the "walk and output predicates diverge" test.
|
|
115
|
+
*
|
|
116
|
+
* The hand-kept second list is the bug this replaces. `willBeEmitted` recognises
|
|
117
|
+
* seven reasons a line never lands — outside the closure, hidden product,
|
|
118
|
+
* tombstoned, never existed, unreadable source ref (#2491), geometry
|
|
119
|
+
* excluded by options, and the `deltaOnly` carve-out — while the filter
|
|
120
|
+
* used to consume `(hiddenProductIds !== null && hiddenProductIds.has(id))
|
|
121
|
+
* || effective.isDeleted(id)`, which answered for two: hidden product, and
|
|
122
|
+
* tombstoned. Notably NOT "never existed" — that one is deliberately out of
|
|
123
|
+
* scope for the filter even now, for the reason under the qualifier heading
|
|
124
|
+
* below. The gap was live: on a PLAIN full export, with no `visibleOnly`,
|
|
125
|
+
* no deletions and no overlay, an unreadable ref made the source-iteration
|
|
126
|
+
* pass skip an entity's line while an `IFCREL*` naming it shipped verbatim,
|
|
127
|
+
* dangling.
|
|
128
|
+
*
|
|
129
|
+
* Deriving the filter from `willBeEmitted` is also what fixed the
|
|
130
|
+
* `mayNameExcludedRefs` gate that stands in front of both call sites. That
|
|
131
|
+
* gate used to be a SECOND, shorter enumeration of the same reasons
|
|
132
|
+
* (hidden products exist, or an overlay is active) and answered `false` for
|
|
133
|
+
* exactly the unreadable-ref export above, so the filter never ran at all.
|
|
134
|
+
* It is now {@link mayNameOmittedRefs} — see there for why a gate is kept
|
|
135
|
+
* at all (running the filter on every `IFCREL*` line costs +13% of a
|
|
136
|
+
* 714k-entity export) and for the enumeration it has to cover.
|
|
137
|
+
*
|
|
138
|
+
* ## The one qualifier on top of `willBeEmitted`
|
|
139
|
+
*
|
|
140
|
+
* `willBeEmitted` answers NO for an id neither the file nor the session
|
|
141
|
+
* ever had, which is right for its own job — nothing GENERATED may name an
|
|
142
|
+
* id that does not exist. It is the wrong answer for rewriting a SOURCE
|
|
143
|
+
* line, and the difference is whose bug it is. A `#999` already sitting in
|
|
144
|
+
* a relationship's `OwnerHistory` slot in the input file is a dangling ref
|
|
145
|
+
* this export did not create and cannot repair; `filterHiddenRefsFromRelationshipLine`
|
|
146
|
+
* withholds a whole relationship when an excluded id is in a bare scalar,
|
|
147
|
+
* so treating it as an exclusion would DELETE a visible element's pset over
|
|
148
|
+
* somebody else's corrupt file. That is the harm #2637 was about, and
|
|
149
|
+
* `step-exporter.test.ts` states the position out loud: a pre-existing
|
|
150
|
+
* dangling ref is out of scope and ships as it arrived.
|
|
151
|
+
*
|
|
152
|
+
* So the filter asks the narrower question: is `#id` an entity this model
|
|
153
|
+
* HAS, that this export is nonetheless not writing? `effective.has` is
|
|
154
|
+
* false for a tombstone, hence the explicit `isDeleted` arm — deleting an
|
|
155
|
+
* entity IS this session's doing and must be filtered.
|
|
156
|
+
*
|
|
157
|
+
* This is a scope qualifier, not a second enumeration of omission reasons:
|
|
158
|
+
* an eighth reason added to `willBeEmitted` still reaches the filter with
|
|
159
|
+
* no edit here.
|
|
160
|
+
*
|
|
161
|
+
* ## What the filter can and cannot reach
|
|
162
|
+
*
|
|
163
|
+
* Only `IFCREL*` lines. A `#N` named from a product's `Representation` or
|
|
164
|
+
* `ObjectPlacement` slot is not touched, so `includeGeometry:false` — a
|
|
165
|
+
* reason `willBeEmitted` does answer for — produces the same dangling refs
|
|
166
|
+
* with this predicate as without it. Measured on `tests/models/AB22.ifc`:
|
|
167
|
+
* 80 dangling refs before and after, output byte-identical but for the
|
|
168
|
+
* header timestamp.
|
|
169
|
+
*
|
|
170
|
+
* ## Withholding is not free
|
|
171
|
+
*
|
|
172
|
+
* When the omitted id sits in a single-valued slot, or is a set's only
|
|
173
|
+
* member, `filterHiddenRefsFromRelationshipLine` withholds the WHOLE
|
|
174
|
+
* relationship — so an entity that relationship also named loses the
|
|
175
|
+
* association, on a plain full export with no options set. That is why the
|
|
176
|
+
* call sites push {@link relationshipWithheldWarning}.
|
|
177
|
+
*
|
|
178
|
+
* See `unreadable-ref-dangling.test.ts` for the reproduction. #2637 is the
|
|
179
|
+
* prior instance of this class, which took seven rounds because the same
|
|
180
|
+
* decision was recomputed per call site.
|
|
181
|
+
*/
|
|
182
|
+
const isOmittedFromOutput = (id) => (pass.effective.has(id) || pass.effective.isDeleted(id)) && !pass.willBeEmitted(id);
|
|
183
|
+
/**
|
|
184
|
+
* "Can ANY id be omitted from this export at all?" — the precondition both
|
|
185
|
+
* `IFCREL*` filter sites are gated on, so the common export pays nothing.
|
|
186
|
+
*
|
|
187
|
+
* ## Why a gate exists
|
|
188
|
+
*
|
|
189
|
+
* Running `filterHiddenRefsFromRelationshipLine` on every `IFCREL*` line
|
|
190
|
+
* costs a re-parse of that line's attribute list, and a large model is
|
|
191
|
+
* mostly relationships. Measured on `tests/models/ara3d/schependomlaan.ifc`
|
|
192
|
+
* (714,485 entities, 21 interleaved reps in randomised order): 463 ms
|
|
193
|
+
* median with this gate false versus 523 ms filtering unconditionally,
|
|
194
|
+
* **+13%**. That is a real price paid on every export to protect a state
|
|
195
|
+
* most exports are not in. With the gate, the same export is 475 ms, +2.7%,
|
|
196
|
+
* all of it the fourth disjunct's one pass.
|
|
197
|
+
*
|
|
198
|
+
* ## Why THIS gate, and not the one that shipped before
|
|
199
|
+
*
|
|
200
|
+
* The gate this replaces was a second, hand-kept enumeration of "reasons an
|
|
201
|
+
* entity might be excluded", and it went stale exactly as such lists do: it
|
|
202
|
+
* named hidden products and the overlay and knew nothing about an unreadable
|
|
203
|
+
* source ref, so the bug this branch fixes reached the output with the
|
|
204
|
+
* filter switched off. A cheap gate is safe only as an OVER-APPROXIMATION of
|
|
205
|
+
* `isOmittedFromOutput` that can be checked against `willBeEmitted` branch
|
|
206
|
+
* by branch — so every branch is listed, with the disjunct that covers it:
|
|
207
|
+
*
|
|
208
|
+
* | `willBeEmitted` answers NO at | covered by |
|
|
209
|
+
* |----------------------------------------------|-------------------------------|
|
|
210
|
+
* | `allowedEntityIds !== null && !has(id)` | `allowedEntityIds !== null` |
|
|
211
|
+
* | `!ref`, because the overlay tombstoned `id` | `overlayActive` |
|
|
212
|
+
* | overlay-created, geometry excluded | `overlayActive` |
|
|
213
|
+
* | `!isReadableSourceRef(ref)` | `hasAnyUnreadableSourceRef()` |
|
|
214
|
+
* | source-backed, geometry excluded | `excludeGeometry` |
|
|
215
|
+
* | `!ref`, because `id` never existed | out of scope (below) |
|
|
216
|
+
* | `!ref` while `has(id)` is TRUE | nothing (below) |
|
|
217
|
+
*
|
|
218
|
+
* "Never existed" needs no disjunct: `isOmittedFromOutput`'s own
|
|
219
|
+
* `(has || isDeleted)` qualifier already drops it, deliberately — a
|
|
220
|
+
* pre-existing dangling ref in somebody else's file is not this export's to
|
|
221
|
+
* repair (see that predicate's note).
|
|
222
|
+
*
|
|
223
|
+
* The last row is a real hole and is stated rather than hidden: an index
|
|
224
|
+
* that answers `has(id)` for an id its iteration never yields makes
|
|
225
|
+
* `isOmittedFromOutput` true with no disjunct true. It needs an index whose
|
|
226
|
+
* `has`, `get` and iteration disagree, which nothing in the repo builds and
|
|
227
|
+
* which would already break the source-iteration pass's own skip — see
|
|
228
|
+
* {@link hasAnyUnreadableSourceRef}, which rests on the same agreement.
|
|
229
|
+
*
|
|
230
|
+
* Three of the four disjuncts are reads of values this export already
|
|
231
|
+
* computed. Only the fourth costs anything, and it short-circuits: `||`
|
|
232
|
+
* evaluates it solely when the other three are false, i.e. only for an
|
|
233
|
+
* export that has nothing else to filter for.
|
|
234
|
+
*
|
|
235
|
+
* ## The two spellings that are deliberately NOT the obvious ones
|
|
236
|
+
*
|
|
237
|
+
* `allowedEntityIds !== null`, not `options.visibleOnly === true`. Not the
|
|
238
|
+
* same test: the closure is built under `if (options.visibleOnly &&
|
|
239
|
+
* ctx.dataStore.source)` in `step-collection.ts` — quoted rather than cited
|
|
240
|
+
* by line, because the line moved by three in the very commit that added
|
|
241
|
+
* this reference — which is TRUTHY rather than `=== true`, and which
|
|
242
|
+
* is a SECOND read of the caller's object. A plain-JS caller of this
|
|
243
|
+
* published package passing `visibleOnly: 1` — or a `get visibleOnly()` that
|
|
244
|
+
* answers `true` once — built the closure while the gate read false and
|
|
245
|
+
* shipped a relationship naming an entity outside it. Executed, not
|
|
246
|
+
* reasoned: 192 of an 800-case sweep over `visibleOnly`/`hidden`/`isolated`
|
|
247
|
+
* combinations shipped a dangling ref against the `=== true` spelling, 0
|
|
248
|
+
* against this one. Reading the state the walk PRODUCED cannot disagree with
|
|
249
|
+
* the walk, whatever `options` says afterwards.
|
|
250
|
+
*
|
|
251
|
+
* It is also wider than the `hiddenProductIds.size > 0` the old gate used: a
|
|
252
|
+
* closure exists whenever `visibleOnly` was requested, even with nothing
|
|
253
|
+
* hidden, and can exclude an entity the roots simply never reach. No fixture
|
|
254
|
+
* has produced that case, so the widening is defensive — but a gate that is
|
|
255
|
+
* true too often costs speed on a rare path, while one that is false too
|
|
256
|
+
* rarely ships a corrupt file, and this one costs nothing.
|
|
257
|
+
*
|
|
258
|
+
* `overlayActive` and `excludeGeometry` are the SAME consts the effective
|
|
259
|
+
* index and `isGeometryExcluded` are built from — one read of `options` per
|
|
260
|
+
* question, shared — so those two cannot disagree with the predicate either.
|
|
261
|
+
*/
|
|
262
|
+
const mayNameOmittedRefs = pass.allowedEntityIds !== null
|
|
263
|
+
|| pass.overlayActive
|
|
264
|
+
|| excludeGeometry
|
|
265
|
+
|| hasAnyUnreadableSourceRef();
|
|
266
|
+
return { kind: 'continue', isOmittedFromOutput, mayNameOmittedRefs };
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=step-omission-predicates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-omission-predicates.js","sourceRoot":"","sources":["../src/step-omission-predicates.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAqD/D,MAAM,UAAU,0BAA0B,CACxC,IAAgB,EAChB,OAA0B,EAC1B,cAAuB,EACvB,eAAwB,EACxB,YAAwC;IAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwDG;IACH,MAAM,yBAAyB,GAAG,GAAY,EAAE;QAC9C,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QAClD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,yEAAyE;IACzE,wEAAwE;IACxE,6BAA6B;IAC7B,MAAM,qBAAqB,GAAG,CAC5B,YAAY;WACT,cAAc;WACd,OAAO,YAAY,CAAC,cAAc,KAAK,UAAU,CACrD,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,2EAA2E;IAC3E,0CAA0C;IAC1C;IACE,sEAAsE;IACtE,wEAAwE;IACxE,yEAAyE;IACzE,oEAAoE;IACpE,uCAAuC;IACvC,OAAO,CAAC,SAAS,KAAK,IAAI;WACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;WAChC,qBAAqB,KAAK,CAAC;WAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EACnC,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,qCAAqC,CAAC,CAAC;QAC3G,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE;gBACN,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE;oBACL,WAAW,EAAE,CAAC;oBACd,cAAc,EAAE,CAAC;oBACjB,mBAAmB,EAAE,CAAC;oBACtB,QAAQ,EAAE,YAAY,CAAC,UAAU;oBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB;aACF;SACF,CAAC;IACJ,CAAC;IAGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACH,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAW,EAAE,CAClD,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8EG;IACH,MAAM,kBAAkB,GACtB,IAAI,CAAC,gBAAgB,KAAK,IAAI;WAC3B,IAAI,CAAC,aAAa;WAClB,eAAe;WACf,yBAAyB,EAAE,CAAC;IACjC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;AACvE,CAAC"}
|