@effect-app/infra 0.75.2 → 0.75.4
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/.cache/effect/095519d034161945a8d2616a506d3e7f35a9b3d868814f44c747429c60fc4e7f.content +2 -36
- package/.cache/effect/095519d034161945a8d2616a506d3e7f35a9b3d868814f44c747429c60fc4e7f.hash +1 -1
- package/.cache/effect/134218688132dfbdea493cbe1f26e73449f2759121df35ddd5448346b59c9a8d.content +6 -24
- package/.cache/effect/134218688132dfbdea493cbe1f26e73449f2759121df35ddd5448346b59c9a8d.hash +1 -1
- package/.cache/effect/14eb9da4ca6d22162888c7fdb7f39ab772d2a2dc6625db6031ecdb32ac89158f.content +40 -75
- package/.cache/effect/14eb9da4ca6d22162888c7fdb7f39ab772d2a2dc6625db6031ecdb32ac89158f.hash +1 -1
- package/.cache/effect/1bfd92946b11da4292f2ed99dc0e322462b60559148f9524abc20e26f70779e1.hash +1 -1
- package/.cache/effect/49c1bd9ec26e6df78b994d8df0bfe21b119803fa4aa46349bf4679fd0f1e7cda.content +1 -3
- package/.cache/effect/49c1bd9ec26e6df78b994d8df0bfe21b119803fa4aa46349bf4679fd0f1e7cda.hash +1 -1
- package/.cache/effect/58d4ccde8bd2db7829706db5bebd01b99900ee83f0f6a8413b53d17cbd69f510.content +1 -1
- package/.cache/effect/58d4ccde8bd2db7829706db5bebd01b99900ee83f0f6a8413b53d17cbd69f510.hash +1 -1
- package/.cache/effect/72a5a16a6b62b63cd71719c833091128207d7e6c823cb32293549b3dd58c451b.content +7 -15
- package/.cache/effect/72a5a16a6b62b63cd71719c833091128207d7e6c823cb32293549b3dd58c451b.hash +1 -1
- package/.cache/effect/7a9c33db6aedaf00093a132c1d4e48e9d043cef05e932b8a37da24d44e224248.hash +1 -1
- package/.cache/effect/8594f0f42afc0641b00e88998000cc47382a1d07da31f4a148f7976701ca22d5.hash +1 -1
- package/.cache/effect/c67d971634d2dc8118b40452b61c9a51620c35809be4a89982476aa80701d852.hash +1 -1
- package/.cache/effect/f38adf43700dab905456a534a0690eaf882cff2cd576c731f23d6d14a3c3d659.content +1 -5
- package/.cache/effect/f38adf43700dab905456a534a0690eaf882cff2cd576c731f23d6d14a3c3d659.hash +1 -1
- package/CHANGELOG.md +21 -0
- package/_cjs/services/RepositoryBase.cjs +10 -9
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/dist/services/Repository.d.ts +14 -14
- package/dist/services/RepositoryBase.js +11 -10
- package/dist/services/simpledb/cosmosdb.d.ts +2 -2
- package/dist/services/simpledb/memdb.d.ts +2 -2
- package/dist/services/simpledb/mongodb.d.ts +2 -2
- package/package.json +5 -5
package/.cache/effect/72a5a16a6b62b63cd71719c833091128207d7e6c823cb32293549b3dd58c451b.content
CHANGED
|
@@ -65,16 +65,12 @@ export function codeFilter(filter) {
|
|
|
65
65
|
return gtCaseInsensitive(k, p.value);
|
|
66
66
|
case "gte":
|
|
67
67
|
return gteCaseInsensitive(k, p.value);
|
|
68
|
-
case "includes":
|
|
69
|
-
return k.includes(p.value);
|
|
70
|
-
case "not-includes":
|
|
71
|
-
return !k.includes(p.value);
|
|
72
68
|
case "contains":
|
|
73
|
-
return k.toLowerCase().includes(
|
|
69
|
+
return k.toLowerCase().includes(p.value.toLowerCase());
|
|
74
70
|
case "ends-with":
|
|
75
|
-
return k.toLowerCase().endsWith(
|
|
71
|
+
return k.toLowerCase().endsWith(p.value.toLowerCase());
|
|
76
72
|
case "starts-with":
|
|
77
|
-
return k.toLowerCase().startsWith(
|
|
73
|
+
return k.toLowerCase().startsWith(p.value.toLowerCase());
|
|
78
74
|
case "not-eq":
|
|
79
75
|
return !compareCaseInsensitive(k, p.value);
|
|
80
76
|
case "eq":
|
|
@@ -101,16 +97,12 @@ export function codeFilter(filter) {
|
|
|
101
97
|
return gtCaseInsensitive(k, p.value);
|
|
102
98
|
case "gte":
|
|
103
99
|
return gteCaseInsensitive(k, p.value);
|
|
104
|
-
case "includes":
|
|
105
|
-
return k.includes(p.value);
|
|
106
|
-
case "not-includes":
|
|
107
|
-
return !k.includes(p.value);
|
|
108
100
|
case "contains":
|
|
109
|
-
return k.toLowerCase().includes(
|
|
101
|
+
return k.toLowerCase().includes(p.value.toLowerCase());
|
|
110
102
|
case "ends-with":
|
|
111
|
-
return k.toLowerCase().endsWith(
|
|
103
|
+
return k.toLowerCase().endsWith(p.value.toLowerCase());
|
|
112
104
|
case "starts-with":
|
|
113
|
-
return k.toLowerCase().startsWith(
|
|
105
|
+
return k.toLowerCase().startsWith(p.value.toLowerCase());
|
|
114
106
|
case "not-eq":
|
|
115
107
|
return p.key.includes(".-1.")
|
|
116
108
|
? get(x, p.key.split(".-1.")[0])
|
|
@@ -175,4 +167,4 @@ function gteCaseInsensitive(valA, valB) {
|
|
|
175
167
|
? valA.toLowerCase() >= valB.toLowerCase()
|
|
176
168
|
: valA >= valB;
|
|
177
169
|
}
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1N0b3JlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRS9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSWhFLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQTtBQUVwQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUssRUFDZixFQUFFLENBQ0wsQ0FBQztJQUNDLEdBQUcsQ0FBQztJQUNKLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0NBQ3JCLENBQVEsQ0FBQTtBQUNYLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FDekIsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQXdELENBQUksRUFBRSxPQUFrQixFQUFFLEVBQUUsQ0FDcEcsb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztJQUNwQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7UUFDWCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ04scUNBQUEsT0FBTyxFQUNXLEdBQUcsRUFBRSxDQUFDLElBQUksOEJBQThCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNyRixDQUFBO0tBQ0Y7SUFDRCxJQUFJLHVCQUFBLE9BQU8sQ0FBUyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUU7UUFDdkQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ2IscUJBQVksSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtB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QUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDekQsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQzFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFBO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXQgfSBmcm9tIFwiQGVmZmVjdC1hcHAvcHJlbHVkZS91dGlsc1wiXG5cbmltcG9ydCB7IE9wdGltaXN0aWNDb25jdXJyZW5jeUV4Y2VwdGlvbiB9IGZyb20gXCIuLi8uLi9lcnJvcnMuanNcIlxuXG5pbXBvcnQgdHlwZSB7IEZpbHRlciwgRmlsdGVySm9pblNlbGVjdCwgUGVyc2lzdGVuY2VNb2RlbFR5cGUsIFN1cHBvcnRlZFZhbHVlczIgfSBmcm9tIFwiLi9zZXJ2aWNlLmpzXCJcblxuaW1wb3J0IG9iamVjdEhhc2ggZnJvbSBcIm9iamVjdC1oYXNoXCJcblxuZXhwb3J0IGNvbnN0IG1ha2VFVGFnID0gPEUgZXh0ZW5kcyBQZXJzaXN0ZW5jZU1vZGVsVHlwZTxJZD4sIElkIGV4dGVuZHMgc3RyaW5nPihcbiAgeyBfZXRhZywgLi4uZSB9OiBFXG4pOiBFID0+XG4gICh7XG4gICAgLi4uZSxcbiAgICBfZXRhZzogb2JqZWN0SGFzaChlKVxuICB9KSBhcyBhbnlcbmV4cG9ydCBjb25zdCBtYWtlVXBkYXRlRVRhZyA9XG4gIChuYW1lOiBzdHJpbmcpID0+IDxFIGV4dGVuZHMgUGVyc2lzdGVuY2VNb2RlbFR5cGU8SWQ+LCBJZCBleHRlbmRzIHN0cmluZz4oZTogRSwgY3VycmVudDogT3B0aW9uPEU+KSA9PlxuICAgIEVmZmVjdC5nZW4oZnVuY3Rpb24qKCQpIHtcbiAgICAgIGlmIChlLl9ldGFnKSB7XG4gICAgICAgIHlpZWxkKiAkKFxuICAgICAgICAgIGN1cnJlbnRcbiAgICAgICAgICAgIC5lbmNhc2VJbkVmZmVjdCgoKSA9PiBuZXcgT3B0aW1pc3RpY0NvbmN1cnJlbmN5RXhjZXB0aW9uKG5hbWUsIGUuaWQsIFwiXCIsIGUuX2V0YWcpKVxuICAgICAgICApXG4gICAgICB9XG4gICAgICBpZiAoY3VycmVudC5pc1NvbWUoKSAmJiBjdXJyZW50LnZhbHVlLl9ldGFnICE9PSBlLl9ldGFnKSB7XG4gICAgICAgIHJldHVybiB5aWVsZCogJChcbiAgICAgICAgICBFZmZlY3QuZmFpbChuZXcgT3B0aW1pc3RpY0NvbmN1cnJlbmN5RXhjZXB0aW9uKG5hbWUsIGN1cnJlbnQudmFsdWUuaWQsIGN1cnJlbnQudmFsdWUuX2V0YWcsIGUuX2V0YWcpKVxuICAgICAgICApXG4gICAgICB9XG4gICAgICBjb25zdCBuZXdFID0gbWFrZUVUYWcoZSlcbiAgICAgIHJldHVybiBuZXdFXG4gICAgfSlcblxuZXhwb3J0IGZ1bmN0aW9uIGNvZGVGaWx0ZXI8RSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9LCBORSBleHRlbmRzIEU+KGZpbHRlcjogRmlsdGVyPE5FPikge1xuICByZXR1cm4gKHg6IEUpID0+XG4gICAgZmlsdGVyLnR5cGUgPT09IFwic3RhcnRzV2l0aFwiXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgPyBsb3dlcmNhc2VJZlN0cmluZygoeCBhcyBhbnkpW2ZpbHRlci5ieV0pLnN0YXJ0c1dpdGgoZmlsdGVyLnZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgID8gT3B0aW9uKHggYXMgdW5rbm93biBhcyBORSlcbiAgICAgICAgOiBPcHRpb24ubm9uZVxuICAgICAgOiBmaWx0ZXIudHlwZSA9PT0gXCJlbmRzV2l0aFwiXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgPyBsb3dlcmNhc2VJZlN0cmluZygoeCBhcyBhbnkpW2ZpbHRlci5ieV0pLmVuZHNXaXRoKGZpbHRlci52YWx1ZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICA/IE9wdGlvbih4IGFzIHVua25vd24gYXMgTkUpXG4gICAgICAgIDogT3B0aW9uLm5vbmVcbiAgICAgIDogZmlsdGVyLnR5cGUgPT09IFwiY29udGFpbnNcIlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGxcbiAgICAgID8gbG93ZXJjYXNlSWZTdHJpbmcoKHggYXMgYW55KVtmaWx0ZXIuYnldKS5pbmNsdWRlcyhmaWx0ZXIudmFsdWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgPyBPcHRpb24oeCBhcyB1bmtub3duIGFzIE5FKVxuICAgICAgICA6IE9wdGlvbi5ub25lXG4gICAgICA6IGZpbHRlci50eXBlID09PSBcImpvaW5fZmluZFwiXG4gICAgICA/IGZpbHRlci5rZXlzLnNvbWUoKGspID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGdldCh4LCBrKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdXG4gICAgICAgICAgLy8gd2UgbWltaWMgdGhlIGJlaGF2aW9yIG9mIGNvc21vc2RiOyBpZiB0aGUgc2hhcGUgaW4gZGIgZG9lcyBub3QgbWF0Y2ggd2hhdCB3ZSdyZSBsb29raW5nIGZvciwgd2UgaW1hZ2luZSBmYWxzZSBoaXRcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICYmIHZhbHVlLnNvbWUoKHYpID0+IGNvbXBhcmVDYXNlSW5zZW5zaXRpdmUodltmaWx0ZXIudmFsdWVLZXldLCBmaWx0ZXIudmFsdWUpKVxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgICAgPyBPcHRpb24oeCBhcyB1bmtub3duIGFzIE5FKVxuICAgICAgICA6IE9wdGlvbi5ub25lXG4gICAgICAvLyBUT0RPOiBzdXBwb3J0IG1peGVkIG9yL2FuZFxuICAgICAgOiBmaWx0ZXIubW9kZSA9PT0gXCJvclwiXG4gICAgICA/IGZpbHRlclxuICAgICAgICAgIC53aGVyZVxuICAgICAgICAgIC5zb21lKChwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBrID0gZ2V0KHgsIHAua2V5KVxuICAgICAgICAgICAgc3dpdGNoIChwLnQpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImluXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHAudmFsdWUuaW5jbHVkZXMoaylcbiAgICAgICAgICAgICAgY2FzZSBcIm5vdC1pblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiAhcC52YWx1ZS5pbmNsdWRlcyhrKVxuICAgICAgICAgICAgICBjYXNlIFwibHRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbHRDYXNlSW5zZW5zaXRpdmUoaywgcC52YWx1ZSlcbiAgICAgICAgICAgICAgY2FzZSBcImx0ZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBsdGVDYXNlSW5zZW5zaXRpdmUoaywgcC52YWx1ZSlcbiAgICAgICAgICAgICAgY2FzZSBcImd0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGd0Q2FzZUluc2Vuc2l0aXZlKGssIHAudmFsdWUpXG4gICAgICAgICAgICAgIGNhc2UgXCJndGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZ3RlQ2FzZUluc2Vuc2l0aXZlKGssIHAudmFsdWUpXG4gICAgICAgICAgICAgIGNhc2UgXCJpbmNsdWRlc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiAoayBhcyBBcnJheTxzdHJpbmc+KS5pbmNsdWRlcyhwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwibm90LWluY2x1ZGVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICEoayBhcyBBcnJheTxzdHJpbmc+KS5pbmNsdWRlcyhwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwiY29udGFpbnNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKGsgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKChwLnZhbHVlKS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICBjYXNlIFwiZW5kcy13aXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChrIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgocC52YWx1ZSkudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgY2FzZSBcInN0YXJ0cy13aXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChrIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKChwLnZhbHVlKS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICBjYXNlIFwibm90LWVxXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFjb21wYXJlQ2FzZUluc2Vuc2l0aXZlKGssIHAudmFsdWUpXG4gICAgICAgICAgICAgIGNhc2UgXCJlcVwiOlxuICAgICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgID8gT3B0aW9uKHggYXMgdW5rbm93biBhcyBORSlcbiAgICAgICAgOiBPcHRpb24ubm9uZVxuICAgICAgOiBmaWx0ZXJcbiAgICAgICAgICAud2hlcmVcbiAgICAgICAgICAuZXZlcnkoKHApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSBnZXQoeCwgcC5rZXkpXG4gICAgICAgICAgICBzd2l0Y2ggKHAudCkge1xuICAgICAgICAgICAgICBjYXNlIFwiaW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gcC52YWx1ZS5pbmNsdWRlcyhrKVxuICAgICAgICAgICAgICBjYXNlIFwibm90LWluXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFwLnZhbHVlLmluY2x1ZGVzKGspXG4gICAgICAgICAgICAgIGNhc2UgXCJsdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBsdENhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwibHRlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGx0ZUNhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwiZ3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZ3RDYXNlSW5zZW5zaXRpdmUoaywgcC52YWx1ZSlcbiAgICAgICAgICAgICAgY2FzZSBcImd0ZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBndGVDYXNlSW5zZW5zaXRpdmUoaywgcC52YWx1ZSlcbiAgICAgICAgICAgICAgY2FzZSBcImluY2x1ZGVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChrIGFzIEFycmF5PHN0cmluZz4pLmluY2x1ZGVzKHAudmFsdWUpXG4gICAgICAgICAgICAgIGNhc2UgXCJub3QtaW5jbHVkZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gIShrIGFzIEFycmF5PHN0cmluZz4pLmluY2x1ZGVzKHAudmFsdWUpXG4gICAgICAgICAgICAgIGNhc2UgXCJjb250YWluc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiAoayBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoKHAudmFsdWUpLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgIGNhc2UgXCJlbmRzLXdpdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKGsgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKChwLnZhbHVlKS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICBjYXNlIFwic3RhcnRzLXdpdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKGsgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoKHAudmFsdWUpLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgIGNhc2UgXCJub3QtZXFcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gcC5rZXkuaW5jbHVkZXMoXCIuLTEuXCIpXG4gICAgICAgICAgICAgICAgICA/IChnZXQoeCwgcC5rZXkuc3BsaXQoXCIuLTEuXCIpWzBdKSBhcyBhbnlbXSlcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogb3IgdnMgYW5kXG4gICAgICAgICAgICAgICAgICAgIC5ldmVyeSgoXykgPT4gIWNvbXBhcmVDYXNlSW5zZW5zaXRpdmUoZ2V0KF8sIHAua2V5LnNwbGl0KFwiLi0xLlwiKVsxXSEpLCBwLnZhbHVlKSlcbiAgICAgICAgICAgICAgICAgIDogIWNvbXBhcmVDYXNlSW5zZW5zaXRpdmUoaywgcC52YWx1ZSlcbiAgICAgICAgICAgICAgY2FzZSBcImVxXCI6XG4gICAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICAgICAgICAgIHJldHVybiBwLmtleS5pbmNsdWRlcyhcIi4tMS5cIilcbiAgICAgICAgICAgICAgICAgID8gKGdldCh4LCBwLmtleS5zcGxpdChcIi4tMS5cIilbMF0pIGFzIGFueVtdKVxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBvciB2cyBhbmRcbiAgICAgICAgICAgICAgICAgICAgLnNvbWUoKF8pID0+IGNvbXBhcmVDYXNlSW5zZW5zaXRpdmUoZ2V0KF8sIHAua2V5LnNwbGl0KFwiLi0xLlwiKVsxXSEpLCBwLnZhbHVlKSlcbiAgICAgICAgICAgICAgICAgIDogY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICA/IE9wdGlvbih4IGFzIHVua25vd24gYXMgTkUpXG4gICAgICA6IE9wdGlvbi5ub25lXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb2RlRmlsdGVySm9pblNlbGVjdDxFIGV4dGVuZHMgeyBpZDogc3RyaW5nIH0sIE5FPihcbiAgZmlsdGVyOiBGaWx0ZXJKb2luU2VsZWN0XG4pIHtcbiAgcmV0dXJuICh4OiBFKSA9PlxuICAgIGZpbHRlclxuICAgICAgLmtleXNcbiAgICAgIC5maWx0ZXJNYXAoKGspID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBnZXQoeCwgaylcbiAgICAgICAgLy8gd2UgbWltaWMgdGhlIGJlaGF2aW9yIG9mIGNvc21vc2RiOyBpZiB0aGUgc2hhcGUgaW4gZGIgZG9lcyBub3QgbWF0Y2ggd2hhdCB3ZSdyZSBsb29raW5nIGZvciwgd2UgaW1hZ2luZSBmYWxzZSBoaXRcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgPyBPcHRpb24oXG4gICAgICAgICAgICAodmFsdWUgYXMgcmVhZG9ubHkgTkVbXSkuZmlsdGVyTWFwKCh2KSA9PlxuICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICAgICAgICBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlKCh2IGFzIGFueSlbZmlsdGVyLnZhbHVlS2V5XSwgZmlsdGVyLnZhbHVlKVxuICAgICAgICAgICAgICAgID8gT3B0aW9uKHsgLi4udiwgX3Jvb3RJZDogeC5pZCB9KVxuICAgICAgICAgICAgICAgIDogT3B0aW9uLm5vbmVcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICAgOiBPcHRpb24ubm9uZVxuICAgICAgfSlcbiAgICAgIC5mbGF0TWFwKChfKSA9PiBfKVxufVxuXG5mdW5jdGlvbiBsb3dlcmNhc2VJZlN0cmluZzxUPih2YWw6IFQpIHtcbiAgaWYgKHR5cGVvZiB2YWwgPT09IFwic3RyaW5nXCIpIHtcbiAgICByZXR1cm4gdmFsLnRvTG93ZXJDYXNlKClcbiAgfVxuICByZXR1cm4gdmFsXG59XG5cbmZ1bmN0aW9uIGNvbXBhcmVDYXNlSW5zZW5zaXRpdmUodmFsQTogdW5rbm93biwgdmFsQjogdW5rbm93bikge1xuICByZXR1cm4gdHlwZW9mIHZhbEIgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHZhbEEgPT09IFwic3RyaW5nXCJcbiAgICA/IHZhbEEudG9Mb3dlckNhc2UoKSA9PT0gdmFsQi50b0xvd2VyQ2FzZSgpXG4gICAgOiB2YWxBID09PSB2YWxCXG59XG5cbmZ1bmN0aW9uIGx0Q2FzZUluc2Vuc2l0aXZlKHZhbEE6IFN1cHBvcnRlZFZhbHVlczIsIHZhbEI6IFN1cHBvcnRlZFZhbHVlczIpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWxCID09PSBcInN0cmluZ1wiICYmIHR5cGVvZiB2YWxBID09PSBcInN0cmluZ1wiXG4gICAgPyB2YWxBLnRvTG93ZXJDYXNlKCkgPCB2YWxCLnRvTG93ZXJDYXNlKClcbiAgICA6IHZhbEEgPCB2YWxCXG59XG5cbmZ1bmN0aW9uIGx0ZUNhc2VJbnNlbnNpdGl2ZSh2YWxBOiBTdXBwb3J0ZWRWYWx1ZXMyLCB2YWxCOiBTdXBwb3J0ZWRWYWx1ZXMyKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsQiA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgdmFsQSA9PT0gXCJzdHJpbmdcIlxuICAgID8gdmFsQS50b0xvd2VyQ2FzZSgpIDw9IHZhbEIudG9Mb3dlckNhc2UoKVxuICAgIDogdmFsQSA8PSB2YWxCXG59XG5cbmZ1bmN0aW9uIGd0Q2FzZUluc2Vuc2l0aXZlKHZhbEE6IFN1cHBvcnRlZFZhbHVlczIsIHZhbEI6IFN1cHBvcnRlZFZhbHVlczIpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWxCID09PSBcInN0cmluZ1wiICYmIHR5cGVvZiB2YWxBID09PSBcInN0cmluZ1wiXG4gICAgPyB2YWxBLnRvTG93ZXJDYXNlKCkgPiB2YWxCLnRvTG93ZXJDYXNlKClcbiAgICA6IHZhbEEgPiB2YWxCXG59XG5cbmZ1bmN0aW9uIGd0ZUNhc2VJbnNlbnNpdGl2ZSh2YWxBOiBTdXBwb3J0ZWRWYWx1ZXMyLCB2YWxCOiBTdXBwb3J0ZWRWYWx1ZXMyKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsQiA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgdmFsQSA9PT0gXCJzdHJpbmdcIlxuICAgID8gdmFsQS50b0xvd2VyQ2FzZSgpID49IHZhbEIudG9Mb3dlckNhc2UoKVxuICAgIDogdmFsQSA+PSB2YWxCXG59XG4iXX0=
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1N0b3JlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRS9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSWhFLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQTtBQUVwQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FDdEIsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUssRUFDZixFQUFFLENBQ0wsQ0FBQztJQUNDLEdBQUcsQ0FBQztJQUNKLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0NBQ3JCLENBQVEsQ0FBQTtBQUNYLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FDekIsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLENBQXdELENBQUksRUFBRSxPQUFrQixFQUFFLEVBQUUsQ0FDcEcsb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztJQUNwQixJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7UUFDWCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ04scUNBQUEsT0FBTyxFQUNXLEdBQUcsRUFBRSxDQUFDLElBQUksOEJBQThCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNyRixDQUFBO0tBQ0Y7SUFDRCxJQUFJLHVCQUFBLE9BQU8sQ0FBUyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUU7UUFDdkQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ2IscUJBQVksSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtB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QUFDLFdBQVcsRUFBRTtRQUN6QyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtBQUNqQixDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxJQUFzQixFQUFFLElBQXNCO0lBQ3hFLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDekQsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1FBQzFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFBO0FBQ2xCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLElBQXNCLEVBQUUsSUFBc0I7SUFDdkUsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtRQUN6RCxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDekMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7QUFDakIsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsSUFBc0IsRUFBRSxJQUFzQjtJQUN4RSxPQUFPLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1FBQ3pELENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUMxQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQTtBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0IH0gZnJvbSBcIkBlZmZlY3QtYXBwL3ByZWx1ZGUvdXRpbHNcIlxuXG5pbXBvcnQgeyBPcHRpbWlzdGljQ29uY3VycmVuY3lFeGNlcHRpb24gfSBmcm9tIFwiLi4vLi4vZXJyb3JzLmpzXCJcblxuaW1wb3J0IHR5cGUgeyBGaWx0ZXIsIEZpbHRlckpvaW5TZWxlY3QsIFBlcnNpc3RlbmNlTW9kZWxUeXBlLCBTdXBwb3J0ZWRWYWx1ZXMyIH0gZnJvbSBcIi4vc2VydmljZS5qc1wiXG5cbmltcG9ydCBvYmplY3RIYXNoIGZyb20gXCJvYmplY3QtaGFzaFwiXG5cbmV4cG9ydCBjb25zdCBtYWtlRVRhZyA9IDxFIGV4dGVuZHMgUGVyc2lzdGVuY2VNb2RlbFR5cGU8SWQ+LCBJZCBleHRlbmRzIHN0cmluZz4oXG4gIHsgX2V0YWcsIC4uLmUgfTogRVxuKTogRSA9PlxuICAoe1xuICAgIC4uLmUsXG4gICAgX2V0YWc6IG9iamVjdEhhc2goZSlcbiAgfSkgYXMgYW55XG5leHBvcnQgY29uc3QgbWFrZVVwZGF0ZUVUYWcgPVxuICAobmFtZTogc3RyaW5nKSA9PiA8RSBleHRlbmRzIFBlcnNpc3RlbmNlTW9kZWxUeXBlPElkPiwgSWQgZXh0ZW5kcyBzdHJpbmc+KGU6IEUsIGN1cnJlbnQ6IE9wdGlvbjxFPikgPT5cbiAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKigkKSB7XG4gICAgICBpZiAoZS5fZXRhZykge1xuICAgICAgICB5aWVsZCogJChcbiAgICAgICAgICBjdXJyZW50XG4gICAgICAgICAgICAuZW5jYXNlSW5FZmZlY3QoKCkgPT4gbmV3IE9wdGltaXN0aWNDb25jdXJyZW5jeUV4Y2VwdGlvbihuYW1lLCBlLmlkLCBcIlwiLCBlLl9ldGFnKSlcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnQuaXNTb21lKCkgJiYgY3VycmVudC52YWx1ZS5fZXRhZyAhPT0gZS5fZXRhZykge1xuICAgICAgICByZXR1cm4geWllbGQqICQoXG4gICAgICAgICAgRWZmZWN0LmZhaWwobmV3IE9wdGltaXN0aWNDb25jdXJyZW5jeUV4Y2VwdGlvbihuYW1lLCBjdXJyZW50LnZhbHVlLmlkLCBjdXJyZW50LnZhbHVlLl9ldGFnLCBlLl9ldGFnKSlcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgY29uc3QgbmV3RSA9IG1ha2VFVGFnKGUpXG4gICAgICByZXR1cm4gbmV3RVxuICAgIH0pXG5cbmV4cG9ydCBmdW5jdGlvbiBjb2RlRmlsdGVyPEUgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSwgTkUgZXh0ZW5kcyBFPihmaWx0ZXI6IEZpbHRlcjxORT4pIHtcbiAgcmV0dXJuICh4OiBFKSA9PlxuICAgIGZpbHRlci50eXBlID09PSBcInN0YXJ0c1dpdGhcIlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgID8gbG93ZXJjYXNlSWZTdHJpbmcoKHggYXMgYW55KVtmaWx0ZXIuYnldKS5zdGFydHNXaXRoKGZpbHRlci52YWx1ZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICA/IE9wdGlvbih4IGFzIHVua25vd24gYXMgTkUpXG4gICAgICAgIDogT3B0aW9uLm5vbmVcbiAgICAgIDogZmlsdGVyLnR5cGUgPT09IFwiZW5kc1dpdGhcIlxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgID8gbG93ZXJjYXNlSWZTdHJpbmcoKHggYXMgYW55KVtmaWx0ZXIuYnldKS5lbmRzV2l0aChmaWx0ZXIudmFsdWUudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgPyBPcHRpb24oeCBhcyB1bmtub3duIGFzIE5FKVxuICAgICAgICA6IE9wdGlvbi5ub25lXG4gICAgICA6IGZpbHRlci50eXBlID09PSBcImNvbnRhaW5zXCJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsXG4gICAgICA/IGxvd2VyY2FzZUlmU3RyaW5nKCh4IGFzIGFueSlbZmlsdGVyLmJ5XSkuaW5jbHVkZXMoZmlsdGVyLnZhbHVlLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgID8gT3B0aW9uKHggYXMgdW5rbm93biBhcyBORSlcbiAgICAgICAgOiBPcHRpb24ubm9uZVxuICAgICAgOiBmaWx0ZXIudHlwZSA9PT0gXCJqb2luX2ZpbmRcIlxuICAgICAgPyBmaWx0ZXIua2V5cy5zb21lKChrKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBnZXQoeCwgaykgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXVxuICAgICAgICAgIC8vIHdlIG1pbWljIHRoZSBiZWhhdmlvciBvZiBjb3Ntb3NkYjsgaWYgdGhlIHNoYXBlIGluIGRiIGRvZXMgbm90IG1hdGNoIHdoYXQgd2UncmUgbG9va2luZyBmb3IsIHdlIGltYWdpbmUgZmFsc2UgaGl0XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAmJiB2YWx1ZS5zb21lKCh2KSA9PiBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlKHZbZmlsdGVyLnZhbHVlS2V5XSwgZmlsdGVyLnZhbHVlKSlcbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgID8gT3B0aW9uKHggYXMgdW5rbm93biBhcyBORSlcbiAgICAgICAgOiBPcHRpb24ubm9uZVxuICAgICAgLy8gVE9ETzogc3VwcG9ydCBtaXhlZCBvci9hbmRcbiAgICAgIDogZmlsdGVyLm1vZGUgPT09IFwib3JcIlxuICAgICAgPyBmaWx0ZXJcbiAgICAgICAgICAud2hlcmVcbiAgICAgICAgICAuc29tZSgocCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgayA9IGdldCh4LCBwLmtleSlcbiAgICAgICAgICAgIHN3aXRjaCAocC50KSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJpblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBwLnZhbHVlLmluY2x1ZGVzKGspXG4gICAgICAgICAgICAgIGNhc2UgXCJub3QtaW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gIXAudmFsdWUuaW5jbHVkZXMoaylcbiAgICAgICAgICAgICAgY2FzZSBcImx0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGx0Q2FzZUluc2Vuc2l0aXZlKGssIHAudmFsdWUpXG4gICAgICAgICAgICAgIGNhc2UgXCJsdGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbHRlQ2FzZUluc2Vuc2l0aXZlKGssIHAudmFsdWUpXG4gICAgICAgICAgICAgIGNhc2UgXCJndFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBndENhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwiZ3RlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGd0ZUNhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwiY29udGFpbnNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKGsgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKChwLnZhbHVlIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgY2FzZSBcImVuZHMtd2l0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiAoayBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoKHAudmFsdWUgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICBjYXNlIFwic3RhcnRzLXdpdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKGsgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoKHAudmFsdWUgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICBjYXNlIFwibm90LWVxXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFjb21wYXJlQ2FzZUluc2Vuc2l0aXZlKGssIHAudmFsdWUpXG4gICAgICAgICAgICAgIGNhc2UgXCJlcVwiOlxuICAgICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgID8gT3B0aW9uKHggYXMgdW5rbm93biBhcyBORSlcbiAgICAgICAgOiBPcHRpb24ubm9uZVxuICAgICAgOiBmaWx0ZXJcbiAgICAgICAgICAud2hlcmVcbiAgICAgICAgICAuZXZlcnkoKHApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSBnZXQoeCwgcC5rZXkpXG4gICAgICAgICAgICBzd2l0Y2ggKHAudCkge1xuICAgICAgICAgICAgICBjYXNlIFwiaW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gcC52YWx1ZS5pbmNsdWRlcyhrKVxuICAgICAgICAgICAgICBjYXNlIFwibm90LWluXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFwLnZhbHVlLmluY2x1ZGVzKGspXG4gICAgICAgICAgICAgIGNhc2UgXCJsdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBsdENhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwibHRlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGx0ZUNhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwiZ3RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZ3RDYXNlSW5zZW5zaXRpdmUoaywgcC52YWx1ZSlcbiAgICAgICAgICAgICAgY2FzZSBcImd0ZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBndGVDYXNlSW5zZW5zaXRpdmUoaywgcC52YWx1ZSlcbiAgICAgICAgICAgICAgY2FzZSBcImNvbnRhaW5zXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChrIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygocC52YWx1ZSBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgIGNhc2UgXCJlbmRzLXdpdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gKGsgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKChwLnZhbHVlIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgY2FzZSBcInN0YXJ0cy13aXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIChrIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKChwLnZhbHVlIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgY2FzZSBcIm5vdC1lcVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBwLmtleS5pbmNsdWRlcyhcIi4tMS5cIilcbiAgICAgICAgICAgICAgICAgID8gKGdldCh4LCBwLmtleS5zcGxpdChcIi4tMS5cIilbMF0pIGFzIGFueVtdKVxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBvciB2cyBhbmRcbiAgICAgICAgICAgICAgICAgICAgLmV2ZXJ5KChfKSA9PiAhY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShnZXQoXywgcC5rZXkuc3BsaXQoXCIuLTEuXCIpWzFdISksIHAudmFsdWUpKVxuICAgICAgICAgICAgICAgICAgOiAhY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShrLCBwLnZhbHVlKVxuICAgICAgICAgICAgICBjYXNlIFwiZXFcIjpcbiAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHAua2V5LmluY2x1ZGVzKFwiLi0xLlwiKVxuICAgICAgICAgICAgICAgICAgPyAoZ2V0KHgsIHAua2V5LnNwbGl0KFwiLi0xLlwiKVswXSkgYXMgYW55W10pXG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IG9yIHZzIGFuZFxuICAgICAgICAgICAgICAgICAgICAuc29tZSgoXykgPT4gY29tcGFyZUNhc2VJbnNlbnNpdGl2ZShnZXQoXywgcC5rZXkuc3BsaXQoXCIuLTEuXCIpWzFdISksIHAudmFsdWUpKVxuICAgICAgICAgICAgICAgICAgOiBjb21wYXJlQ2FzZUluc2Vuc2l0aXZlKGssIHAudmFsdWUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgID8gT3B0aW9uKHggYXMgdW5rbm93biBhcyBORSlcbiAgICAgIDogT3B0aW9uLm5vbmVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvZGVGaWx0ZXJKb2luU2VsZWN0PEUgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSwgTkU+KFxuICBmaWx0ZXI6IEZpbHRlckpvaW5TZWxlY3Rcbikge1xuICByZXR1cm4gKHg6IEUpID0+XG4gICAgZmlsdGVyXG4gICAgICAua2V5c1xuICAgICAgLmZpbHRlck1hcCgoaykgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGdldCh4LCBrKVxuICAgICAgICAvLyB3ZSBtaW1pYyB0aGUgYmVoYXZpb3Igb2YgY29zbW9zZGI7IGlmIHRoZSBzaGFwZSBpbiBkYiBkb2VzIG5vdCBtYXRjaCB3aGF0IHdlJ3JlIGxvb2tpbmcgZm9yLCB3ZSBpbWFnaW5lIGZhbHNlIGhpdFxuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICA/IE9wdGlvbihcbiAgICAgICAgICAgICh2YWx1ZSBhcyByZWFkb25seSBORVtdKS5maWx0ZXJNYXAoKHYpID0+XG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICAgIGNvbXBhcmVDYXNlSW5zZW5zaXRpdmUoKHYgYXMgYW55KVtmaWx0ZXIudmFsdWVLZXldLCBmaWx0ZXIudmFsdWUpXG4gICAgICAgICAgICAgICAgPyBPcHRpb24oeyAuLi52LCBfcm9vdElkOiB4LmlkIH0pXG4gICAgICAgICAgICAgICAgOiBPcHRpb24ubm9uZVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgICA6IE9wdGlvbi5ub25lXG4gICAgICB9KVxuICAgICAgLmZsYXRNYXAoKF8pID0+IF8pXG59XG5cbmZ1bmN0aW9uIGxvd2VyY2FzZUlmU3RyaW5nPFQ+KHZhbDogVCkge1xuICBpZiAodHlwZW9mIHZhbCA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiB2YWwudG9Mb3dlckNhc2UoKVxuICB9XG4gIHJldHVybiB2YWxcbn1cblxuZnVuY3Rpb24gY29tcGFyZUNhc2VJbnNlbnNpdGl2ZSh2YWxBOiB1bmtub3duLCB2YWxCOiB1bmtub3duKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsQiA9PT0gXCJzdHJpbmdcIiAmJiB0eXBlb2YgdmFsQSA9PT0gXCJzdHJpbmdcIlxuICAgID8gdmFsQS50b0xvd2VyQ2FzZSgpID09PSB2YWxCLnRvTG93ZXJDYXNlKClcbiAgICA6IHZhbEEgPT09IHZhbEJcbn1cblxuZnVuY3Rpb24gbHRDYXNlSW5zZW5zaXRpdmUodmFsQTogU3VwcG9ydGVkVmFsdWVzMiwgdmFsQjogU3VwcG9ydGVkVmFsdWVzMikge1xuICByZXR1cm4gdHlwZW9mIHZhbEIgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHZhbEEgPT09IFwic3RyaW5nXCJcbiAgICA/IHZhbEEudG9Mb3dlckNhc2UoKSA8IHZhbEIudG9Mb3dlckNhc2UoKVxuICAgIDogdmFsQSA8IHZhbEJcbn1cblxuZnVuY3Rpb24gbHRlQ2FzZUluc2Vuc2l0aXZlKHZhbEE6IFN1cHBvcnRlZFZhbHVlczIsIHZhbEI6IFN1cHBvcnRlZFZhbHVlczIpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWxCID09PSBcInN0cmluZ1wiICYmIHR5cGVvZiB2YWxBID09PSBcInN0cmluZ1wiXG4gICAgPyB2YWxBLnRvTG93ZXJDYXNlKCkgPD0gdmFsQi50b0xvd2VyQ2FzZSgpXG4gICAgOiB2YWxBIDw9IHZhbEJcbn1cblxuZnVuY3Rpb24gZ3RDYXNlSW5zZW5zaXRpdmUodmFsQTogU3VwcG9ydGVkVmFsdWVzMiwgdmFsQjogU3VwcG9ydGVkVmFsdWVzMikge1xuICByZXR1cm4gdHlwZW9mIHZhbEIgPT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHZhbEEgPT09IFwic3RyaW5nXCJcbiAgICA/IHZhbEEudG9Mb3dlckNhc2UoKSA+IHZhbEIudG9Mb3dlckNhc2UoKVxuICAgIDogdmFsQSA+IHZhbEJcbn1cblxuZnVuY3Rpb24gZ3RlQ2FzZUluc2Vuc2l0aXZlKHZhbEE6IFN1cHBvcnRlZFZhbHVlczIsIHZhbEI6IFN1cHBvcnRlZFZhbHVlczIpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWxCID09PSBcInN0cmluZ1wiICYmIHR5cGVvZiB2YWxBID09PSBcInN0cmluZ1wiXG4gICAgPyB2YWxBLnRvTG93ZXJDYXNlKCkgPj0gdmFsQi50b0xvd2VyQ2FzZSgpXG4gICAgOiB2YWxBID49IHZhbEJcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
35207ebdda44c6e08dd00ffc65f33a96b6b76a90f685949c026b2c702478d1fb
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
a32a40b2ee49298c8da08cd6bba7807b93ce8b451fdc3072b8065764b621a666
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
afd0a6760e1c0bb81d8f009c93722e5100019cd98eaaba1b82175573756e27d7
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
2e7b6be49bc3deac32bc70abcdb88dbca6696392d6f2f72d02048ceac445b558
|
package/.cache/effect/f38adf43700dab905456a534a0690eaf882cff2cd576c731f23d6d14a3c3d659.content
CHANGED
|
@@ -295,10 +295,6 @@ export function buildWhereCosmosQuery(filter, name, importedMarkerId, skip, limi
|
|
|
295
295
|
return `(NOT ARRAY_CONTAINS(${v}, ${k}))`;
|
|
296
296
|
case "ends-with":
|
|
297
297
|
return `ENDSWITH(${k}, ${v}, true)`;
|
|
298
|
-
case "includes":
|
|
299
|
-
return `ARRAY_CONTAINS(${k}, ${v})`;
|
|
300
|
-
case "not-includes":
|
|
301
|
-
return `(NOT ARRAY_CONTAINS(${k}, ${v}))`;
|
|
302
298
|
case "contains":
|
|
303
299
|
return `CONTAINS(${k}, ${v}, true)`;
|
|
304
300
|
case "starts-with":
|
|
@@ -361,4 +357,4 @@ class CosmosDbOperationError {
|
|
|
361
357
|
export function CosmosStoreLive(config) {
|
|
362
358
|
return tsplus_module_1.toLayer(tsplus_module_1.flatMap(tsplus_module_1.config(config), makeCosmosStore), StoreMaker);
|
|
363
359
|
}
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9TdG9yZS9Db3Ntb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQWFoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXpDLG9EQUFvRDtBQUNwRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEVBQUUsTUFBTSxFQUFpQjtJQUN2RCxPQUFPLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0IsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNyQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLENBQ0osSUFBWSxFQUNaLElBQXlDLEVBQ3pDLE1BQXdCLEVBQ3hCLEVBQUUsQ0FDRixvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO2dCQUNwQixNQUFNLFdBQVcsR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQTtnQkFDdEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNOLHdCQUFlLEdBQUcsRUFBRSxDQUNsQixFQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDO29CQUM5QixFQUFFLEVBQUUsV0FBVztvQkFDZixlQUFlLEVBQUUsTUFBTSxFQUFFLFVBQVU7d0JBQ2pDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFO3dCQUNuQyxDQUFDLENBQUMsU0FBUztpQkFDZCxDQUFDLENBQ0gsQ0FDRixDQUFBO2dCQUNELE1BQU0sU0FBUyxHQUFHLEVBQUUs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T0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUE7QUFDL0QsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsTUFBMkMsRUFDM0MsSUFBWSxFQUNaLGdCQUF3QixFQUN4QixJQUFhLEVBQ2IsS0FBYztJQUVkLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZO1dBQzVCLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVTtXQUMxQixNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVU7UUFDL0IsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQztRQUNyRSxDQUFDLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7QUFDeEUsQ0FBQztBQUVELE1BQU0sc0JBQXNCO0lBQ0w7SUFBckIsWUFBcUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDO0NBQ3pDO0FBQ0QsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUE2QjtJQUMzRCxPQUFPLHdCQUFBLCtDQUFBLE1BQU0sR0FBZ0IsZUFBZSxDQUFDLEVBQVMsVUFBVSxDQUFDLENBQUE7QUFDbkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuaW1wb3J0IHsgQ29zbW9zQ2xpZW50IH0gZnJvbSBcIkBlZmZlY3QtYXBwL2luZnJhLWFkYXB0ZXJzL2Nvc21vcy1jbGllbnRcIlxuaW1wb3J0IHsgb21pdCB9IGZyb20gXCJAZWZmZWN0LWFwcC9wcmVsdWRlL3V0aWxzXCJcbmltcG9ydCB7IE9wdGltaXN0aWNDb25jdXJyZW5jeUV4Y2VwdGlvbiB9IGZyb20gXCIuLi8uLi9lcnJvcnMuanNcIlxuaW1wb3J0IHR5cGUge1xuICBGaWx0ZXIsXG4gIEZpbHRlckpvaW5TZWxlY3QsXG4gIEpvaW5GaW5kRmlsdGVyLFxuICBMZWdhY3lGaWx0ZXIsXG4gIFBlcnNpc3RlbmNlTW9kZWxUeXBlLFxuICBTdG9yYWdlQ29uZmlnLFxuICBTdG9yZSxcbiAgU3RvcmVDb25maWcsXG4gIFN0b3JlV2hlcmVGaWx0ZXIsXG4gIFN1cHBvcnRlZFZhbHVlc1xufSBmcm9tIFwiLi9zZXJ2aWNlLmpzXCJcbmltcG9ydCB7IFN0b3JlTWFrZXIgfSBmcm9tIFwiLi9zZXJ2aWNlLmpzXCJcblxuLy8gVE9ETzogUmV0cnkgb3BlcmF0aW9uIHdoZW4gcnVubmluZyBpbnRvIFJVIGxpbWl0LlxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDb3Ntb3NTdG9yZSh7IHByZWZpeCB9OiBTdG9yYWdlQ29uZmlnKSB7XG4gIHJldHVybiBFZmZlY3QuZ2VuKGZ1bmN0aW9uKigkKSB7XG4gICAgY29uc3QgeyBkYiB9ID0geWllbGQqICQoQ29zbW9zQ2xpZW50KVxuICAgIHJldHVybiB7XG4gICAgICBtYWtlOiA8SWQgZXh0ZW5kcyBzdHJpbmcsIFBNIGV4dGVuZHMgUGVyc2lzdGVuY2VNb2RlbFR5cGU8SWQ+PihcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBzZWVkPzogRWZmZWN0PG5ldmVyLCBuZXZlciwgSXRlcmFibGU8UE0+PixcbiAgICAgICAgY29uZmlnPzogU3RvcmVDb25maWc8UE0+XG4gICAgICApID0+XG4gICAgICAgIEVmZmVjdC5nZW4oZnVuY3Rpb24qKCQpIHtcbiAgICAgICAgICBjb25zdCBjb250YWluZXJJZCA9IGAke3ByZWZpeH0ke25hbWV9YFxuICAgICAgICAgIHlpZWxkKiAkKFxuICAgICAgICAgICAgRWZmZWN0LnByb21pc2UoKCkgPT5cbiAgICAgICAgICAgICAgZGIuY29udGFpbmVycy5jcmVhdGVJZk5vdEV4aXN0cyh7XG4gICAgICAgICAgICAgICAgaWQ6IGNvbnRhaW5lcklkLFxuICAgICAgICAgICAgICAgIHVuaXF1ZUtleVBvbGljeTogY29uZmlnPy51bmlxdWVLZXlzXG4gICAgICAgICAgICAgICAgICA/IHsgdW5pcXVlS2V5czogY29uZmlnLnVuaXF1ZUtleXMgfVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICAgY29uc3QgY29udGFpbmVyID0gZGIuY29udGFpbmVyKGNvbnRhaW5lcklkKVxuICAgICAgICAgIGNvbnN0IGJ1bGsgPSBjb250YWluZXIuaXRlbXMuYnVsay5iaW5kKGNvbnRhaW5lci5pdGVtcylcbiAgICAgICAgICBjb25zdCBleGVjQmF0Y2ggPSBjb250YWluZXIuaXRlbXMuYmF0Y2guYmluZChjb250YWluZXIuaXRlbXMpXG4gICAgICAgICAgY29uc3QgaW1wb3J0ZWRNYXJrZXJJZCA9IGNvbnRhaW5lcklkXG5cbiAgICAgICAgICBjb25zdCBidWxrU2V0ID0gKGl0ZW1zOiBOb25FbXB0eVJlYWRvbmx5QXJyYXk8UE0+KSA9PlxuICAgICAgICAgICAgRWZmZWN0XG4gICAgICAgICAgICAgIC5nZW4oZnVuY3Rpb24qKCQpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBkaXNhYmxlIGJhdGNoaW5nIGlmIG5lZWQgYXRvbWljaXR5XG4gICAgICAgICAgICAgICAgLy8gd2UgZGVsYXkgYW5kIGJhdGNoIHRvIGtlZXAgbG93IGFtb3VudCBvZiBSVXNcbiAgICAgICAgICAgICAgICBjb25zdCBiID0gWy4uLml0ZW1zXS5tYXAoXG4gICAgICAgICAgICAgICAgICAoeCkgPT5cbiAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgT3B0aW9uLmZyb21OdWxsYWJsZSh4Ll9ldGFnKS5tYXRjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvblR5cGU6IFwiQ3JlYXRlXCIgYXMgY29uc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlQm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm9taXQoeCwgXCJfZXRhZ1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcGFydGl0aW9uS2V5OiBjb25maWc/LnBhcnRpdGlvblZhbHVlKHgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgYW55LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aXRpb25LZXk6IGNvbmZpZz8ucGFydGl0aW9uVmFsdWUoeClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgKGVUYWcpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvblR5cGU6IFwiUmVwbGFjZVwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogeC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VCb2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ub21pdCh4LCBcIl9ldGFnXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9wYXJ0aXRpb25LZXk6IGNvbmZpZz8ucGFydGl0aW9uVmFsdWUoeClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBhbnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmTWF0Y2g6IGVUYWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpdGlvbktleTogY29uZmlnPy5wYXJ0aXRpb25WYWx1ZSh4KVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIF0gYXMgY29uc3RcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgY29uc3QgYmF0Y2hlcyA9IGIuY2h1bmsoY29uZmlnPy5tYXhCdWxrU2l6ZSA/PyAxMCkudG9SZWFkb25seUFycmF5XG5cbiAgICAgICAgICAgICAgICBjb25zdCBiYXRjaFJlc3VsdCA9IHlpZWxkKiAkKFxuICAgICAgICAgICAgICAgICAgYmF0Y2hlc1xuICAgICAgICAgICAgICAgICAgICAubWFwKCh4LCBpKSA9PiBbaSwgeF0gYXMgY29uc3QpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoRWZmZWN0KFxuICAgICAgICAgICAgICAgICAgICAgIChbaSwgYmF0Y2hdKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgRWZmZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5wcm9taXNlKCgpID0+IGJ1bGsoYmF0Y2gubWFwKChbLCBvcF0pID0+IG9wKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5kZWxheShEdXJhdGlvbi5tYWtlTWlsbGlzKGkgPT09IDAgPyAwIDogMTEwMCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5mbGF0TWFwKChyZXNwb25zZXMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRWZmZWN0LmdlbihmdW5jdGlvbiooJCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHJlc3BvbnNlcy5maW5kKCh4KSA9PiB4LnN0YXR1c0NvZGUgPT09IDQxMiB8fCB4LnN0YXR1c0NvZGUgPT09IDQwNClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogJChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZmZlY3QuZmFpbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPcHRpbWlzdGljQ29uY3VycmVuY3lFeGNlcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHIucmVzb3VyY2VCb2R5Py5bXCJpZFwiXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHIyID0gcmVzcG9uc2VzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4KSA9PiB4LnN0YXR1c0NvZGUgPiAyOTkgfHwgeC5zdGF0dXNDb2RlIDwgMjAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocjIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiAkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVmZmVjdC5kaWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ29zbW9zRGJPcGVyYXRpb25FcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJub3QgYWJsZSB0byB1cGRhdGUgcmVjb3JkOiBcIiArIHIyLnN0YXR1c0NvZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiYXRjaC5tYXAoKFtlXSwgaSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2V0YWc6IHJlc3BvbnNlc1tpXSEuZVRhZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIHJldHVybiBiYXRjaFJlc3VsdC5mbGF0KCkgYXMgdW5rbm93biBhcyBOb25FbXB0eVJlYWRvbmx5QXJyYXk8UE0+XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5pbnN0cnVtZW50KFwiY29zbW9zLmJ1bGtTZXRcIilcbiAgICAgICAgICAgICAgLmxvZ0Fubm90YXRlKFwiY29zbW9zLmRiXCIsIGNvbnRhaW5lcklkKVxuXG4gICAgICAgICAgY29uc3QgYmF0Y2hTZXQgPSAoaXRlbXM6IE5vbkVtcHR5UmVhZG9ubHlBcnJheTxQTT4pID0+IHtcbiAgICAgICAgICAgIHJldHVybiBFZmZlY3RcbiAgICAgICAgICAgICAgLnN1c3BlbmQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJhdGNoID0gWy4uLml0ZW1zXS5tYXAoXG4gICAgICAgICAgICAgICAgICAoeCkgPT5cbiAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgT3B0aW9uLmZyb21OdWxsYWJsZSh4Ll9ldGFnKS5tYXRjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvblR5cGU6IFwiQ3JlYXRlXCIgYXMgY29uc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlQm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm9taXQoeCwgXCJfZXRhZ1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcGFydGl0aW9uS2V5OiBjb25maWc/LnBhcnRpdGlvblZhbHVlKHgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgYW55XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChlVGFnKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25UeXBlOiBcIlJlcGxhY2VcIiBhcyBjb25zdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHguaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlQm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLm9taXQoeCwgXCJfZXRhZ1wiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcGFydGl0aW9uS2V5OiBjb25maWc/LnBhcnRpdGlvblZhbHVlKHgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgYW55LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZk1hdGNoOiBlVGFnXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgXSBhcyBjb25zdFxuICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgIGNvbnN0IGV4ID0gYmF0Y2gubWFwKChbLCBjXSkgPT4gYylcblxuICAgICAgICAgICAgICAgIHJldHVybiBFZmZlY3RcbiAgICAgICAgICAgICAgICAgIC5wcm9taXNlKCgpID0+IGV4ZWNCYXRjaChleCwgZXhbMF0/LnJlc291cmNlQm9keS5fcGFydGl0aW9uS2V5KSlcbiAgICAgICAgICAgICAgICAgIC5mbGF0TWFwKCh4KSA9PlxuICAgICAgICAgICAgICAgICAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKigkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geC5yZXN1bHQgPz8gW11cbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdEZhaWxlZCA9IHJlc3VsdC5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKHg6IGFueSkgPT4geC5zdGF0dXNDb2RlID4gMjk5IHx8IHguc3RhdHVzQ29kZSA8IDIwMFxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RGYWlsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvZGUgPSBmaXJzdEZhaWxlZC5zdGF0dXNDb2RlID8/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2RlID09PSA0MTIgfHwgY29kZSA9PT0gNDA0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCogJChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZmZlY3QuZmFpbChuZXcgT3B0aW1pc3RpY0NvbmN1cnJlbmN5RXhjZXB0aW9uKG5hbWUsIFwiYmF0Y2hcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiAkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBFZmZlY3QuZGllKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDb3Ntb3NEYk9wZXJhdGlvbkVycm9yKFwibm90IGFibGUgdG8gdXBkYXRlIHJlY29yZDogXCIgKyBjb2RlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhdGNoLm1hcCgoW2VdLCBpKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF9ldGFnOiByZXN1bHRbaV0/LmVUYWdcbiAgICAgICAgICAgICAgICAgICAgICB9KSkgYXMgdW5rbm93biBhcyBOb25FbXB0eVJlYWRvbmx5QXJyYXk8UE0+XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5pbnN0cnVtZW50KFwiY29zbW9zLmJhdGNoU2V0XCIpXG4gICAgICAgICAgICAgIC5sb2dBbm5vdGF0ZShcImNvc21vcy5kYlwiLCBjb250YWluZXJJZClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBzOiBTdG9yZTxQTSwgSWQ+ID0ge1xuICAgICAgICAgICAgYWxsOiBFZmZlY3Qoe1xuICAgICAgICAgICAgICBxdWVyeTogYFNFTEVDVCAqIEZST00gJHtuYW1lfSBmIFdIRVJFIGYuaWQgIT0gQGlkYCxcbiAgICAgICAgICAgICAgcGFyYW1ldGVyczogW3sgbmFtZTogXCJAaWRcIiwgdmFsdWU6IGltcG9ydGVkTWFya2VySWQgfV1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC50YXAoKHEpID0+IGxvZ1F1ZXJ5KHEpKVxuICAgICAgICAgICAgICAuZmxhdE1hcCgocSkgPT5cbiAgICAgICAgICAgICAgICBFZmZlY3QucHJvbWlzZSgoKSA9PlxuICAgICAgICAgICAgICAgICAgY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIC5pdGVtc1xuICAgICAgICAgICAgICAgICAgICAucXVlcnk8UE0+KHEpXG4gICAgICAgICAgICAgICAgICAgIC5mZXRjaEFsbCgpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCh7IHJlc291cmNlcyB9KSA9PiByZXNvdXJjZXMpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5pbnN0cnVtZW50KFwiY29zbW9zLmFsbFwiKVxuICAgICAgICAgICAgICAubG9nQW5ub3RhdGUoXCJjb3Ntb3MuZGJcIiwgY29udGFpbmVySWQpLFxuICAgICAgICAgICAgZmlsdGVySm9pblNlbGVjdDogPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICAgICAgICAgICAgICBmaWx0ZXI6IEZpbHRlckpvaW5TZWxlY3QsXG4gICAgICAgICAgICAgIGN1cnNvcj86IHsgc2tpcD86IG51bWJlcjsgbGltaXQ/OiBudW1iZXIgfVxuICAgICAgICAgICAgKSA9PlxuICAgICAgICAgICAgICBmaWx0ZXJcbiAgICAgICAgICAgICAgICAua2V5c1xuICAgICAgICAgICAgICAgIC5mb3JFYWNoRWZmZWN0KChrKSA9PlxuICAgICAgICAgICAgICAgICAgRWZmZWN0KGJ1aWxkRmlsdGVySm9pblNlbGVjdENvc21vc1F1ZXJ5KGZpbHRlciwgaywgbmFtZSwgY3Vyc29yPy5za2lwLCBjdXJzb3I/LmxpbWl0KSlcbiAgICAgICAgICAgICAgICAgICAgLnRhcCgocSkgPT4gbG9nUXVlcnkocSkpXG4gICAgICAgICAgICAgICAgICAgIC5mbGF0TWFwKChxKSA9PlxuICAgICAgICAgICAgICAgICAgICAgIEVmZmVjdC5wcm9taXNlKCgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLml0ZW1zXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeTxUPihxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAuZmV0Y2hBbGwoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoeyByZXNvdXJjZXMgfSkgPT4gcmVzb3VyY2VzKVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAubWFwKChhKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCB2ID0gYVxuICAgICAgICAgICAgICAgICAgICAuZmxhdE1hcCgoXykgPT4gXylcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoeCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICBzcHJlYWQoXG4gICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgKHsgciwgLi4ucmVzdCB9OiBhbnkpID0+ICh7IC4uLnJlc3QsIC4uLnIgfSBhcyBUICYgeyBfcm9vdElkOiBzdHJpbmcgfSlcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIHJldHVybiB2XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuaW5zdHJ1bWVudChcImNvc21vcy5maWx0ZXJKb2luU2VsZWN0XCIpXG4gICAgICAgICAgICAgICAgLmxvZ0Fubm90YXRlKFwiY29zbW9zLmRiXCIsIGNvbnRhaW5lcklkKSxcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTWF5IHJldHVybiBkdXBsaWNhdGUgcmVzdWx0cyBmb3IgXCJqb2luX2ZpbmRcIiwgd2hlbiBtYXRjaGluZyBtb3JlIHRoYW4gb25jZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZmlsdGVyOiAoZmlsdGVyOiBGaWx0ZXI8UE0+LCBjdXJzb3I/OiB7IHNraXA/OiBudW1iZXI7IGxpbWl0PzogbnVtYmVyIH0pID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc2tpcCA9IGN1cnNvcj8uc2tpcFxuICAgICAgICAgICAgICBjb25zdCBsaW1pdCA9IGN1cnNvcj8ubGltaXRcbiAgICAgICAgICAgICAgcmV0dXJuIChmaWx0ZXIudHlwZSA9PT0gXCJqb2luX2ZpbmRcIlxuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBwcm9ibGVtIGlmIG9uZSBvZiB0aGUgbXVsdGlwbGUgam9pbmVkIGFycmF5cyBjYW4gYmUgZW1wdHkhXG4gICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNjAzMjA3ODAvYXp1cmUtY29zbW9zZGItc3FsLWpvaW4tbm90LXJldHVybmluZy1yZXN1bHRzLXdoZW4tdGhlLWNoaWxkLWNvbnRhaW5zLWVtcHR5LWFycmFcbiAgICAgICAgICAgICAgICAvLyBzbyB3ZSB1c2UgbXVsdGlwbGUgcXVlcmllcyBpbnN0ZWFkLlxuICAgICAgICAgICAgICAgID8gZmlsdGVyXG4gICAgICAgICAgICAgICAgICAua2V5c1xuICAgICAgICAgICAgICAgICAgLmZvckVhY2hFZmZlY3QoKGspID0+XG4gICAgICAgICAgICAgICAgICAgIEVmZmVjdChidWlsZEZpbmRKb2luQ29zbW9zUXVlcnkoZmlsdGVyLCBrLCBuYW1lLCBza2lwLCBsaW1pdCkpXG4gICAgICAgICAgICAgICAgICAgICAgLnRhcCgocSkgPT4gbG9nUXVlcnkocSkpXG4gICAgICAgICAgICAgICAgICAgICAgLmZsYXRNYXAoKHEpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBFZmZlY3QucHJvbWlzZSgoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaXRlbXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucXVlcnk8UE0+KHEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZldGNoQWxsKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoeyByZXNvdXJjZXMgfSkgPT4gcmVzb3VyY2VzKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIC5tYXAoKF8pID0+IF8uZmxhdE1hcCgoXykgPT4gXykpXG4gICAgICAgICAgICAgICAgOiBFZmZlY3QoYnVpbGRDb3Ntb3NRdWVyeShmaWx0ZXIsIG5hbWUsIGltcG9ydGVkTWFya2VySWQsIHNraXAsIGxpbWl0KSlcbiAgICAgICAgICAgICAgICAgIC50YXAoKHEpID0+IGxvZ1F1ZXJ5KHEpKVxuICAgICAgICAgICAgICAgICAgLmZsYXRNYXAoKHEpID0+XG4gICAgICAgICAgICAgICAgICAgIEVmZmVjdC5wcm9taXNlKCgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAuaXRlbXNcbiAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeTx7IGY6IFBNIH0+KFxuICAgICAgICAgICAgICAgICAgICAgICAgICBxXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmV0Y2hBbGwoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHsgcmVzb3VyY2VzIH0pID0+IHJlc291cmNlcy5tYXAoKF8pID0+IF8uZikpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgLmluc3RydW1lbnQoXCJjb3Ntb3MuZmlsdGVyXCIpXG4gICAgICAgICAgICAgICAgLmxvZ0Fubm90YXRlKFwiY29zbW9zLmRiXCIsIGNvbnRhaW5lcklkKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpbmQ6IChpZCkgPT5cbiAgICAgICAgICAgICAgRWZmZWN0XG4gICAgICAgICAgICAgICAgLnByb21pc2UoKCkgPT5cbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAuaXRlbShpZCwgY29uZmlnPy5wYXJ0aXRpb25WYWx1ZSh7IGlkIH0gYXMgUE0pKVxuICAgICAgICAgICAgICAgICAgICAucmVhZDxQTT4oKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoeyByZXNvdXJjZSB9KSA9PiBPcHRpb24uZnJvbU51bGxhYmxlKHJlc291cmNlKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmluc3RydW1lbnQoXCJjb3Ntb3MuZmluZFwiKVxuICAgICAgICAgICAgICAgIC5sb2dBbm5vdGF0ZShcImNvc21vcy5kYlwiLCBjb250YWluZXJJZCksXG4gICAgICAgICAgICBzZXQ6IChlKSA9PlxuICAgICAgICAgICAgICBPcHRpb25cbiAgICAgICAgICAgICAgICAuZnJvbU51bGxhYmxlKGUuX2V0YWcpXG4gICAgICAgICAgICAgICAgLm1hdGNoKFxuICAgICAgICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgRWZmZWN0LnByb21pc2UoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuaXRlbXMuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgICAgICAgICAgICBfcGFydGl0aW9uS2V5OiBjb25maWc/LnBhcnRpdGlvblZhbHVlKGUpXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIChlVGFnKSA9PlxuICAgICAgICAgICAgICAgICAgICBFZmZlY3QucHJvbWlzZSgoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pdGVtKGUuaWQsIGNvbmZpZz8ucGFydGl0aW9uVmFsdWUoZSkpLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICB7IC4uLmUsIF9wYXJ0aXRpb25LZXk6IGNvbmZpZz8ucGFydGl0aW9uVmFsdWUoZSkgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzQ29uZGl0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJJZk1hdGNoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBlVGFnXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmZsYXRNYXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmICh4LnN0YXR1c0NvZGUgPT09IDQxMiB8fCB4LnN0YXR1c0NvZGUgPT09IDQwNCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRWZmZWN0LmZhaWwobmV3IE9wdGltaXN0aWNDb25jdXJyZW5jeUV4Y2VwdGlvbihuYW1lLCBlLmlkKSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmICh4LnN0YXR1c0NvZGUgPiAyOTkgfHwgeC5zdGF0dXNDb2RlIDwgMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBFZmZlY3QuZGllKFxuICAgICAgICAgICAgICAgICAgICAgIG5ldyBDb3Ntb3NEYk9wZXJhdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJub3QgYWJsZSB0byB1cGRhdGUgcmVjb3JkOiBcIiArIHguc3RhdHVzQ29kZVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIEVmZmVjdCh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICAgICAgICAgIF9ldGFnOiB4LmV0YWdcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuaW5zdHJ1bWVudChcImNvc21vcy5zZXRcIilcbiAgICAgICAgICAgICAgICAubG9nQW5ub3RhdGUoXCJjb3Ntb3MuZGJcIiwgY29udGFpbmVySWQpLFxuICAgICAgICAgICAgYmF0Y2hTZXQsXG4gICAgICAgICAgICBidWxrU2V0LFxuICAgICAgICAgICAgcmVtb3ZlOiAoZTogUE0pID0+XG4gICAgICAgICAgICAgIEVmZmVjdFxuICAgICAgICAgICAgICAgIC5wcm9taXNlKCgpID0+IGNvbnRhaW5lci5pdGVtKGUuaWQsIGNvbmZpZz8ucGFydGl0aW9uVmFsdWUoZSkpLmRlbGV0ZSgpKVxuICAgICAgICAgICAgICAgIC5pbnN0cnVtZW50KFwiY29zbW9zLnJlbW92ZVwiKVxuICAgICAgICAgICAgICAgIC5sb2dBbm5vdGF0ZShcImNvc21vcy5kYlwiLCBjb250YWluZXJJZClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBoYW5kbGUgbW9jayBkYXRhXG4gICAgICAgICAgY29uc3QgbWFya2VyID0geWllbGQqICQoXG4gICAgICAgICAgICBFZmZlY3QucHJvbWlzZSgoKSA9PlxuICAgICAgICAgICAgICBjb250YWluZXJcbiAgICAgICAgICAgICAgICAuaXRlbShpbXBvcnRlZE1hcmtlcklkLCBpbXBvcnRlZE1hcmtlcklkKVxuICAgICAgICAgICAgICAgIC5yZWFkPHsgaWQ6IHN0cmluZyB9PigpXG4gICAgICAgICAgICAgICAgLnRoZW4oKHsgcmVzb3VyY2UgfSkgPT4gT3B0aW9uLmZyb21OdWxsYWJsZShyZXNvdXJjZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgaWYgKCFtYXJrZXIuaXNTb21lKCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ3JlYXRpbmcgbW9jayBkYXRhIGZvciBcIiArIG5hbWUpXG4gICAgICAgICAgICBpZiAoc2VlZCkge1xuICAgICAgICAgICAgICBjb25zdCBtID0geWllbGQqICQoc2VlZClcbiAgICAgICAgICAgICAgeWllbGQqICQoXG4gICAgICAgICAgICAgICAgRWZmZWN0KG0udG9Ob25FbXB0eUFycmF5KVxuICAgICAgICAgICAgICAgICAgLmZsYXRNYXBPcHQoKGEpID0+XG4gICAgICAgICAgICAgICAgICAgIHNcbiAgICAgICAgICAgICAgICAgICAgICAuYnVsa1NldChhKVxuICAgICAgICAgICAgICAgICAgICAgIC5vckRpZVxuICAgICAgICAgICAgICAgICAgICAgIC8vIHdlIGRlbGF5IGV4dHJhIGhlcmUsIHNvIHRoYXQgaW5pdGlhbCBjcmVhdGlvbiBiZXR3ZWVuIENvbXBhbmllcy9QT3MgYWxzbyBoYXZlIGFuIGludGVydmFsIGJldHdlZW4gdGhlbS5cbiAgICAgICAgICAgICAgICAgICAgICAuZGVsYXkoRHVyYXRpb24ubWFrZU1pbGxpcygxMTAwKSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gTWFyayBhcyBpbXBvcnRlZFxuICAgICAgICAgICAgeWllbGQqICQoXG4gICAgICAgICAgICAgIEVmZmVjdC5wcm9taXNlKCgpID0+XG4gICAgICAgICAgICAgICAgY29udGFpbmVyLml0ZW1zLmNyZWF0ZSh7XG4gICAgICAgICAgICAgICAgICBfcGFydGl0aW9uS2V5OiBpbXBvcnRlZE1hcmtlcklkLFxuICAgICAgICAgICAgICAgICAgaWQ6IGltcG9ydGVkTWFya2VySWRcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzXG4gICAgICAgIH0pXG4gICAgfVxuICB9KVxufVxuXG5mdW5jdGlvbiBsb2dRdWVyeShxOiB7XG4gIHF1ZXJ5OiBzdHJpbmdcbiAgcGFyYW1ldGVyczoge1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIHZhbHVlOiBTdXBwb3J0ZWRWYWx1ZXMgfCByZWFkb25seSBTdXBwb3J0ZWRWYWx1ZXNbXVxuICB9W11cbn0pIHtcbiAgcmV0dXJuIEVmZmVjdFxuICAgIC5sb2dEZWJ1ZyhcImNvc21vcyBxdWVyeVwiKVxuICAgIC5hcHBseShFZmZlY3QubG9nQW5ub3RhdGVzKHtcbiAgICAgIHF1ZXJ5OiBxLnF1ZXJ5LFxuICAgICAgcGFyYW1ldGVyczogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHEucGFyYW1ldGVycy5yZWR1Y2UoKGFjYywgdikgPT4ge1xuICAgICAgICAgIGFjY1t2Lm5hbWVdID0gdi52YWx1ZVxuICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgU3VwcG9ydGVkVmFsdWVzIHwgcmVhZG9ubHkgU3VwcG9ydGVkVmFsdWVzW10+KSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAyXG4gICAgICApXG4gICAgfSkpXG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQ6IHNob3VsZCBidWlsZCBTZWxlY3QgaW50byBXaGVyZSBxdWVyeVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGaWx0ZXJKb2luU2VsZWN0Q29zbW9zUXVlcnkoXG4gIGZpbHRlcjogRmlsdGVySm9pblNlbGVjdCxcbiAgazogc3RyaW5nLFxuICBuYW1lOiBzdHJpbmcsXG4gIHNraXA/OiBudW1iZXIsXG4gIGxpbWl0PzogbnVtYmVyXG4pIHtcbiAgY29uc3QgbG0gPSBza2lwICE9PSB1bmRlZmluZWQgfHwgbGltaXQgIT09IHVuZGVmaW5lZCA/IGBPRkZTRVQgJHtza2lwID8/IDB9IExJTUlUICR7bGltaXQgPz8gOTk5OTk5fWAgOiBcIlwiXG4gIHJldHVybiB7XG4gICAgcXVlcnk6IGBcblNFTEVDVCByLCBmLmlkIGFzIF9yb290SWRcbkZST00gJHtuYW1lfSBmXG5KT0lOIHIgSU4gZi4ke2t9XG5XSEVSRSBMT1dFUihyLiR7ZmlsdGVyLnZhbHVlS2V5fSkgPSBMT1dFUihAdmFsdWUpXG4ke2xtfVxuYCxcbiAgICBwYXJhbWV0ZXJzOiBbeyBuYW1lOiBcIkB2YWx1ZVwiLCB2YWx1ZTogZmlsdGVyLnZhbHVlIH1dXG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZDogaXMgbm93IHBhcnQgb2YgV2hlcmUgcXVlcnkgYXMgay4tMS52YWx1ZUtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGaW5kSm9pbkNvc21vc1F1ZXJ5KFxuICBmaWx0ZXI6IEpvaW5GaW5kRmlsdGVyLFxuICBrOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbiAgc2tpcD86IG51bWJlcixcbiAgbGltaXQ/OiBudW1iZXJcbikge1xuICBjb25zdCBsbSA9IHNraXAgIT09IHVuZGVmaW5lZCB8fCBsaW1pdCAhPT0gdW5kZWZpbmVkID8gYE9GRlNFVCAke3NraXAgPz8gMH0gTElNSVQgJHtsaW1pdCA/PyA5OTk5OTl9YCA6IFwiXCJcbiAgcmV0dXJuIHtcbiAgICBxdWVyeTogYFxuU0VMRUNUIERJU1RJTkNUIFZBTFVFIGZcbkZST00gJHtuYW1lfSBmXG5KT0lOIHIgSU4gZi4ke2t9XG5XSEVSRSBMT1dFUihyLiR7ZmlsdGVyLnZhbHVlS2V5fSkgPSBMT1dFUihAdmFsdWUpXG4ke2xtfWAsXG4gICAgcGFyYW1ldGVyczogW3sgbmFtZTogXCJAdmFsdWVcIiwgdmFsdWU6IGZpbHRlci52YWx1ZSB9XVxuICB9XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQ6IHNob3VsZCBidWlsZCBpbnRvIFdoZXJlIHF1ZXJ5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZExlZ2FjeUNvc21vc1F1ZXJ5PFBNPihcbiAgZmlsdGVyOiBMZWdhY3lGaWx0ZXI8UE0+LFxuICBuYW1lOiBzdHJpbmcsXG4gIGltcG9ydGVkTWFya2VySWQ6IHN0cmluZyxcbiAgc2tpcD86IG51bWJlcixcbiAgbGltaXQ/OiBudW1iZXJcbikge1xuICBjb25zdCBsbSA9IHNraXAgIT09IHVuZGVmaW5lZCB8fCBsaW1pdCAhPT0gdW5kZWZpbmVkID8gYE9GRlNFVCAke3NraXAgPz8gMH0gTElNSVQgJHtsaW1pdCA/PyA5OTk5OTl9YCA6IFwiXCJcbiAgcmV0dXJuIHtcbiAgICBxdWVyeTogYFxuICAgIFNFTEVDVCBmXG4gICAgRlJPTSAke25hbWV9IEFTIGZcbiAgICBXSEVSRSBmLmlkICE9IEBpZCBBTkQgZi4ke1xuICAgICAgU3RyaW5nKFxuICAgICAgICBmaWx0ZXIuYnlcbiAgICAgIClcbiAgICB9IExJS0UgQGZpbHRlclxuICAke2xtfWAsXG4gICAgcGFyYW1ldGVyczogW1xuICAgICAgeyBuYW1lOiBcIkBpZFwiLCB2YWx1ZTogaW1wb3J0ZWRNYXJrZXJJZCB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkBmaWx0ZXJcIixcbiAgICAgICAgdmFsdWU6IGZpbHRlci50eXBlID09PSBcImVuZHNXaXRoXCJcbiAgICAgICAgICA/IGAlJHtmaWx0ZXIudmFsdWV9YFxuICAgICAgICAgIDogZmlsdGVyLnR5cGUgPT09IFwiY29udGFpbnNcIlxuICAgICAgICAgID8gYCUke2ZpbHRlci52YWx1ZX0lYFxuICAgICAgICAgIDogYCR7ZmlsdGVyLnZhbHVlfSVgXG4gICAgICB9XG4gICAgXVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFdoZXJlQ29zbW9zUXVlcnkoXG4gIGZpbHRlcjogU3RvcmVXaGVyZUZpbHRlcixcbiAgbmFtZTogc3RyaW5nLFxuICBpbXBvcnRlZE1hcmtlcklkOiBzdHJpbmcsXG4gIHNraXA/OiBudW1iZXIsXG4gIGxpbWl0PzogbnVtYmVyXG4pIHtcbiAgY29uc3QgbG0gPSBza2lwICE9PSB1bmRlZmluZWQgfHwgbGltaXQgIT09IHVuZGVmaW5lZCA/IGBPRkZTRVQgJHtza2lwID8/IDB9IExJTUlUICR7bGltaXQgPz8gOTk5OTk5fWAgOiBcIlwiXG4gIHJldHVybiB7XG4gICAgcXVlcnk6IGBcbiAgICBTRUxFQ1QgZlxuICAgIEZST00gJHtuYW1lfSBBUyBmXG4gICAgJHtcbiAgICAgIGZpbHRlclxuICAgICAgICAud2hlcmVcbiAgICAgICAgLmZpbHRlcigoXykgPT4gXy5rZXkuaW5jbHVkZXMoXCIuLTEuXCIpKVxuICAgICAgICAubWFwKChfKSA9PiBfLmtleS5zcGxpdChcIi4tMS5cIilbMF0pXG4gICAgICAgIC5tYXAoKF8pID0+IGBKT0lOICR7X30gSU4gZi4ke199YClcbiAgICAgICAgLnVuaXEoRXF1aXZhbGVuY2Uuc3RyaW5nKVxuICAgICAgICAuam9pbihcIlxcblwiKVxuICAgIH1cbiAgICBXSEVSRSBmLmlkICE9IEBpZCBBTkQgJHtcbiAgICAgIGZpbHRlclxuICAgICAgICAud2hlcmVcbiAgICAgICAgLm1hcCgoXykgPT5cbiAgICAgICAgICBfLmtleS5pbmNsdWRlcyhcIi4tMS5cIilcbiAgICAgICAgICAgID8geyAuLi5fLCBmOiBfLmtleS5zcGxpdChcIi4tMS5cIilbMF0sIGtleTogXy5rZXkuc3BsaXQoXCIuLTEuXCIpWzFdISB9XG4gICAgICAgICAgICA6IHsgLi4uXywgZjogXCJmXCIgfVxuICAgICAgICApXG4gICAgICAgIC5tYXAoXG4gICAgICAgICAgKHgsIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSBgJHt4LmZ9LiR7eC5rZXl9YFxuICAgICAgICAgICAgY29uc3QgdiA9IGBAdiR7aX1gXG5cbiAgICAgICAgICAgIHN3aXRjaCAoeC50KSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJpblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgQVJSQVlfQ09OVEFJTlMoJHt2fSwgJHtrfSlgXG4gICAgICAgICAgICAgIGNhc2UgXCJub3QtaW5cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYChOT1QgQVJSQVlfQ09OVEFJTlMoJHt2fSwgJHtrfSkpYFxuICAgICAgICAgICAgICBjYXNlIFwiZW5kcy13aXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBFTkRTV0lUSCgke2t9LCAke3Z9LCB0cnVlKWBcbiAgICAgICAgICAgICAgY2FzZSBcImluY2x1ZGVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBBUlJBWV9DT05UQUlOUygke2t9LCAke3Z9KWBcbiAgICAgICAgICAgICAgY2FzZSBcIm5vdC1pbmNsdWRlc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgKE5PVCBBUlJBWV9DT05UQUlOUygke2t9LCAke3Z9KSlgXG4gICAgICAgICAgICAgIGNhc2UgXCJjb250YWluc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgQ09OVEFJTlMoJHtrfSwgJHt2fSwgdHJ1ZSlgXG4gICAgICAgICAgICAgIGNhc2UgXCJzdGFydHMtd2l0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgU1RBUlRTV0lUSCgke2t9LCAke3Z9LCB0cnVlKWBcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbGsgPSBsb3dlcklmTmVlZGVkKGssIHgudmFsdWUpXG4gICAgICAgICAgICBjb25zdCBsdiA9IGxvd2VySWZOZWVkZWQodiwgeC52YWx1ZSlcblxuICAgICAgICAgICAgc3dpdGNoICh4LnQpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImx0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2xrfSA8ICR7bHZ9YFxuICAgICAgICAgICAgICBjYXNlIFwibHRlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2xrfSA8PSAke2x2fWBcbiAgICAgICAgICAgICAgY2FzZSBcImd0XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2xrfSA+ICR7bHZ9YFxuICAgICAgICAgICAgICBjYXNlIFwiZ3RlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2xrfSA+PSAke2x2fWBcbiAgICAgICAgICAgICAgY2FzZSBcIm5vdC1lcVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB4LnZhbHVlID09PSBudWxsXG4gICAgICAgICAgICAgICAgICA/IGBJU19OVUxMKCR7a30pID0gZmFsc2VgXG4gICAgICAgICAgICAgICAgICA6IGAke2xrfSA8PiAke2x2fWBcbiAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgIGNhc2UgXCJlcVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB4LnZhbHVlID09PSBudWxsXG4gICAgICAgICAgICAgICAgICA/IGBJU19OVUxMKCR7a30pID0gdHJ1ZWBcbiAgICAgICAgICAgICAgICAgIDogYCR7bGt9ID0gJHtsdn1gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICAgIC5qb2luKGZpbHRlci5tb2RlID09PSBcIm9yXCIgPyBcIiBPUiBcIiA6IFwiIEFORCBcIilcbiAgICB9XG4gICAgJHtsbX1gLFxuICAgIHBhcmFtZXRlcnM6IFtcbiAgICAgIHsgbmFtZTogXCJAaWRcIiwgdmFsdWU6IGltcG9ydGVkTWFya2VySWQgfSxcbiAgICAgIC4uLmZpbHRlclxuICAgICAgICAud2hlcmVcbiAgICAgICAgLm1hcCgoeCwgaSkgPT4gKHtcbiAgICAgICAgICBuYW1lOiBgQHYke2l9YCxcbiAgICAgICAgICB2YWx1ZTogeC52YWx1ZVxuICAgICAgICB9KSlcbiAgICBdXG4gIH1cbn1cblxuLy8gZnVuY3Rpb24gaXNBcnJheSh0OiBTdXBwb3J0ZWRWYWx1ZXMgfCByZWFkb25seSBTdXBwb3J0ZWRWYWx1ZXNbXSk6IHQgaXMgcmVhZG9ubHkgU3VwcG9ydGVkVmFsdWVzW10ge1xuLy8gICByZXR1cm4gQXJyYXkuaXNBcnJheSh0KVxuLy8gfVxuXG5mdW5jdGlvbiBsb3dlcklmTmVlZGVkKGtleTogdW5rbm93biwgdmFsdWU6IHVua25vd24pIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IGBMT1dFUigke2tleX0pYCA6IGAke2tleX1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENvc21vc1F1ZXJ5PFBNPihcbiAgZmlsdGVyOiBMZWdhY3lGaWx0ZXI8UE0+IHwgU3RvcmVXaGVyZUZpbHRlcixcbiAgbmFtZTogc3RyaW5nLFxuICBpbXBvcnRlZE1hcmtlcklkOiBzdHJpbmcsXG4gIHNraXA/OiBudW1iZXIsXG4gIGxpbWl0PzogbnVtYmVyXG4pIHtcbiAgcmV0dXJuIGZpbHRlci50eXBlID09PSBcInN0YXJ0c1dpdGhcIlxuICAgICAgfHwgZmlsdGVyLnR5cGUgPT09IFwiZW5kc1dpdGhcIlxuICAgICAgfHwgZmlsdGVyLnR5cGUgPT09IFwiY29udGFpbnNcIlxuICAgID8gYnVpbGRMZWdhY3lDb3Ntb3NRdWVyeShmaWx0ZXIsIG5hbWUsIGltcG9ydGVkTWFya2VySWQsIHNraXAsIGxpbWl0KVxuICAgIDogYnVpbGRXaGVyZUNvc21vc1F1ZXJ5KGZpbHRlciwgbmFtZSwgaW1wb3J0ZWRNYXJrZXJJZCwgc2tpcCwgbGltaXQpXG59XG5cbmNsYXNzIENvc21vc0RiT3BlcmF0aW9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBtZXNzYWdlOiBzdHJpbmcpIHt9XG59XG5leHBvcnQgZnVuY3Rpb24gQ29zbW9zU3RvcmVMaXZlKGNvbmZpZzogQ29uZmlnPFN0b3JhZ2VDb25maWc+KSB7XG4gIHJldHVybiBjb25maWcuY29uZmlnLmZsYXRNYXAobWFrZUNvc21vc1N0b3JlKS50b0xheWVyKFN0b3JlTWFrZXIpXG59XG4iXX0=
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9TdG9yZS9Db3Ntb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQWFoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXpDLG9EQUFvRDtBQUNwRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEVBQUUsTUFBTSxFQUFpQjtJQUN2RCxPQUFPLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0IsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNyQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLENBQ0osSUFBWSxFQUNaLElBQXlDLEVBQ3pDLE1BQXdCLEVBQ3hCLEVBQUUsQ0FDRixvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO2dCQUNwQixNQUFNLFdBQVcsR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQTtnQkFDdEMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNOLHdCQUFlLEdBQUcsRUFBRSxDQUNsQixFQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDO29CQUM5QixFQUFFLEVBQUUsV0FBVztvQkFDZixlQUFlLEVBQUUsTUFBTSxFQUFFLFVBQVU7d0JBQ2pDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFO3dCQUNuQyxDQUFDLENBQUMsU0FBUztpQkFDZCxDQUFDLENBQ0gsQ0FDRixDQUFBO2dCQUNELE1BQU0sU0FBUyxHQUFHLEVBQUUs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QixDQUM5QixNQUEyQyxFQUMzQyxJQUFZLEVBQ1osZ0JBQXdCLEVBQ3hCLElBQWEsRUFDYixLQUFjO0lBRWQsT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVk7V0FDNUIsTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVO1dBQzFCLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVTtRQUMvQixDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtBQUN4RSxDQUFDO0FBRUQsTUFBTSxzQkFBc0I7SUFDTDtJQUFyQixZQUFxQixPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUFHLENBQUM7Q0FDekM7QUFDRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQTZCO0lBQzNELE9BQU8sd0JBQUEsK0NBQUEsTUFBTSxHQUFnQixlQUFlLENBQUMsRUFBUyxVQUFVLENBQUMsQ0FBQTtBQUNuRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuXG5pbXBvcnQgeyBDb3Ntb3NDbGllbnQgfSBmcm9tIFwiQGVmZmVjdC1hcHAvaW5mcmEtYWRhcHRlcnMvY29zbW9zLWNsaWVudFwiXG5pbXBvcnQgeyBvbWl0IH0gZnJvbSBcIkBlZmZlY3QtYXBwL3ByZWx1ZGUvdXRpbHNcIlxuaW1wb3J0IHsgT3B0aW1pc3RpY0NvbmN1cnJlbmN5RXhjZXB0aW9uIH0gZnJvbSBcIi4uLy4uL2Vycm9ycy5qc1wiXG5pbXBvcnQgdHlwZSB7XG4gIEZpbHRlcixcbiAgRmlsdGVySm9pblNlbGVjdCxcbiAgSm9pbkZpbmRGaWx0ZXIsXG4gIExlZ2FjeUZpbHRlcixcbiAgUGVyc2lzdGVuY2VNb2RlbFR5cGUsXG4gIFN0b3JhZ2VDb25maWcsXG4gIFN0b3JlLFxuICBTdG9yZUNvbmZpZyxcbiAgU3RvcmVXaGVyZUZpbHRlcixcbiAgU3VwcG9ydGVkVmFsdWVzXG59IGZyb20gXCIuL3NlcnZpY2UuanNcIlxuaW1wb3J0IHsgU3RvcmVNYWtlciB9IGZyb20gXCIuL3NlcnZpY2UuanNcIlxuXG4vLyBUT0RPOiBSZXRyeSBvcGVyYXRpb24gd2hlbiBydW5uaW5nIGludG8gUlUgbGltaXQuXG5leHBvcnQgZnVuY3Rpb24gbWFrZUNvc21vc1N0b3JlKHsgcHJlZml4IH06IFN0b3JhZ2VDb25maWcpIHtcbiAgcmV0dXJuIEVmZmVjdC5nZW4oZnVuY3Rpb24qKCQpIHtcbiAgICBjb25zdCB7IGRiIH0gPSB5aWVsZCogJChDb3Ntb3NDbGllbnQpXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ha2U6IDxJZCBleHRlbmRzIHN0cmluZywgUE0gZXh0ZW5kcyBQZXJzaXN0ZW5jZU1vZGVsVHlwZTxJZD4+KFxuICAgICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICAgIHNlZWQ/OiBFZmZlY3Q8bmV2ZXIsIG5ldmVyLCBJdGVyYWJsZTxQTT4+LFxuICAgICAgICBjb25maWc/OiBTdG9yZUNvbmZpZzxQTT5cbiAgICAgICkgPT5cbiAgICAgICAgRWZmZWN0LmdlbihmdW5jdGlvbiooJCkge1xuICAgICAgICAgIGNvbnN0IGNvbnRhaW5lcklkID0gYCR7cHJlZml4fSR7bmFtZX1gXG4gICAgICAgICAgeWllbGQqICQoXG4gICAgICAgICAgICBFZmZlY3QucHJvbWlzZSgoKSA9PlxuICAgICAgICAgICAgICBkYi5jb250YWluZXJzLmNyZWF0ZUlmTm90RXhpc3RzKHtcbiAgICAgICAgICAgICAgICBpZDogY29udGFpbmVySWQsXG4gICAgICAgICAgICAgICAgdW5pcXVlS2V5UG9saWN5OiBjb25maWc/LnVuaXF1ZUtleXNcbiAgICAgICAgICAgICAgICAgID8geyB1bmlxdWVLZXlzOiBjb25maWcudW5pcXVlS2V5cyB9XG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgICBjb25zdCBjb250YWluZXIgPSBkYi5jb250YWluZXIoY29udGFpbmVySWQpXG4gICAgICAgICAgY29uc3QgYnVsayA9IGNvbnRhaW5lci5pdGVtcy5idWxrLmJpbmQoY29udGFpbmVyLml0ZW1zKVxuICAgICAgICAgIGNvbnN0IGV4ZWNCYXRjaCA9IGNvbnRhaW5lci5pdGVtcy5iYXRjaC5iaW5kKGNvbnRhaW5lci5pdGVtcylcbiAgICAgICAgICBjb25zdCBpbXBvcnRlZE1hcmtlcklkID0gY29udGFpbmVySWRcblxuICAgICAgICAgIGNvbnN0IGJ1bGtTZXQgPSAoaXRlbXM6IE5vbkVtcHR5UmVhZG9ubHlBcnJheTxQTT4pID0+XG4gICAgICAgICAgICBFZmZlY3RcbiAgICAgICAgICAgICAgLmdlbihmdW5jdGlvbiooJCkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86IGRpc2FibGUgYmF0Y2hpbmcgaWYgbmVlZCBhdG9taWNpdHlcbiAgICAgICAgICAgICAgICAvLyB3ZSBkZWxheSBhbmQgYmF0Y2ggdG8ga2VlcCBsb3cgYW1vdW50IG9mIFJVc1xuICAgICAgICAgICAgICAgIGNvbnN0IGIgPSBbLi4uaXRlbXNdLm1hcChcbiAgICAgICAgICAgICAgICAgICh4KSA9PlxuICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICBPcHRpb24uZnJvbU51bGxhYmxlKHguX2V0YWcpLm1hdGNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uVHlwZTogXCJDcmVhdGVcIiBhcyBjb25zdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VCb2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ub21pdCh4LCBcIl9ldGFnXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9wYXJ0aXRpb25LZXk6IGNvbmZpZz8ucGFydGl0aW9uVmFsdWUoeClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBhbnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpdGlvbktleTogY29uZmlnPy5wYXJ0aXRpb25WYWx1ZSh4KVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAoZVRhZykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uVHlwZTogXCJSZXBsYWNlXCIgYXMgY29uc3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB4LmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZUJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5vbWl0KHgsIFwiX2V0YWdcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3BhcnRpdGlvbktleTogY29uZmlnPy5wYXJ0aXRpb25WYWx1ZSh4KVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGFzIGFueSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZNYXRjaDogZVRhZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydGl0aW9uS2V5OiBjb25maWc/LnBhcnRpdGlvblZhbHVlKHgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgXSBhcyBjb25zdFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjb25zdCBiYXRjaGVzID0gYi5jaHVuayhjb25maWc/Lm1heEJ1bGtTaXplID8/IDEwKS50b1JlYWRvbmx5QXJyYXlcblxuICAgICAgICAgICAgICAgIGNvbnN0IGJhdGNoUmVzdWx0ID0geWllbGQqICQoXG4gICAgICAgICAgICAgICAgICBiYXRjaGVzXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKHgsIGkpID0+IFtpLCB4XSBhcyBjb25zdClcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2hFZmZlY3QoXG4gICAgICAgICAgICAgICAgICAgICAgKFtpLCBiYXRjaF0pID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBFZmZlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnByb21pc2UoKCkgPT4gYnVsayhiYXRjaC5tYXAoKFssIG9wXSkgPT4gb3ApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmRlbGF5KER1cmF0aW9uLm1ha2VNaWxsaXMoaSA9PT0gMCA/IDAgOiAxMTAwKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmZsYXRNYXAoKHJlc3BvbnNlcykgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZmZlY3QuZ2VuKGZ1bmN0aW9uKigkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByID0gcmVzcG9uc2VzLmZpbmQoKHgpID0+IHguc3RhdHVzQ29kZSA9PT0gNDEyIHx8IHguc3RhdHVzQ29kZSA9PT0gNDA0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiAkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVmZmVjdC5mYWlsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IE9wdGltaXN0aWNDb25jdXJyZW5jeUV4Y2VwdGlvbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoci5yZXNvdXJjZUJvZHk/LltcImlkXCJdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcjIgPSByZXNwb25zZXMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHgpID0+IHguc3RhdHVzQ29kZSA+IDI5OSB8fCB4LnN0YXR1c0NvZGUgPCAyMDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqICQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWZmZWN0LmRpZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDb3Ntb3NEYk9wZXJhdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm5vdCBhYmxlIHRvIHVwZGF0ZSByZWNvcmQ6IFwiICsgcjIuc3RhdHVzQ29kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhdGNoLm1hcCgoW2VdLCBpKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZXRhZzogcmVzcG9uc2VzW2ldIS5lVGFnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgcmV0dXJuIGJhdGNoUmVzdWx0LmZsYXQoKSBhcyB1bmtub3duIGFzIE5vbkVtcHR5UmVhZG9ubHlBcnJheTxQTT5cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmluc3RydW1lbnQoXCJjb3Ntb3MuYnVsa1NldFwiKVxuICAgICAgICAgICAgICAubG9nQW5ub3RhdGUoXCJjb3Ntb3MuZGJcIiwgY29udGFpbmVySWQpXG5cbiAgICAgICAgICBjb25zdCBiYXRjaFNldCA9IChpdGVtczogTm9uRW1wdHlSZWFkb25seUFycmF5PFBNPikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIEVmZmVjdFxuICAgICAgICAgICAgICAuc3VzcGVuZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmF0Y2ggPSBbLi4uaXRlbXNdLm1hcChcbiAgICAgICAgICAgICAgICAgICh4KSA9PlxuICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgeCxcbiAgICAgICAgICAgICAgICAgICAgICBPcHRpb24uZnJvbU51bGxhYmxlKHguX2V0YWcpLm1hdGNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uVHlwZTogXCJDcmVhdGVcIiBhcyBjb25zdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VCb2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ub21pdCh4LCBcIl9ldGFnXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9wYXJ0aXRpb25LZXk6IGNvbmZpZz8ucGFydGl0aW9uVmFsdWUoeClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBhbnlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgKGVUYWcpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvblR5cGU6IFwiUmVwbGFjZVwiIGFzIGNvbnN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogeC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VCb2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ub21pdCh4LCBcIl9ldGFnXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9wYXJ0aXRpb25LZXk6IGNvbmZpZz8ucGFydGl0aW9uVmFsdWUoeClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBhbnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmTWF0Y2g6IGVUYWdcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBdIGFzIGNvbnN0XG4gICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgY29uc3QgZXggPSBiYXRjaC5tYXAoKFssIGNdKSA9PiBjKVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIEVmZmVjdFxuICAgICAgICAgICAgICAgICAgLnByb21pc2UoKCkgPT4gZXhlY0JhdGNoKGV4LCBleFswXT8ucmVzb3VyY2VCb2R5Ll9wYXJ0aXRpb25LZXkpKVxuICAgICAgICAgICAgICAgICAgLmZsYXRNYXAoKHgpID0+XG4gICAgICAgICAgICAgICAgICAgIEVmZmVjdC5nZW4oZnVuY3Rpb24qKCQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB4LnJlc3VsdCA/PyBbXVxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0RmFpbGVkID0gcmVzdWx0LmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgICAoeDogYW55KSA9PiB4LnN0YXR1c0NvZGUgPiAyOTkgfHwgeC5zdGF0dXNDb2RlIDwgMjAwXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdEZhaWxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29kZSA9IGZpcnN0RmFpbGVkLnN0YXR1c0NvZGUgPz8gMFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGUgPT09IDQxMiB8fCBjb2RlID09PSA0MDQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkKiAkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVmZmVjdC5mYWlsKG5ldyBPcHRpbWlzdGljQ29uY3VycmVuY3lFeGNlcHRpb24obmFtZSwgXCJiYXRjaFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQqICQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVmZmVjdC5kaWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IENvc21vc0RiT3BlcmF0aW9uRXJyb3IoXCJub3QgYWJsZSB0byB1cGRhdGUgcmVjb3JkOiBcIiArIGNvZGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmF0Y2gubWFwKChbZV0sIGkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICAgICAgICAgICAgX2V0YWc6IHJlc3VsdFtpXT8uZVRhZ1xuICAgICAgICAgICAgICAgICAgICAgIH0pKSBhcyB1bmtub3duIGFzIE5vbkVtcHR5UmVhZG9ubHlBcnJheTxQTT5cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmluc3RydW1lbnQoXCJjb3Ntb3MuYmF0Y2hTZXRcIilcbiAgICAgICAgICAgICAgLmxvZ0Fubm90YXRlKFwiY29zbW9zLmRiXCIsIGNvbnRhaW5lcklkKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHM6IFN0b3JlPFBNLCBJZD4gPSB7XG4gICAgICAgICAgICBhbGw6IEVmZmVjdCh7XG4gICAgICAgICAgICAgIHF1ZXJ5OiBgU0VMRUNUICogRlJPTSAke25hbWV9IGYgV0hFUkUgZi5pZCAhPSBAaWRgLFxuICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbeyBuYW1lOiBcIkBpZFwiLCB2YWx1ZTogaW1wb3J0ZWRNYXJrZXJJZCB9XVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLnRhcCgocSkgPT4gbG9nUXVlcnkocSkpXG4gICAgICAgICAgICAgIC5mbGF0TWFwKChxKSA9PlxuICAgICAgICAgICAgICAgIEVmZmVjdC5wcm9taXNlKCgpID0+XG4gICAgICAgICAgICAgICAgICBjb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgLml0ZW1zXG4gICAgICAgICAgICAgICAgICAgIC5xdWVyeTxQTT4ocSlcbiAgICAgICAgICAgICAgICAgICAgLmZldGNoQWxsKClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHsgcmVzb3VyY2VzIH0pID0+IHJlc291cmNlcylcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLmluc3RydW1lbnQoXCJjb3Ntb3MuYWxsXCIpXG4gICAgICAgICAgICAgIC5sb2dBbm5vdGF0ZShcImNvc21vcy5kYlwiLCBjb250YWluZXJJZCksXG4gICAgICAgICAgICBmaWx0ZXJKb2luU2VsZWN0OiA8VCBleHRlbmRzIG9iamVjdD4oXG4gICAgICAgICAgICAgIGZpbHRlcjogRmlsdGVySm9pblNlbGVjdCxcbiAgICAgICAgICAgICAgY3Vyc29yPzogeyBza2lwPzogbnVtYmVyOyBsaW1pdD86IG51bWJlciB9XG4gICAgICAgICAgICApID0+XG4gICAgICAgICAgICAgIGZpbHRlclxuICAgICAgICAgICAgICAgIC5rZXlzXG4gICAgICAgICAgICAgICAgLmZvckVhY2hFZmZlY3QoKGspID0+XG4gICAgICAgICAgICAgICAgICBFZmZlY3QoYnVpbGRGaWx0ZXJKb2luU2VsZWN0Q29zbW9zUXVlcnkoZmlsdGVyLCBrLCBuYW1lLCBjdXJzb3I/LnNraXAsIGN1cnNvcj8ubGltaXQpKVxuICAgICAgICAgICAgICAgICAgICAudGFwKChxKSA9PiBsb2dRdWVyeShxKSlcbiAgICAgICAgICAgICAgICAgICAgLmZsYXRNYXAoKHEpID0+XG4gICAgICAgICAgICAgICAgICAgICAgRWZmZWN0LnByb21pc2UoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAuaXRlbXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5PFQ+KHEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC5mZXRjaEFsbCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCh7IHJlc291cmNlcyB9KSA9PiByZXNvdXJjZXMpXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSBhXG4gICAgICAgICAgICAgICAgICAgIC5mbGF0TWFwKChfKSA9PiBfKVxuICAgICAgICAgICAgICAgICAgICAubWFwKCh4KSA9PlxuICAgICAgICAgICAgICAgICAgICAgIHNwcmVhZChcbiAgICAgICAgICAgICAgICAgICAgICAgIHgsXG4gICAgICAgICAgICAgICAgICAgICAgICAoeyByLCAuLi5yZXN0IH06IGFueSkgPT4gKHsgLi4ucmVzdCwgLi4uciB9IGFzIFQgJiB7IF9yb290SWQ6IHN0cmluZyB9KVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHZcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5pbnN0cnVtZW50KFwiY29zbW9zLmZpbHRlckpvaW5TZWxlY3RcIilcbiAgICAgICAgICAgICAgICAubG9nQW5ub3RhdGUoXCJjb3Ntb3MuZGJcIiwgY29udGFpbmVySWQpLFxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBNYXkgcmV0dXJuIGR1cGxpY2F0ZSByZXN1bHRzIGZvciBcImpvaW5fZmluZFwiLCB3aGVuIG1hdGNoaW5nIG1vcmUgdGhhbiBvbmNlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBmaWx0ZXI6IChmaWx0ZXI6IEZpbHRlcjxQTT4sIGN1cnNvcj86IHsgc2tpcD86IG51bWJlcjsgbGltaXQ/OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBza2lwID0gY3Vyc29yPy5za2lwXG4gICAgICAgICAgICAgIGNvbnN0IGxpbWl0ID0gY3Vyc29yPy5saW1pdFxuICAgICAgICAgICAgICByZXR1cm4gKGZpbHRlci50eXBlID09PSBcImpvaW5fZmluZFwiXG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHByb2JsZW0gaWYgb25lIG9mIHRoZSBtdWx0aXBsZSBqb2luZWQgYXJyYXlzIGNhbiBiZSBlbXB0eSFcbiAgICAgICAgICAgICAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy82MDMyMDc4MC9henVyZS1jb3Ntb3NkYi1zcWwtam9pbi1ub3QtcmV0dXJuaW5nLXJlc3VsdHMtd2hlbi10aGUtY2hpbGQtY29udGFpbnMtZW1wdHktYXJyYVxuICAgICAgICAgICAgICAgIC8vIHNvIHdlIHVzZSBtdWx0aXBsZSBxdWVyaWVzIGluc3RlYWQuXG4gICAgICAgICAgICAgICAgPyBmaWx0ZXJcbiAgICAgICAgICAgICAgICAgIC5rZXlzXG4gICAgICAgICAgICAgICAgICAuZm9yRWFjaEVmZmVjdCgoaykgPT5cbiAgICAgICAgICAgICAgICAgICAgRWZmZWN0KGJ1aWxkRmluZEpvaW5Db3Ntb3NRdWVyeShmaWx0ZXIsIGssIG5hbWUsIHNraXAsIGxpbWl0KSlcbiAgICAgICAgICAgICAgICAgICAgICAudGFwKChxKSA9PiBsb2dRdWVyeShxKSlcbiAgICAgICAgICAgICAgICAgICAgICAuZmxhdE1hcCgocSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEVmZmVjdC5wcm9taXNlKCgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pdGVtc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeTxQTT4ocSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmV0Y2hBbGwoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCh7IHJlc291cmNlcyB9KSA9PiByZXNvdXJjZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgLm1hcCgoXykgPT4gXy5mbGF0TWFwKChfKSA9PiBfKSlcbiAgICAgICAgICAgICAgICA6IEVmZmVjdChidWlsZENvc21vc1F1ZXJ5KGZpbHRlciwgbmFtZSwgaW1wb3J0ZWRNYXJrZXJJZCwgc2tpcCwgbGltaXQpKVxuICAgICAgICAgICAgICAgICAgLnRhcCgocSkgPT4gbG9nUXVlcnkocSkpXG4gICAgICAgICAgICAgICAgICAuZmxhdE1hcCgocSkgPT5cbiAgICAgICAgICAgICAgICAgICAgRWZmZWN0LnByb21pc2UoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5pdGVtc1xuICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5PHsgZjogUE0gfT4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHFcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5mZXRjaEFsbCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoeyByZXNvdXJjZXMgfSkgPT4gcmVzb3VyY2VzLm1hcCgoXykgPT4gXy5mKSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAuaW5zdHJ1bWVudChcImNvc21vcy5maWx0ZXJcIilcbiAgICAgICAgICAgICAgICAubG9nQW5ub3RhdGUoXCJjb3Ntb3MuZGJcIiwgY29udGFpbmVySWQpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmluZDogKGlkKSA9PlxuICAgICAgICAgICAgICBFZmZlY3RcbiAgICAgICAgICAgICAgICAucHJvbWlzZSgoKSA9PlxuICAgICAgICAgICAgICAgICAgY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIC5pdGVtKGlkLCBjb25maWc/LnBhcnRpdGlvblZhbHVlKHsgaWQgfSBhcyBQTSkpXG4gICAgICAgICAgICAgICAgICAgIC5yZWFkPFBNPigpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCh7IHJlc291cmNlIH0pID0+IE9wdGlvbi5mcm9tTnVsbGFibGUocmVzb3VyY2UpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuaW5zdHJ1bWVudChcImNvc21vcy5maW5kXCIpXG4gICAgICAgICAgICAgICAgLmxvZ0Fubm90YXRlKFwiY29zbW9zLmRiXCIsIGNvbnRhaW5lcklkKSxcbiAgICAgICAgICAgIHNldDogKGUpID0+XG4gICAgICAgICAgICAgIE9wdGlvblxuICAgICAgICAgICAgICAgIC5mcm9tTnVsbGFibGUoZS5fZXRhZylcbiAgICAgICAgICAgICAgICAubWF0Y2goXG4gICAgICAgICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAgICAgICBFZmZlY3QucHJvbWlzZSgoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lci5pdGVtcy5jcmVhdGUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF9wYXJ0aXRpb25LZXk6IGNvbmZpZz8ucGFydGl0aW9uVmFsdWUoZSlcbiAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgKGVUYWcpID0+XG4gICAgICAgICAgICAgICAgICAgIEVmZmVjdC5wcm9taXNlKCgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLml0ZW0oZS5pZCwgY29uZmlnPy5wYXJ0aXRpb25WYWx1ZShlKSkucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgLi4uZSwgX3BhcnRpdGlvbktleTogY29uZmlnPy5wYXJ0aXRpb25WYWx1ZShlKSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NDb25kaXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIklmTWF0Y2hcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IGVUYWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuZmxhdE1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHguc3RhdHVzQ29kZSA9PT0gNDEyIHx8IHguc3RhdHVzQ29kZSA9PT0gNDA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBFZmZlY3QuZmFpbChuZXcgT3B0aW1pc3RpY0NvbmN1cnJlbmN5RXhjZXB0aW9uKG5hbWUsIGUuaWQpKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgaWYgKHguc3RhdHVzQ29kZSA+IDI5OSB8fCB4LnN0YXR1c0NvZGUgPCAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVmZmVjdC5kaWUoXG4gICAgICAgICAgICAgICAgICAgICAgbmV3IENvc21vc0RiT3BlcmF0aW9uRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm5vdCBhYmxlIHRvIHVwZGF0ZSByZWNvcmQ6IFwiICsgeC5zdGF0dXNDb2RlXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gRWZmZWN0KHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgICAgICAgX2V0YWc6IHguZXRhZ1xuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5pbnN0cnVtZW50KFwiY29zbW9zLnNldFwiKVxuICAgICAgICAgICAgICAgIC5sb2dBbm5vdGF0ZShcImNvc21vcy5kYlwiLCBjb250YWluZXJJZCksXG4gICAgICAgICAgICBiYXRjaFNldCxcbiAgICAgICAgICAgIGJ1bGtTZXQsXG4gICAgICAgICAgICByZW1vdmU6IChlOiBQTSkgPT5cbiAgICAgICAgICAgICAgRWZmZWN0XG4gICAgICAgICAgICAgICAgLnByb21pc2UoKCkgPT4gY29udGFpbmVyLml0ZW0oZS5pZCwgY29uZmlnPy5wYXJ0aXRpb25WYWx1ZShlKSkuZGVsZXRlKCkpXG4gICAgICAgICAgICAgICAgLmluc3RydW1lbnQoXCJjb3Ntb3MucmVtb3ZlXCIpXG4gICAgICAgICAgICAgICAgLmxvZ0Fubm90YXRlKFwiY29zbW9zLmRiXCIsIGNvbnRhaW5lcklkKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGhhbmRsZSBtb2NrIGRhdGFcbiAgICAgICAgICBjb25zdCBtYXJrZXIgPSB5aWVsZCogJChcbiAgICAgICAgICAgIEVmZmVjdC5wcm9taXNlKCgpID0+XG4gICAgICAgICAgICAgIGNvbnRhaW5lclxuICAgICAgICAgICAgICAgIC5pdGVtKGltcG9ydGVkTWFya2VySWQsIGltcG9ydGVkTWFya2VySWQpXG4gICAgICAgICAgICAgICAgLnJlYWQ8eyBpZDogc3RyaW5nIH0+KClcbiAgICAgICAgICAgICAgICAudGhlbigoeyByZXNvdXJjZSB9KSA9PiBPcHRpb24uZnJvbU51bGxhYmxlKHJlc291cmNlKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG5cbiAgICAgICAgICBpZiAoIW1hcmtlci5pc1NvbWUoKSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJDcmVhdGluZyBtb2NrIGRhdGEgZm9yIFwiICsgbmFtZSlcbiAgICAgICAgICAgIGlmIChzZWVkKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG0gPSB5aWVsZCogJChzZWVkKVxuICAgICAgICAgICAgICB5aWVsZCogJChcbiAgICAgICAgICAgICAgICBFZmZlY3QobS50b05vbkVtcHR5QXJyYXkpXG4gICAgICAgICAgICAgICAgICAuZmxhdE1hcE9wdCgoYSkgPT5cbiAgICAgICAgICAgICAgICAgICAgc1xuICAgICAgICAgICAgICAgICAgICAgIC5idWxrU2V0KGEpXG4gICAgICAgICAgICAgICAgICAgICAgLm9yRGllXG4gICAgICAgICAgICAgICAgICAgICAgLy8gd2UgZGVsYXkgZXh0cmEgaGVyZSwgc28gdGhhdCBpbml0aWFsIGNyZWF0aW9uIGJldHdlZW4gQ29tcGFuaWVzL1BPcyBhbHNvIGhhdmUgYW4gaW50ZXJ2YWwgYmV0d2VlbiB0aGVtLlxuICAgICAgICAgICAgICAgICAgICAgIC5kZWxheShEdXJhdGlvbi5tYWtlTWlsbGlzKDExMDApKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBNYXJrIGFzIGltcG9ydGVkXG4gICAgICAgICAgICB5aWVsZCogJChcbiAgICAgICAgICAgICAgRWZmZWN0LnByb21pc2UoKCkgPT5cbiAgICAgICAgICAgICAgICBjb250YWluZXIuaXRlbXMuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICAgIF9wYXJ0aXRpb25LZXk6IGltcG9ydGVkTWFya2VySWQsXG4gICAgICAgICAgICAgICAgICBpZDogaW1wb3J0ZWRNYXJrZXJJZFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHNcbiAgICAgICAgfSlcbiAgICB9XG4gIH0pXG59XG5cbmZ1bmN0aW9uIGxvZ1F1ZXJ5KHE6IHtcbiAgcXVlcnk6IHN0cmluZ1xuICBwYXJhbWV0ZXJzOiB7XG4gICAgbmFtZTogc3RyaW5nXG4gICAgdmFsdWU6IFN1cHBvcnRlZFZhbHVlcyB8IHJlYWRvbmx5IFN1cHBvcnRlZFZhbHVlc1tdXG4gIH1bXVxufSkge1xuICByZXR1cm4gRWZmZWN0XG4gICAgLmxvZ0RlYnVnKFwiY29zbW9zIHF1ZXJ5XCIpXG4gICAgLmFwcGx5KEVmZmVjdC5sb2dBbm5vdGF0ZXMoe1xuICAgICAgcXVlcnk6IHEucXVlcnksXG4gICAgICBwYXJhbWV0ZXJzOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgcS5wYXJhbWV0ZXJzLnJlZHVjZSgoYWNjLCB2KSA9PiB7XG4gICAgICAgICAgYWNjW3YubmFtZV0gPSB2LnZhbHVlXG4gICAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBTdXBwb3J0ZWRWYWx1ZXMgfCByZWFkb25seSBTdXBwb3J0ZWRWYWx1ZXNbXT4pLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIDJcbiAgICAgIClcbiAgICB9KSlcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZDogc2hvdWxkIGJ1aWxkIFNlbGVjdCBpbnRvIFdoZXJlIHF1ZXJ5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZpbHRlckpvaW5TZWxlY3RDb3Ntb3NRdWVyeShcbiAgZmlsdGVyOiBGaWx0ZXJKb2luU2VsZWN0LFxuICBrOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbiAgc2tpcD86IG51bWJlcixcbiAgbGltaXQ/OiBudW1iZXJcbikge1xuICBjb25zdCBsbSA9IHNraXAgIT09IHVuZGVmaW5lZCB8fCBsaW1pdCAhPT0gdW5kZWZpbmVkID8gYE9GRlNFVCAke3NraXAgPz8gMH0gTElNSVQgJHtsaW1pdCA/PyA5OTk5OTl9YCA6IFwiXCJcbiAgcmV0dXJuIHtcbiAgICBxdWVyeTogYFxuU0VMRUNUIHIsIGYuaWQgYXMgX3Jvb3RJZFxuRlJPTSAke25hbWV9IGZcbkpPSU4gciBJTiBmLiR7a31cbldIRVJFIExPV0VSKHIuJHtmaWx0ZXIudmFsdWVLZXl9KSA9IExPV0VSKEB2YWx1ZSlcbiR7bG19XG5gLFxuICAgIHBhcmFtZXRlcnM6IFt7IG5hbWU6IFwiQHZhbHVlXCIsIHZhbHVlOiBmaWx0ZXIudmFsdWUgfV1cbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkOiBpcyBub3cgcGFydCBvZiBXaGVyZSBxdWVyeSBhcyBrLi0xLnZhbHVlS2V5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZpbmRKb2luQ29zbW9zUXVlcnkoXG4gIGZpbHRlcjogSm9pbkZpbmRGaWx0ZXIsXG4gIGs6IHN0cmluZyxcbiAgbmFtZTogc3RyaW5nLFxuICBza2lwPzogbnVtYmVyLFxuICBsaW1pdD86IG51bWJlclxuKSB7XG4gIGNvbnN0IGxtID0gc2tpcCAhPT0gdW5kZWZpbmVkIHx8IGxpbWl0ICE9PSB1bmRlZmluZWQgPyBgT0ZGU0VUICR7c2tpcCA/PyAwfSBMSU1JVCAke2xpbWl0ID8/IDk5OTk5OX1gIDogXCJcIlxuICByZXR1cm4ge1xuICAgIHF1ZXJ5OiBgXG5TRUxFQ1QgRElTVElOQ1QgVkFMVUUgZlxuRlJPTSAke25hbWV9IGZcbkpPSU4gciBJTiBmLiR7a31cbldIRVJFIExPV0VSKHIuJHtmaWx0ZXIudmFsdWVLZXl9KSA9IExPV0VSKEB2YWx1ZSlcbiR7bG19YCxcbiAgICBwYXJhbWV0ZXJzOiBbeyBuYW1lOiBcIkB2YWx1ZVwiLCB2YWx1ZTogZmlsdGVyLnZhbHVlIH1dXG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZDogc2hvdWxkIGJ1aWxkIGludG8gV2hlcmUgcXVlcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTGVnYWN5Q29zbW9zUXVlcnk8UE0+KFxuICBmaWx0ZXI6IExlZ2FjeUZpbHRlcjxQTT4sXG4gIG5hbWU6IHN0cmluZyxcbiAgaW1wb3J0ZWRNYXJrZXJJZDogc3RyaW5nLFxuICBza2lwPzogbnVtYmVyLFxuICBsaW1pdD86IG51bWJlclxuKSB7XG4gIGNvbnN0IGxtID0gc2tpcCAhPT0gdW5kZWZpbmVkIHx8IGxpbWl0ICE9PSB1bmRlZmluZWQgPyBgT0ZGU0VUICR7c2tpcCA/PyAwfSBMSU1JVCAke2xpbWl0ID8/IDk5OTk5OX1gIDogXCJcIlxuICByZXR1cm4ge1xuICAgIHF1ZXJ5OiBgXG4gICAgU0VMRUNUIGZcbiAgICBGUk9NICR7bmFtZX0gQVMgZlxuICAgIFdIRVJFIGYuaWQgIT0gQGlkIEFORCBmLiR7XG4gICAgICBTdHJpbmcoXG4gICAgICAgIGZpbHRlci5ieVxuICAgICAgKVxuICAgIH0gTElLRSBAZmlsdGVyXG4gICR7bG19YCxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7IG5hbWU6IFwiQGlkXCIsIHZhbHVlOiBpbXBvcnRlZE1hcmtlcklkIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiQGZpbHRlclwiLFxuICAgICAgICB2YWx1ZTogZmlsdGVyLnR5cGUgPT09IFwiZW5kc1dpdGhcIlxuICAgICAgICAgID8gYCUke2ZpbHRlci52YWx1ZX1gXG4gICAgICAgICAgOiBmaWx0ZXIudHlwZSA9PT0gXCJjb250YWluc1wiXG4gICAgICAgICAgPyBgJSR7ZmlsdGVyLnZhbHVlfSVgXG4gICAgICAgICAgOiBgJHtmaWx0ZXIudmFsdWV9JWBcbiAgICAgIH1cbiAgICBdXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkV2hlcmVDb3Ntb3NRdWVyeShcbiAgZmlsdGVyOiBTdG9yZVdoZXJlRmlsdGVyLFxuICBuYW1lOiBzdHJpbmcsXG4gIGltcG9ydGVkTWFya2VySWQ6IHN0cmluZyxcbiAgc2tpcD86IG51bWJlcixcbiAgbGltaXQ/OiBudW1iZXJcbikge1xuICBjb25zdCBsbSA9IHNraXAgIT09IHVuZGVmaW5lZCB8fCBsaW1pdCAhPT0gdW5kZWZpbmVkID8gYE9GRlNFVCAke3NraXAgPz8gMH0gTElNSVQgJHtsaW1pdCA/PyA5OTk5OTl9YCA6IFwiXCJcbiAgcmV0dXJuIHtcbiAgICBxdWVyeTogYFxuICAgIFNFTEVDVCBmXG4gICAgRlJPTSAke25hbWV9IEFTIGZcbiAgICAke1xuICAgICAgZmlsdGVyXG4gICAgICAgIC53aGVyZVxuICAgICAgICAuZmlsdGVyKChfKSA9PiBfLmtleS5pbmNsdWRlcyhcIi4tMS5cIikpXG4gICAgICAgIC5tYXAoKF8pID0+IF8ua2V5LnNwbGl0KFwiLi0xLlwiKVswXSlcbiAgICAgICAgLm1hcCgoXykgPT4gYEpPSU4gJHtffSBJTiBmLiR7X31gKVxuICAgICAgICAudW5pcShFcXVpdmFsZW5jZS5zdHJpbmcpXG4gICAgICAgIC5qb2luKFwiXFxuXCIpXG4gICAgfVxuICAgIFdIRVJFIGYuaWQgIT0gQGlkIEFORCAke1xuICAgICAgZmlsdGVyXG4gICAgICAgIC53aGVyZVxuICAgICAgICAubWFwKChfKSA9PlxuICAgICAgICAgIF8ua2V5LmluY2x1ZGVzKFwiLi0xLlwiKVxuICAgICAgICAgICAgPyB7IC4uLl8sIGY6IF8ua2V5LnNwbGl0KFwiLi0xLlwiKVswXSwga2V5OiBfLmtleS5zcGxpdChcIi4tMS5cIilbMV0hIH1cbiAgICAgICAgICAgIDogeyAuLi5fLCBmOiBcImZcIiB9XG4gICAgICAgIClcbiAgICAgICAgLm1hcChcbiAgICAgICAgICAoeCwgaSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgayA9IGAke3guZn0uJHt4LmtleX1gXG4gICAgICAgICAgICBjb25zdCB2ID0gYEB2JHtpfWBcblxuICAgICAgICAgICAgc3dpdGNoICh4LnQpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImluXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGBBUlJBWV9DT05UQUlOUygke3Z9LCAke2t9KWBcbiAgICAgICAgICAgICAgY2FzZSBcIm5vdC1pblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgKE5PVCBBUlJBWV9DT05UQUlOUygke3Z9LCAke2t9KSlgXG4gICAgICAgICAgICAgIGNhc2UgXCJlbmRzLXdpdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYEVORFNXSVRIKCR7a30sICR7dn0sIHRydWUpYFxuICAgICAgICAgICAgICBjYXNlIFwiY29udGFpbnNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYENPTlRBSU5TKCR7a30sICR7dn0sIHRydWUpYFxuICAgICAgICAgICAgICBjYXNlIFwic3RhcnRzLXdpdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gYFNUQVJUU1dJVEgoJHtrfSwgJHt2fSwgdHJ1ZSlgXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxrID0gbG93ZXJJZk5lZWRlZChrLCB4LnZhbHVlKVxuICAgICAgICAgICAgY29uc3QgbHYgPSBsb3dlcklmTmVlZGVkKHYsIHgudmFsdWUpXG5cbiAgICAgICAgICAgIHN3aXRjaCAoeC50KSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJsdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtsa30gPCAke2x2fWBcbiAgICAgICAgICAgICAgY2FzZSBcImx0ZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtsa30gPD0gJHtsdn1gXG4gICAgICAgICAgICAgIGNhc2UgXCJndFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtsa30gPiAke2x2fWBcbiAgICAgICAgICAgICAgY2FzZSBcImd0ZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtsa30gPj0gJHtsdn1gXG4gICAgICAgICAgICAgIGNhc2UgXCJub3QtZXFcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geC52YWx1ZSA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgPyBgSVNfTlVMTCgke2t9KSA9IGZhbHNlYFxuICAgICAgICAgICAgICAgICAgOiBgJHtsa30gPD4gJHtsdn1gXG4gICAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICAgICAgICBjYXNlIFwiZXFcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geC52YWx1ZSA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgPyBgSVNfTlVMTCgke2t9KSA9IHRydWVgXG4gICAgICAgICAgICAgICAgICA6IGAke2xrfSA9ICR7bHZ9YFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgICAuam9pbihmaWx0ZXIubW9kZSA9PT0gXCJvclwiID8gXCIgT1IgXCIgOiBcIiBBTkQgXCIpXG4gICAgfVxuICAgICR7bG19YCxcbiAgICBwYXJhbWV0ZXJzOiBbXG4gICAgICB7IG5hbWU6IFwiQGlkXCIsIHZhbHVlOiBpbXBvcnRlZE1hcmtlcklkIH0sXG4gICAgICAuLi5maWx0ZXJcbiAgICAgICAgLndoZXJlXG4gICAgICAgIC5tYXAoKHgsIGkpID0+ICh7XG4gICAgICAgICAgbmFtZTogYEB2JHtpfWAsXG4gICAgICAgICAgdmFsdWU6IHgudmFsdWVcbiAgICAgICAgfSkpXG4gICAgXVxuICB9XG59XG5cbi8vIGZ1bmN0aW9uIGlzQXJyYXkodDogU3VwcG9ydGVkVmFsdWVzIHwgcmVhZG9ubHkgU3VwcG9ydGVkVmFsdWVzW10pOiB0IGlzIHJlYWRvbmx5IFN1cHBvcnRlZFZhbHVlc1tdIHtcbi8vICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodClcbi8vIH1cblxuZnVuY3Rpb24gbG93ZXJJZk5lZWRlZChrZXk6IHVua25vd24sIHZhbHVlOiB1bmtub3duKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyBgTE9XRVIoJHtrZXl9KWAgOiBgJHtrZXl9YFxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDb3Ntb3NRdWVyeTxQTT4oXG4gIGZpbHRlcjogTGVnYWN5RmlsdGVyPFBNPiB8IFN0b3JlV2hlcmVGaWx0ZXIsXG4gIG5hbWU6IHN0cmluZyxcbiAgaW1wb3J0ZWRNYXJrZXJJZDogc3RyaW5nLFxuICBza2lwPzogbnVtYmVyLFxuICBsaW1pdD86IG51bWJlclxuKSB7XG4gIHJldHVybiBmaWx0ZXIudHlwZSA9PT0gXCJzdGFydHNXaXRoXCJcbiAgICAgIHx8IGZpbHRlci50eXBlID09PSBcImVuZHNXaXRoXCJcbiAgICAgIHx8IGZpbHRlci50eXBlID09PSBcImNvbnRhaW5zXCJcbiAgICA/IGJ1aWxkTGVnYWN5Q29zbW9zUXVlcnkoZmlsdGVyLCBuYW1lLCBpbXBvcnRlZE1hcmtlcklkLCBza2lwLCBsaW1pdClcbiAgICA6IGJ1aWxkV2hlcmVDb3Ntb3NRdWVyeShmaWx0ZXIsIG5hbWUsIGltcG9ydGVkTWFya2VySWQsIHNraXAsIGxpbWl0KVxufVxuXG5jbGFzcyBDb3Ntb3NEYk9wZXJhdGlvbkVycm9yIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nKSB7fVxufVxuZXhwb3J0IGZ1bmN0aW9uIENvc21vc1N0b3JlTGl2ZShjb25maWc6IENvbmZpZzxTdG9yYWdlQ29uZmlnPikge1xuICByZXR1cm4gY29uZmlnLmNvbmZpZy5mbGF0TWFwKG1ha2VDb3Ntb3NTdG9yZSkudG9MYXllcihTdG9yZU1ha2VyKVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
acd0b034bacd357b1279f27a4bbbf4912c57d104f5a5fea36a26c9b16bc39356
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 0.75.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- @effect-app/core@0.58.4
|
|
9
|
+
- @effect-app/infra-adapters@0.51.4
|
|
10
|
+
- @effect-app/prelude@0.60.4
|
|
11
|
+
- @effect-app/schema@0.52.4
|
|
12
|
+
|
|
13
|
+
## 0.75.3
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [6b002041]
|
|
18
|
+
- Updated dependencies
|
|
19
|
+
- @effect-app/core@0.58.3
|
|
20
|
+
- @effect-app/infra-adapters@0.51.3
|
|
21
|
+
- @effect-app/prelude@0.60.3
|
|
22
|
+
- @effect-app/schema@0.52.3
|
|
23
|
+
|
|
3
24
|
## 0.75.2
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
|
@@ -18,10 +18,11 @@ var tsplus_module_6 = _interopRequireWildcard(require("@effect-app/prelude/_ext/
|
|
|
18
18
|
var tsplus_module_7 = _interopRequireWildcard(require("@effect-app/core/Array"));
|
|
19
19
|
var tsplus_module_8 = _interopRequireWildcard(require("effect/Chunk"));
|
|
20
20
|
var tsplus_module_9 = _interopRequireWildcard(require("@effect-app/core/Effect"));
|
|
21
|
-
var tsplus_module_10 = _interopRequireWildcard(require("effect/
|
|
22
|
-
var tsplus_module_11 = _interopRequireWildcard(require("
|
|
23
|
-
var tsplus_module_12 = _interopRequireWildcard(require("@effect-app/
|
|
24
|
-
var tsplus_module_13 = _interopRequireWildcard(require("@effect-app/
|
|
21
|
+
var tsplus_module_10 = _interopRequireWildcard(require("effect/ReadonlyArray"));
|
|
22
|
+
var tsplus_module_11 = _interopRequireWildcard(require("effect/Option"));
|
|
23
|
+
var tsplus_module_12 = _interopRequireWildcard(require("@effect-app/core/_ext/Iterable"));
|
|
24
|
+
var tsplus_module_13 = _interopRequireWildcard(require("@effect-app/infra/services/Repository"));
|
|
25
|
+
var tsplus_module_14 = _interopRequireWildcard(require("@effect-app/core/Function"));
|
|
25
26
|
var _Store = require("./Store.cjs");
|
|
26
27
|
var _codec = require("@effect-app/infra/api/codec");
|
|
27
28
|
var _filter = require("@effect-app/infra/filter");
|
|
@@ -74,11 +75,11 @@ function makeRepo() {
|
|
|
74
75
|
set
|
|
75
76
|
}) => items.map(_ => mapReverse(_, set))));
|
|
76
77
|
const parse = tsplus_module_5.condemnDie((0, _schema.EParserFor)(schema));
|
|
77
|
-
const all = tsplus_module_1.flatMap(allE, _ =>
|
|
78
|
+
const all = tsplus_module_1.flatMap(allE, _ => tsplus_module_12.ext_forEach(_, _ => parse(_)));
|
|
78
79
|
function findE(id) {
|
|
79
80
|
return tsplus_module_1.flatMap(store.find(id), items => tsplus_module_1.map(_Store.ContextMap, ({
|
|
80
81
|
set
|
|
81
|
-
}) =>
|
|
82
|
+
}) => tsplus_module_11.map(items, _ => mapReverse(_, set))));
|
|
82
83
|
}
|
|
83
84
|
function find(id) {
|
|
84
85
|
return tsplus_module_9.flatMapOption(findE(id), tsplus_module_5.condemnDie((0, _schema.EParserFor)(schema)));
|
|
@@ -87,7 +88,7 @@ function makeRepo() {
|
|
|
87
88
|
get,
|
|
88
89
|
set
|
|
89
90
|
}) => {
|
|
90
|
-
const items =
|
|
91
|
+
const items = tsplus_module_10.mapNonEmpty(a, _ => mapToPersistenceModel(_, get));
|
|
91
92
|
return tsplus_module_1.map(store.batchSet(items), ret => {
|
|
92
93
|
ret.forEach(_ => set(_.id, _._etag));
|
|
93
94
|
});
|
|
@@ -148,7 +149,7 @@ function makeRepo() {
|
|
|
148
149
|
* @tsplus fluent Repository removeById
|
|
149
150
|
*/
|
|
150
151
|
function removeById(self, id) {
|
|
151
|
-
return tsplus_module_1.flatMap(
|
|
152
|
+
return tsplus_module_1.flatMap(tsplus_module_13.get(self, id), _ => self.removeAndPublish([_]));
|
|
152
153
|
}
|
|
153
154
|
function makeWhere() {
|
|
154
155
|
const f_ = (0, _filter.makeFilters)();
|
|
@@ -172,7 +173,7 @@ function makeStore() {
|
|
|
172
173
|
const [_dec, encode] = (0, _codec.makeCodec)(schema);
|
|
173
174
|
function encodeToPM() {
|
|
174
175
|
const getEtag = () => undefined;
|
|
175
|
-
return
|
|
176
|
+
return tsplus_module_14.flow(encode, v => mapToPersistenceModel(v, getEtag));
|
|
176
177
|
}
|
|
177
178
|
function mapToPersistenceModel(e, getEtag) {
|
|
178
179
|
return mapTo(e, getEtag(e.id));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepositoryBase.cjs","names":["_Store","require","_codec","_filter","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interopRequireWildcard","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","RepositoryBase","itemType","RepositoryBaseC","constructor","flatMap","f","tsplus_module_1","map","makeLayer","svc","tsplus_module_2","succeed","where","makeWhere","tsplus_module_3","assignTag","exports","makeRepo","name","schema","mapFrom","mapTo","mapToPersistenceModel","e","getEtag","id","mapReverse","_etag","setEtag","mkStore","makeStore","make","publishEvents","makeInitial","config","store","allE","all","items","ContextMap","_","parse","tsplus_module_5","condemnDie","EParserFor","
|
|
1
|
+
{"version":3,"file":"RepositoryBase.cjs","names":["_Store","require","_codec","_filter","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_interopRequireWildcard","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","RepositoryBase","itemType","RepositoryBaseC","constructor","flatMap","f","tsplus_module_1","map","makeLayer","svc","tsplus_module_2","succeed","where","makeWhere","tsplus_module_3","assignTag","exports","makeRepo","name","schema","mapFrom","mapTo","mapToPersistenceModel","e","getEtag","id","mapReverse","_etag","setEtag","mkStore","makeStore","make","publishEvents","makeInitial","config","store","allE","all","items","ContextMap","_","parse","tsplus_module_5","condemnDie","EParserFor","tsplus_module_12","ext_forEach","findE","find","tsplus_module_11","tsplus_module_9","flatMapOption","saveAllE","a","sync","tsplus_module_7","CollectionToNonEmptyReadonlyArray","tsplus_module_10","mapNonEmpty","batchSet","ret","forEach","encode","tsplus_module_4","Encoder","for","saveAll","tsplus_module_8","ext_itToChunk","saveAndPublish","events","zipRight","removeAndPublish","gen","$","remove","undefined","r","utils","unsafe","Parser","filter","tsplus_module_6","flow","tap","removeById","self","tsplus_module_13","f_","makeFilters","makeFilter_","mode","m","Array","isArray","pluralize","s","endsWith","substring","length","_dec","makeCodec","encodeToPM","tsplus_module_14","v","StoreMaker","partitionValue","RepositoryBaseImpl","mkRepo","Cls","RepositoryDefaultImpl","toLayer","effect","impl","assign"],"sources":["../../_src/services/RepositoryBase.ts"],"sourcesContent":[null],"mappings":"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"}
|