Skip to content

Commit

Permalink
Refactor binder to use switch statements and functions.
Browse files Browse the repository at this point in the history
Signed-off-by: Titian Cernicova-Dragomir <tcernicovad1@bloomberg.net>
  • Loading branch information
dragomirtitian committed Dec 2, 2023
1 parent 370cfe9 commit 3da49c4
Show file tree
Hide file tree
Showing 12 changed files with 1,591 additions and 256 deletions.
558 changes: 302 additions & 256 deletions src/compiler/transformers/declarations/emitBinder.ts

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// [[Reason: Sourcemap is more detailed]] ////

//// [tests/cases/compiler/isolatedDeclarationBinderSignatures.ts] ////

===================================================================
--- TSC declarations
+++ DTE declarations
@@ -1,6 +1,6 @@

//// [isolatedDeclarationBinderSignatures.d.ts.map]
-{"version":3,"file":"isolatedDeclarationBinderSignatures.d.ts","sourceRoot":"","sources":["isolatedDeclarationBinderSignatures.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AAE3B,eAAO,MAAM,EAAE,WAAU,CAExB,CAAA;AACD,eAAO,MAAM,GAAG,SAAW,CAAC,KAAG,IAE9B,CAAA;AAGD,yBAAc,EAAE,CAAC;IACb,KAAY,CAAC,CAAC,CAAC,IAAK,CAAC,SAAS,CAAC,GAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9C,SAAgB,CAAC,IAAI,OAAO,CAAC,CAE5B;CACJ;AAED,yBAAc,EAAE,CAAC;IACb,UAAiB,CAAC;QACd,KAAK,EAAE,CAAC,CAAA;QACR,CAAC,IAAI,CAAC,CAAC;QACP,IAAI,CAAC,IAAI,CAAC,CAAA;QACV,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;KACnB;CACJ;AAED,yBAAc,EAAE,CAAC;IACb,UAAiB,CAAC;QACd,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;KACjB;CACJ;AACD,yBAAc,EAAE,CAAC;IACb,MAAa,CAAC;QAAG,KAAK,EAAE,CAAC,CAAA;KAAE;IAC3B,SAAgB,EAAE,IAAI,CAAC,CAEtB;CACJ;AACD,yBAAc,EAAE,CAAC;IACb,UAAc,CAAC,CAAC;QACZ,SAAgB,EAAE,IAAI,OAAO,CAAC,CAE7B;KACJ;CACJ;AAGD,eAAO,MAAM,GAAG,SAAmB,CAAC,KAAG,IAEtC,CAAA;AAED,eAAO,MAAM,GAAG,WAAmB;IAAE,MAAM,CAAC,CAAA;CAE3C,CAAA;AAED,MAAM,WAAW,CAAC,CAAC,CAAC;IAChB,IAAI,CAAC,CAAC;IACN,QAAQ,CAAC,CAAA;IACT,CAAC,IAAI,CAAC,CAAC;CACV;AAED,MAAM,WAAW,EAAE,CAAC,CAAC;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CACjB;AAED,MAAM,WAAW,EAAE;IACf,CAAC,CAAC,KAAK,CAAC,CAAC;IACT,KAAK,CAAC,KAAK,CAAC,CAAA;IACZ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CACb;AAGD,MAAM,WAAW,CAAC,CAAC,CAAC;IAChB,IAAI,CAAC,CAAC;IACN,QAAQ,CAAC,CAAA;IACT,CAAC,IAAI,CAAC,CAAC;CACV;AAED,qBAAa,CAAC,CAAC,CAAC;gBACA,CAAC,EAAE,CAAC;IAGhB,CAAC,IAAI,CAAC;IAGN,IAAI,CAAC,IAAI,CAAC,CAAiB;IAC3B,IAAI,CAAC,CAAC,KAAK,EADF,CACE,EAAK;CACnB;AAED,qBAAa,EAAE;IACX,CAAC,CAAC,CAAC,KAAK,CAAC;CAGZ"}
+{"version":3,"file":"isolatedDeclarationBinderSignatures.d.ts","sourceRoot":"","sources":["isolatedDeclarationBinderSignatures.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AAE3B,eAAO,MAAM,EAAE,GAAI,CAAC,OAAK,CAExB,CAAA;AACD,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EAAG,CAAC,KAAG,IAE9B,CAAA;AAGD,yBAAc,EAAE,CAAC;IACb,KAAY,CAAC,CAAC,CAAC,IAAK,CAAC,SAAS,CAAC,GAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9C,SAAgB,CAAC,IAAI,OAAO,CAAC,CAE5B;CACJ;AAED,yBAAc,EAAE,CAAC;IACb,UAAiB,CAAC;QACd,KAAK,EAAE,CAAC,CAAA;QACR,CAAC,IAAI,CAAC,CAAC;QACP,IAAI,CAAC,IAAI,CAAC,CAAA;QACV,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;KACnB;CACJ;AAED,yBAAc,EAAE,CAAC;IACb,UAAiB,CAAC;QACd,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;KACjB;CACJ;AACD,yBAAc,EAAE,CAAC;IACb,MAAa,CAAC;QAAG,KAAK,EAAE,CAAC,CAAA;KAAE;IAC3B,SAAgB,EAAE,IAAI,CAAC,CAEtB;CACJ;AACD,yBAAc,EAAE,CAAC;IACb,UAAc,CAAC,CAAC;QACZ,SAAgB,EAAE,IAAI,OAAO,CAAC,CAE7B;KACJ;CACJ;AAGD,eAAO,MAAM,GAAG,GAAa,CAAC,EAAE,CAAC,EAAE,CAAC,KAAG,IAEtC,CAAA;AAED,eAAO,MAAM,GAAG,GAAa,CAAC,OAAK;IAAE,IAAI,EAAE,CAAC,CAAA;CAE3C,CAAA;AAED,MAAM,WAAW,CAAC,CAAC,CAAC;IAChB,IAAI,CAAC,CAAC;IACN,QAAQ,CAAC,CAAA;IACT,CAAC,IAAI,CAAC,CAAC;CACV;AAED,MAAM,WAAW,EAAE,CAAC,CAAC;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CACjB;AAED,MAAM,WAAW,EAAE;IACf,CAAC,CAAC,KAAK,CAAC,CAAC;IACT,KAAK,CAAC,KAAK,CAAC,CAAA;IACZ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CACb;AAGD,MAAM,WAAW,CAAC,CAAC,CAAC;IAChB,IAAI,CAAC,CAAC;IACN,QAAQ,CAAC,CAAA;IACT,CAAC,IAAI,CAAC,CAAC;CACV;AAED,qBAAa,CAAC,CAAC,CAAC;gBACA,CAAC,EAAE,CAAC;IAGhB,CAAC,IAAI,CAAC;IAGN,IAAI,CAAC,IAAI,CAAC,CAAiB;IAC3B,IAAI,CAAC,CAAC,KAAK,EADF,CACE,EAAK;CACnB;AAED,qBAAa,EAAE;IACX,CAAC,CAAC,CAAC,KAAK,CAAC;CAGZ"}

-//// https://sokra.github.io/source-map-visualization#base64,ZXhwb3J0IHR5cGUgRiA9IDxOPigpID0+IE47DQpleHBvcnQgZGVjbGFyZSBjb25zdCBmbjogPE4+KCkgPT4gTjsNCmV4cG9ydCBkZWNsYXJlIGNvbnN0IGZuMjogPE4+KHA6IE4pID0+IHZvaWQ7DQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgTTEgew0KICAgIHR5cGUgTjxUPiA9IFQgZXh0ZW5kcyBUID8gTjxUPiA6IG5ldmVyOw0KICAgIGZ1bmN0aW9uIE4oKTogdHlwZW9mIE47DQp9DQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgTTIgew0KICAgIGludGVyZmFjZSBOIHsNCiAgICAgICAgY2hpbGQ6IE47DQogICAgICAgIG0oKTogTjsNCiAgICAgICAgZ2V0IFgoKTogTjsNCiAgICAgICAgc2V0IFgodmFsdWU6IE4pOw0KICAgIH0NCn0NCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBNMyB7DQogICAgaW50ZXJmYWNlIE4gew0KICAgICAgICBbbjogc3RyaW5nXTogTjsNCiAgICB9DQp9DQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgTTMgew0KICAgIGNsYXNzIE4gew0KICAgICAgICBjaGlsZDogTjsNCiAgICB9DQogICAgZnVuY3Rpb24gZm4oKTogTjsNCn0NCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBNNCB7DQogICAgbmFtZXNwYWNlIE4gew0KICAgICAgICBmdW5jdGlvbiBmbigpOiB0eXBlb2YgTjsNCiAgICB9DQp9DQpleHBvcnQgZGVjbGFyZSBjb25zdCBmbjM6IDxOPihwOiBOKSA9PiB2b2lkOw0KZXhwb3J0IGRlY2xhcmUgY29uc3QgZm40OiA8Tj4oKSA9PiB7DQogICAgbmFtZTogTjsNCn07DQpleHBvcnQgaW50ZXJmYWNlIEk8Tj4gew0KICAgICgpOiBOOw0KICAgIG5ldyAoKTogTjsNCiAgICBtKCk6IE47DQp9DQpleHBvcnQgaW50ZXJmYWNlIEkyPE4+IHsNCiAgICBbbjogc3RyaW5nXTogTjsNCn0NCmV4cG9ydCBpbnRlcmZhY2UgSTEgew0KICAgIDxOPigpOiBOOw0KICAgIG5ldyA8Tj4oKTogTjsNCiAgICBtPE4+KCk6IE47DQp9DQpleHBvcnQgaW50ZXJmYWNlIEk8Tj4gew0KICAgICgpOiBOOw0KICAgIG5ldyAoKTogTjsNCiAgICBtKCk6IE47DQp9DQpleHBvcnQgZGVjbGFyZSBjbGFzcyBDPE4+IHsNCiAgICBjb25zdHJ1Y3RvcihuOiBOKTsNCiAgICBtKCk6IE47DQogICAgZ2V0IE4oKTogTjsNCiAgICBzZXQgTih2YWx1ZTogTik7DQp9DQpleHBvcnQgZGVjbGFyZSBjbGFzcyBDMiB7DQogICAgbTxOPigpOiBOOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXNvbGF0ZWREZWNsYXJhdGlvbkJpbmRlclNpZ25hdHVyZXMuZC50cy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvbGF0ZWREZWNsYXJhdGlvbkJpbmRlclNpZ25hdHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlzb2xhdGVkRGVjbGFyYXRpb25CaW5kZXJTaWduYXR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRTNCLGVBQU8sTUFBTSxFQUFFLFdBQVUsQ0FFeEIsQ0FBQTtBQUNELGVBQU8sTUFBTSxHQUFHLFNBQVcsQ0FBQyxLQUFHLElBRTlCLENBQUE7QUFHRCx5QkFBYyxFQUFFLENBQUM7SUFDYixLQUFZLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQyxTQUFTLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzlDLFNBQWdCLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FFNUI7Q0FDSjtBQUVELHlCQUFjLEVBQUUsQ0FBQztJQUNiLFVBQWlCLENBQUM7UUFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBQ1IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNWLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7S0FDbkI7Q0FDSjtBQUVELHlCQUFjLEVBQUUsQ0FBQztJQUNiLFVBQWlCLENBQUM7UUFDZCxDQUFDLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFBO0tBQ2pCO0NBQ0o7QUFDRCx5QkFBYyxFQUFFLENBQUM7SUFDYixNQUFhLENBQUM7UUFBRyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0tBQUU7SUFDM0IsU0FBZ0IsRUFBRSxJQUFJLENBQUMsQ0FFdEI7Q0FDSjtBQUNELHlCQUFjLEVBQUUsQ0FBQztJQUNiLFVBQWMsQ0FBQyxDQUFDO1FBQ1osU0FBZ0IsRUFBRSxJQUFJLE9BQU8sQ0FBQyxDQUU3QjtLQUNKO0NBQ0o7QUFHRCxlQUFPLE1BQU0sR0FBRyxTQUFtQixDQUFDLEtBQUcsSUFFdEMsQ0FBQTtBQUVELGVBQU8sTUFBTSxHQUFHLFdBQW1CO0lBQUUsTUFBTSxDQUFDLENBQUE7Q0FFM0MsQ0FBQTtBQUVELE1BQU0sV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNoQixJQUFJLENBQUMsQ0FBQztJQUNOLFFBQVEsQ0FBQyxDQUFBO0lBQ1QsQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUNWO0FBRUQsTUFBTSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUE7Q0FDakI7QUFFRCxNQUFNLFdBQVcsRUFBRTtJQUNmLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNULEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNaLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0NBQ2I7QUFHRCxNQUFNLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDaEIsSUFBSSxDQUFDLENBQUM7SUFDTixRQUFRLENBQUMsQ0FBQTtJQUNULENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDVjtBQUVELHFCQUFhLENBQUMsQ0FBQyxDQUFDO2dCQUNBLENBQUMsRUFBRSxDQUFDO0lBR2hCLENBQUMsSUFBSSxDQUFDO0lBR04sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFpQjtJQUMzQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBREYsQ0FDRSxFQUFLO0NBQ25CO0FBRUQscUJBQWEsRUFBRTtJQUNYLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztDQUdaIn0=,dHlwZSBOID0gIm5vdCB1c2VkIjsKY29uc3QgTiA9ICJub3QgdXNlZCIKZXhwb3J0IHR5cGUgRiA9IDxOPigpID0+IE47CgpleHBvcnQgY29uc3QgZm4gPSA8Tj4oKTogTiAgPT4gewogICAgcmV0dXJuIG51bGwhOwp9CmV4cG9ydCBjb25zdCBmbjIgPSA8Tj4ocDogIE4pOiB2b2lkID0+IHsKICAgIHJldHVybiBudWxsIQp9CgoKZXhwb3J0IG1vZHVsZSBNMSB7CiAgICBleHBvcnQgdHlwZSBOPFQ+ID0gIFQgZXh0ZW5kcyBUPyBOPFQ+IDogbmV2ZXI7CiAgICBleHBvcnQgZnVuY3Rpb24gTigpOiB0eXBlb2YgTiB7CiAgICAgICAgcmV0dXJuIE4KICAgIH0KfQoKZXhwb3J0IG1vZHVsZSBNMiB7CiAgICBleHBvcnQgaW50ZXJmYWNlIE4geyAKICAgICAgICBjaGlsZDogTgogICAgICAgIG0oKTogTjsKICAgICAgICBnZXQgWCgpOiBOCiAgICAgICAgc2V0IFgodmFsdWU6IE4pOwogICAgfQp9CgpleHBvcnQgbW9kdWxlIE0zIHsKICAgIGV4cG9ydCBpbnRlcmZhY2UgTiB7IAogICAgICAgIFtuOiBzdHJpbmddOiBOCiAgICB9Cn0KZXhwb3J0IG1vZHVsZSBNMyB7CiAgICBleHBvcnQgY2xhc3MgTiB7IGNoaWxkOiBOIH0KICAgIGV4cG9ydCBmdW5jdGlvbiBmbigpOiBOIHsKICAgICAgICByZXR1cm4gbmV3IE4oKTsKICAgIH0KfQpleHBvcnQgbW9kdWxlIE00IHsKICAgIGV4cG9ydCBtb2R1bGUgTiB7CiAgICAgICAgZXhwb3J0IGZ1bmN0aW9uIGZuKCk6IHR5cGVvZiBOIHsKICAgICAgICAgICAgcmV0dXJuIE47CiAgICAgICAgfQogICAgfQp9CgoKZXhwb3J0IGNvbnN0IGZuMyA9IGZ1bmN0aW9uIDxOPihwOiBOKTogdm9pZCB7CiAgICAKfQoKZXhwb3J0IGNvbnN0IGZuNCA9IGZ1bmN0aW9uIDxOPigpOiB7IG5hbWU6IE4gfSB7CiAgICByZXR1cm4gbnVsbCE7Cn0KCmV4cG9ydCBpbnRlcmZhY2UgSTxOPiB7CiAgICAoKTogTjsKICAgIG5ldyAoKTogTgogICAgbSgpOiBOOwp9CgpleHBvcnQgaW50ZXJmYWNlIEkyPE4+IHsKICAgIFtuOiBzdHJpbmddOiBOCn0KCmV4cG9ydCBpbnRlcmZhY2UgSTEgewogICAgPE4+KCk6IE47CiAgICBuZXcgPE4+KCk6IE4KICAgIG08Tj4oKTogTjsKfQoKCmV4cG9ydCBpbnRlcmZhY2UgSTxOPiB7CiAgICAoKTogTjsKICAgIG5ldyAoKTogTgogICAgbSgpOiBOOwp9CgpleHBvcnQgY2xhc3MgQzxOPiB7CiAgICBjb25zdHJ1Y3RvcihuOiBOKSB7CgogICAgfQogICAgbSgpOiBOIHsKICAgICAgICByZXR1cm4gbnVsbCE7CiAgICB9CiAgICBnZXQgTigpOiBOIHsgcmV0dXJuIG51bGwhIH0KICAgIHNldCBOKHZhbHVlKSB7IH0KfQoKZXhwb3J0IGNsYXNzIEMyIHsKICAgIG08Tj4oKTogTiB7CiAgICAgICAgcmV0dXJuIG51bGwhOwogICAgfQp9Cgo=
+//// https://sokra.github.io/source-map-visualization#base64,ZXhwb3J0IHR5cGUgRiA9IDxOPigpID0+IE47DQpleHBvcnQgZGVjbGFyZSBjb25zdCBmbjogPE4+KCkgPT4gTjsNCmV4cG9ydCBkZWNsYXJlIGNvbnN0IGZuMjogPE4+KHA6IE4pID0+IHZvaWQ7DQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgTTEgew0KICAgIHR5cGUgTjxUPiA9IFQgZXh0ZW5kcyBUID8gTjxUPiA6IG5ldmVyOw0KICAgIGZ1bmN0aW9uIE4oKTogdHlwZW9mIE47DQp9DQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgTTIgew0KICAgIGludGVyZmFjZSBOIHsNCiAgICAgICAgY2hpbGQ6IE47DQogICAgICAgIG0oKTogTjsNCiAgICAgICAgZ2V0IFgoKTogTjsNCiAgICAgICAgc2V0IFgodmFsdWU6IE4pOw0KICAgIH0NCn0NCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBNMyB7DQogICAgaW50ZXJmYWNlIE4gew0KICAgICAgICBbbjogc3RyaW5nXTogTjsNCiAgICB9DQp9DQpleHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgTTMgew0KICAgIGNsYXNzIE4gew0KICAgICAgICBjaGlsZDogTjsNCiAgICB9DQogICAgZnVuY3Rpb24gZm4oKTogTjsNCn0NCmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBNNCB7DQogICAgbmFtZXNwYWNlIE4gew0KICAgICAgICBmdW5jdGlvbiBmbigpOiB0eXBlb2YgTjsNCiAgICB9DQp9DQpleHBvcnQgZGVjbGFyZSBjb25zdCBmbjM6IDxOPihwOiBOKSA9PiB2b2lkOw0KZXhwb3J0IGRlY2xhcmUgY29uc3QgZm40OiA8Tj4oKSA9PiB7DQogICAgbmFtZTogTjsNCn07DQpleHBvcnQgaW50ZXJmYWNlIEk8Tj4gew0KICAgICgpOiBOOw0KICAgIG5ldyAoKTogTjsNCiAgICBtKCk6IE47DQp9DQpleHBvcnQgaW50ZXJmYWNlIEkyPE4+IHsNCiAgICBbbjogc3RyaW5nXTogTjsNCn0NCmV4cG9ydCBpbnRlcmZhY2UgSTEgew0KICAgIDxOPigpOiBOOw0KICAgIG5ldyA8Tj4oKTogTjsNCiAgICBtPE4+KCk6IE47DQp9DQpleHBvcnQgaW50ZXJmYWNlIEk8Tj4gew0KICAgICgpOiBOOw0KICAgIG5ldyAoKTogTjsNCiAgICBtKCk6IE47DQp9DQpleHBvcnQgZGVjbGFyZSBjbGFzcyBDPE4+IHsNCiAgICBjb25zdHJ1Y3RvcihuOiBOKTsNCiAgICBtKCk6IE47DQogICAgZ2V0IE4oKTogTjsNCiAgICBzZXQgTih2YWx1ZTogTik7DQp9DQpleHBvcnQgZGVjbGFyZSBjbGFzcyBDMiB7DQogICAgbTxOPigpOiBOOw0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXNvbGF0ZWREZWNsYXJhdGlvbkJpbmRlclNpZ25hdHVyZXMuZC50cy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvbGF0ZWREZWNsYXJhdGlvbkJpbmRlclNpZ25hdHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImlzb2xhdGVkRGVjbGFyYXRpb25CaW5kZXJTaWduYXR1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRTNCLGVBQU8sTUFBTSxFQUFFLEdBQUksQ0FBQyxPQUFLLENBRXhCLENBQUE7QUFDRCxlQUFPLE1BQU0sR0FBRyxHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUcsQ0FBQyxLQUFHLElBRTlCLENBQUE7QUFHRCx5QkFBYyxFQUFFLENBQUM7SUFDYixLQUFZLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQyxTQUFTLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzlDLFNBQWdCLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FFNUI7Q0FDSjtBQUVELHlCQUFjLEVBQUUsQ0FBQztJQUNiLFVBQWlCLENBQUM7UUFDZCxLQUFLLEVBQUUsQ0FBQyxDQUFBO1FBQ1IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNWLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7S0FDbkI7Q0FDSjtBQUVELHlCQUFjLEVBQUUsQ0FBQztJQUNiLFVBQWlCLENBQUM7UUFDZCxDQUFDLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFBO0tBQ2pCO0NBQ0o7QUFDRCx5QkFBYyxFQUFFLENBQUM7SUFDYixNQUFhLENBQUM7UUFBRyxLQUFLLEVBQUUsQ0FBQyxDQUFBO0tBQUU7SUFDM0IsU0FBZ0IsRUFBRSxJQUFJLENBQUMsQ0FFdEI7Q0FDSjtBQUNELHlCQUFjLEVBQUUsQ0FBQztJQUNiLFVBQWMsQ0FBQyxDQUFDO1FBQ1osU0FBZ0IsRUFBRSxJQUFJLE9BQU8sQ0FBQyxDQUU3QjtLQUNKO0NBQ0o7QUFHRCxlQUFPLE1BQU0sR0FBRyxHQUFhLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFHLElBRXRDLENBQUE7QUFFRCxlQUFPLE1BQU0sR0FBRyxHQUFhLENBQUMsT0FBSztJQUFFLElBQUksRUFBRSxDQUFDLENBQUE7Q0FFM0MsQ0FBQTtBQUVELE1BQU0sV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNoQixJQUFJLENBQUMsQ0FBQztJQUNOLFFBQVEsQ0FBQyxDQUFBO0lBQ1QsQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUNWO0FBRUQsTUFBTSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUE7Q0FDakI7QUFFRCxNQUFNLFdBQVcsRUFBRTtJQUNmLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNULEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNaLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0NBQ2I7QUFHRCxNQUFNLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDaEIsSUFBSSxDQUFDLENBQUM7SUFDTixRQUFRLENBQUMsQ0FBQTtJQUNULENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDVjtBQUVELHFCQUFhLENBQUMsQ0FBQyxDQUFDO2dCQUNBLENBQUMsRUFBRSxDQUFDO0lBR2hCLENBQUMsSUFBSSxDQUFDO0lBR04sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFpQjtJQUMzQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBREYsQ0FDRSxFQUFLO0NBQ25CO0FBRUQscUJBQWEsRUFBRTtJQUNYLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztDQUdaIn0=,dHlwZSBOID0gIm5vdCB1c2VkIjsKY29uc3QgTiA9ICJub3QgdXNlZCIKZXhwb3J0IHR5cGUgRiA9IDxOPigpID0+IE47CgpleHBvcnQgY29uc3QgZm4gPSA8Tj4oKTogTiAgPT4gewogICAgcmV0dXJuIG51bGwhOwp9CmV4cG9ydCBjb25zdCBmbjIgPSA8Tj4ocDogIE4pOiB2b2lkID0+IHsKICAgIHJldHVybiBudWxsIQp9CgoKZXhwb3J0IG1vZHVsZSBNMSB7CiAgICBleHBvcnQgdHlwZSBOPFQ+ID0gIFQgZXh0ZW5kcyBUPyBOPFQ+IDogbmV2ZXI7CiAgICBleHBvcnQgZnVuY3Rpb24gTigpOiB0eXBlb2YgTiB7CiAgICAgICAgcmV0dXJuIE4KICAgIH0KfQoKZXhwb3J0IG1vZHVsZSBNMiB7CiAgICBleHBvcnQgaW50ZXJmYWNlIE4geyAKICAgICAgICBjaGlsZDogTgogICAgICAgIG0oKTogTjsKICAgICAgICBnZXQgWCgpOiBOCiAgICAgICAgc2V0IFgodmFsdWU6IE4pOwogICAgfQp9CgpleHBvcnQgbW9kdWxlIE0zIHsKICAgIGV4cG9ydCBpbnRlcmZhY2UgTiB7IAogICAgICAgIFtuOiBzdHJpbmddOiBOCiAgICB9Cn0KZXhwb3J0IG1vZHVsZSBNMyB7CiAgICBleHBvcnQgY2xhc3MgTiB7IGNoaWxkOiBOIH0KICAgIGV4cG9ydCBmdW5jdGlvbiBmbigpOiBOIHsKICAgICAgICByZXR1cm4gbmV3IE4oKTsKICAgIH0KfQpleHBvcnQgbW9kdWxlIE00IHsKICAgIGV4cG9ydCBtb2R1bGUgTiB7CiAgICAgICAgZXhwb3J0IGZ1bmN0aW9uIGZuKCk6IHR5cGVvZiBOIHsKICAgICAgICAgICAgcmV0dXJuIE47CiAgICAgICAgfQogICAgfQp9CgoKZXhwb3J0IGNvbnN0IGZuMyA9IGZ1bmN0aW9uIDxOPihwOiBOKTogdm9pZCB7CiAgICAKfQoKZXhwb3J0IGNvbnN0IGZuNCA9IGZ1bmN0aW9uIDxOPigpOiB7IG5hbWU6IE4gfSB7CiAgICByZXR1cm4gbnVsbCE7Cn0KCmV4cG9ydCBpbnRlcmZhY2UgSTxOPiB7CiAgICAoKTogTjsKICAgIG5ldyAoKTogTgogICAgbSgpOiBOOwp9CgpleHBvcnQgaW50ZXJmYWNlIEkyPE4+IHsKICAgIFtuOiBzdHJpbmddOiBOCn0KCmV4cG9ydCBpbnRlcmZhY2UgSTEgewogICAgPE4+KCk6IE47CiAgICBuZXcgPE4+KCk6IE4KICAgIG08Tj4oKTogTjsKfQoKCmV4cG9ydCBpbnRlcmZhY2UgSTxOPiB7CiAgICAoKTogTjsKICAgIG5ldyAoKTogTgogICAgbSgpOiBOOwp9CgpleHBvcnQgY2xhc3MgQzxOPiB7CiAgICBjb25zdHJ1Y3RvcihuOiBOKSB7CgogICAgfQogICAgbSgpOiBOIHsKICAgICAgICByZXR1cm4gbnVsbCE7CiAgICB9CiAgICBnZXQgTigpOiBOIHsgcmV0dXJuIG51bGwhIH0KICAgIHNldCBOKHZhbHVlKSB7IH0KfQoKZXhwb3J0IGNsYXNzIEMyIHsKICAgIG08Tj4oKTogTiB7CiAgICAgICAgcmV0dXJuIG51bGwhOwogICAgfQp9Cgo=

Loading

0 comments on commit 3da49c4

Please sign in to comment.