@discordeno/bot 19.0.0-next.b61cabe → 19.0.0-next.bb6b8df
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/bot.cjs +9 -2
- package/dist/cjs/commandOptionsParser.cjs +1 -1
- package/dist/cjs/helpers.cjs +16 -1
- package/dist/cjs/transformers/interaction.cjs +7 -11
- package/dist/cjs/transformers/message.cjs +12 -1
- package/dist/cjs/transformers/scheduledEvent.cjs +28 -4
- package/dist/cjs/transformers/voiceState.cjs +2 -2
- package/dist/cjs/transformers.cjs +81 -156
- package/dist/cjs/typings.cjs +1 -1
- package/dist/esm/bot.js +9 -2
- package/dist/esm/commandOptionsParser.js +1 -1
- package/dist/esm/helpers.js +16 -1
- package/dist/esm/transformers/interaction.js +7 -11
- package/dist/esm/transformers/message.js +9 -1
- package/dist/esm/transformers/scheduledEvent.js +17 -1
- package/dist/esm/transformers/types.js +1 -1
- package/dist/esm/transformers/voiceState.js +2 -2
- package/dist/esm/transformers.js +80 -155
- package/dist/esm/typings.js +1 -1
- package/dist/types/bot.d.ts +13 -7
- package/dist/types/bot.d.ts.map +1 -1
- package/dist/types/commandOptionsParser.d.ts +11 -2
- package/dist/types/commandOptionsParser.d.ts.map +1 -1
- package/dist/types/helpers.d.ts +4 -1
- package/dist/types/helpers.d.ts.map +1 -1
- package/dist/types/transformers/interaction.d.ts.map +1 -1
- package/dist/types/transformers/message.d.ts +3 -2
- package/dist/types/transformers/message.d.ts.map +1 -1
- package/dist/types/transformers/scheduledEvent.d.ts +3 -2
- package/dist/types/transformers/scheduledEvent.d.ts.map +1 -1
- package/dist/types/transformers/types.d.ts +39 -9
- package/dist/types/transformers/types.d.ts.map +1 -1
- package/dist/types/transformers/voiceState.d.ts +2 -2
- package/dist/types/transformers/voiceState.d.ts.map +1 -1
- package/dist/types/transformers.d.ts +29 -7
- package/dist/types/transformers.d.ts.map +1 -1
- package/dist/types/typings.d.ts +1 -1
- package/dist/types/typings.d.ts.map +1 -1
- package/package.json +10 -10
|
@@ -168,17 +168,13 @@ export function transformInteractionDataResolved(bot, resolved, guildId) {
|
|
|
168
168
|
}));
|
|
169
169
|
}
|
|
170
170
|
if (resolved.channels) {
|
|
171
|
-
transformed.channels = new Collection(Object.entries(resolved.channels).map(([
|
|
172
|
-
const
|
|
173
|
-
|
|
171
|
+
transformed.channels = new Collection(Object.entries(resolved.channels).map(([_id, value])=>{
|
|
172
|
+
const channel = bot.transformers.channel(bot, {
|
|
173
|
+
channel: value
|
|
174
|
+
});
|
|
174
175
|
return [
|
|
175
|
-
id,
|
|
176
|
-
|
|
177
|
-
id,
|
|
178
|
-
name: channel.name,
|
|
179
|
-
type: channel.type,
|
|
180
|
-
permissions: bot.transformers.snowflake(channel.permissions)
|
|
181
|
-
}
|
|
176
|
+
channel.id,
|
|
177
|
+
channel
|
|
182
178
|
];
|
|
183
179
|
}));
|
|
184
180
|
}
|
|
@@ -194,4 +190,4 @@ export function transformInteractionDataResolved(bot, resolved, guildId) {
|
|
|
194
190
|
return transformed;
|
|
195
191
|
}
|
|
196
192
|
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDaGFubmVsVHlwZXMsXG4gIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLFxuICBJbnRlcmFjdGlvblR5cGVzLFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHtcbiAgdHlwZSBCb3QsXG4gIHR5cGUgRGlzY29yZENoYW5uZWwsXG4gIHR5cGUgSW50ZXJhY3Rpb24sXG4gIHR5cGUgSW50ZXJhY3Rpb25EYXRhT3B0aW9uLFxuICB0eXBlIEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIE1lbWJlcixcbiAgdHlwZSBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcbmltcG9ydCB0eXBlIHsgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkIH0gZnJvbSAnLi4vdHlwaW5ncy5qcydcblxuY29uc3QgYmFzZUludGVyYWN0aW9uID0ge1xuICBhc3luYyByZXNwb25kKHJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgbGV0IHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlXG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGEgc3RyaW5nLCBjaGFuZ2UgaXQgdG8gYSByZXNwb25zZSBvYmplY3RcbiAgICBpZiAodHlwZW9mIHJlc3BvbnNlID09PSAnc3RyaW5nJykgcmVzcG9uc2UgPSB7IGNvbnRlbnQ6IHJlc3BvbnNlIH1cblxuICAgIC8vIElmIHVzZXIgcHJvdmlkZXMgYW4gb2JqZWN0LCBkZXRlcm1pbmUgaWYgaXQgc2hvdWxkIGJlIGFuIGF1dG9jb21wbGV0ZSBvciBhIG1vZGFsIHJlc3BvbnNlXG4gICAgaWYgKHJlc3BvbnNlLnRpdGxlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0XG4gICAgaWYgKHR5cGUgPT09IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5DaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UgJiYgb3B0aW9ucz8uaXNQcml2YXRlKSByZXNwb25zZS5mbGFncyA9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcblxuICAgIC8vIFNpbmNlIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBnaXZlbiBhIHJlc3BvbnNlLCBhbnkgZnVydGhlciByZXNwb25zZXMgbXVzdCBiZSBmb2xsb3d1cHMuXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIHJlc3BvbnNlKVxuXG4gICAgLy8gTW9kYWxzIGNhbm5vdCBiZSBjaGFpbmVkXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdCAmJiB0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuTW9kYWwpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCByZXNwb25kIHRvIGEgbW9kYWwgaW50ZXJhY3Rpb24gd2l0aCBhbm90aGVyIG1vZGFsLicpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7IHR5cGUsIGRhdGE6IHJlc3BvbnNlIH0pXG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBpbnRlcmFjdGlvbiBoYXMgbm90IGJlZW4gcmVzcG9uZGVkIHRvIHlldCBhbmQgdGhpcyBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgaW50ZXJhY3Rpb24uXCIpXG5cbiAgICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCwgdGhpcy50b2tlbiwgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuVXBkYXRlTWVzc2FnZSwgZGF0YTogcmVzcG9uc2UgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5lZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4sIHJlc3BvbnNlKVxuICB9LFxuICBhc3luYyBkZWZlckVkaXQoKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50KVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRlZmVyIHRvIHRoZW4gZWRpdCBhbiBpbnRlcmFjdGlvbiB0aGF0IGlzbid0IGEgTWVzc2FnZUNvbXBvbmVudCBpbnRlcmFjdGlvbi5cIilcblxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMuaWQsIHRoaXMudG9rZW4sIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkVXBkYXRlTWVzc2FnZSB9KVxuICB9LFxuICBhc3luYyBkZWZlcihpc1ByaXZhdGUpIHtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7XG4gICAgICB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KVxuICB9LFxuICBhc3luYyBkZWxldGUobWVzc2FnZUlkKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlbGV0ZSBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24nKVxuXG4gICAgaWYgKG1lc3NhZ2VJZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90Py5oZWxwZXJzLmRlbGV0ZUZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQpXG4gICAgZWxzZSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4pXG4gIH0sXG59IGFzIEludGVyYWN0aW9uXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbihib3Q6IEJvdCwgcGF5bG9hZDogeyBpbnRlcmFjdGlvbjogRGlzY29yZEludGVyYWN0aW9uOyBzaGFyZElkOiBudW1iZXIgfSk6IEludGVyYWN0aW9uIHtcbiAgY29uc3QgZ3VpbGRJZCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXI/LnVzZXIgPz8gcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyISlcblxuICBjb25zdCBpbnRlcmFjdGlvbjogSW50ZXJhY3Rpb24gPSBPYmplY3QuY3JlYXRlKGJhc2VJbnRlcmFjdGlvbilcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uXG4gIGludGVyYWN0aW9uLmJvdCA9IGJvdFxuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmlkKSBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gICAgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZVxuICBpZiAocHJvcHMudG9rZW4gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50b2tlbikgaW50ZXJhY3Rpb24udG9rZW4gPSBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuXG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvblxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmxvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGRMb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGUpIGludGVyYWN0aW9uLmd1aWxkTG9jYWxlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkIGlzIGEgUGFydGlhbDxEaXNjb3JkR3VpbGQ+XG4gICAgaW50ZXJhY3Rpb24uZ3VpbGQgPSBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIGludGVyYWN0aW9uLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSB1c2VyXG4gIGlmIChwcm9wcy5hcHBQZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmFwcF9wZXJtaXNzaW9ucylcbiAgICBpbnRlcmFjdGlvbi5hcHBQZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpIGludGVyYWN0aW9uLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpXG4gIGlmIChwcm9wcy5jaGFubmVsICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbClcbiAgICBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWwgYXMgRGlzY29yZENoYW5uZWwsIGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWxfaWQpIGludGVyYWN0aW9uLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKVxuICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHVzZXIuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzKSB7XG4gICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG5cbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5jb250ZXh0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dCkgaW50ZXJhY3Rpb24uY29udGV4dCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dFxuICBpZiAocHJvcHMuZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEpIHtcbiAgICBpbnRlcmFjdGlvbi5kYXRhID0ge1xuICAgICAgdHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnR5cGUsXG4gICAgICBjb21wb25lbnRUeXBlOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50X3R5cGUsXG4gICAgICBjdXN0b21JZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmN1c3RvbV9pZCxcbiAgICAgIGNvbXBvbmVudHM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jb21wb25lbnRzPy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKSxcbiAgICAgIHZhbHVlczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnZhbHVlcyxcbiAgICAgIGlkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQpIDogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm5hbWUsXG4gICAgICByZXNvbHZlZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkID8gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQsIGd1aWxkSWQpIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgICAvLyBndWlsZElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuZ3VpbGRfaWQpIDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uKGJvdCwgcGF5bG9hZCwgaW50ZXJhY3Rpb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24oYm90OiBCb3QsIG9wdGlvbjogRGlzY29yZEludGVyYWN0aW9uRGF0YU9wdGlvbik6IEludGVyYWN0aW9uRGF0YU9wdGlvbiB7XG4gIGNvbnN0IG9wdCA9IHtcbiAgICBuYW1lOiBvcHRpb24ubmFtZSxcbiAgICB0eXBlOiBvcHRpb24udHlwZSxcbiAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgIG9wdGlvbnM6IG9wdGlvbi5vcHRpb25zLFxuICAgIGZvY3VzZWQ6IG9wdGlvbi5mb2N1c2VkLFxuICB9IGFzIEludGVyYWN0aW9uRGF0YU9wdGlvblxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHRpb24sIG9wdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdDogQm90LCByZXNvbHZlZDogRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLCBndWlsZElkPzogYmlnaW50KTogSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQge1xuICBjb25zdCB0cmFuc2Zvcm1lZDogSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQgPSB7fVxuXG4gIGlmIChyZXNvbHZlZC5tZXNzYWdlcykge1xuICAgIHRyYW5zZm9ybWVkLm1lc3NhZ2VzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZC5tZXNzYWdlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHZhbHVlKVxuICAgICAgICByZXR1cm4gW21lc3NhZ2UuaWQsIG1lc3NhZ2VdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocmVzb2x2ZWQudXNlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC51c2VycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWQudXNlcnMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFt1c2VyLmlkLCB1c2VyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKGd1aWxkSWQgJiYgcmVzb2x2ZWQubWVtYmVycykge1xuICAgIHRyYW5zZm9ybWVkLm1lbWJlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLm1lbWJlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVtYmVyOiBNZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHZhbHVlLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gICAgICAgIHJldHVybiBbbWVtYmVyLmlkLCBtZW1iZXJdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAoZ3VpbGRJZCAmJiByZXNvbHZlZC5yb2xlcykge1xuICAgIHRyYW5zZm9ybWVkLnJvbGVzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZC5yb2xlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogdmFsdWUsIGd1aWxkSWQgfSlcbiAgICAgICAgcmV0dXJuIFtyb2xlLmlkLCByb2xlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHJlc29sdmVkLmNoYW5uZWxzKSB7XG4gICAgdHJhbnNmb3JtZWQuY2hhbm5lbHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLmNoYW5uZWxzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSlcbiAgICAgICAgY29uc3QgY2hhbm5lbCA9IHZhbHVlIGFzIHtcbiAgICAgICAgICBpZDogc3RyaW5nXG4gICAgICAgICAgbmFtZTogc3RyaW5nXG4gICAgICAgICAgdHlwZTogQ2hhbm5lbFR5cGVzXG4gICAgICAgICAgcGVybWlzc2lvbnM6IHN0cmluZ1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgaWQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBuYW1lOiBjaGFubmVsLm5hbWUsXG4gICAgICAgICAgICB0eXBlOiBjaGFubmVsLnR5cGUsXG4gICAgICAgICAgICBwZXJtaXNzaW9uczogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoY2hhbm5lbC5wZXJtaXNzaW9ucyksXG4gICAgICAgICAgfSxcbiAgICAgICAgXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHJlc29sdmVkLmF0dGFjaG1lbnRzKSB7XG4gICAgdHJhbnNmb3JtZWQuYXR0YWNobWVudHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLmF0dGFjaG1lbnRzKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGtleSlcbiAgICAgICAgcmV0dXJuIFtpZCwgYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgdmFsdWUpXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkXG59XG4iXSwibmFtZXMiOlsiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzIiwiSW50ZXJhY3Rpb25UeXBlcyIsIk1lc3NhZ2VGbGFncyIsIkNvbGxlY3Rpb24iLCJiYXNlSW50ZXJhY3Rpb24iLCJyZXNwb25kIiwicmVzcG9uc2UiLCJvcHRpb25zIiwidHlwZSIsIkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImNvbnRlbnQiLCJ0aXRsZSIsIk1vZGFsIiwiQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlIiwiQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0IiwiaXNQcml2YXRlIiwiZmxhZ3MiLCJFcGhlbWVyYWwiLCJhY2tub3dsZWRnZWQiLCJib3QiLCJoZWxwZXJzIiwic2VuZEZvbGxvd3VwTWVzc2FnZSIsInRva2VuIiwiTW9kYWxTdWJtaXQiLCJFcnJvciIsInNlbmRJbnRlcmFjdGlvblJlc3BvbnNlIiwiaWQiLCJkYXRhIiwiZWRpdCIsIm1lc3NhZ2VJZCIsImVkaXRGb2xsb3d1cE1lc3NhZ2UiLCJNZXNzYWdlQ29tcG9uZW50IiwiVXBkYXRlTWVzc2FnZSIsImVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJkZWZlckVkaXQiLCJEZWZlcnJlZFVwZGF0ZU1lc3NhZ2UiLCJkZWZlciIsIkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwidW5kZWZpbmVkIiwiZGVsZXRlIiwiZGVsZXRlRm9sbG93dXBNZXNzYWdlIiwiZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwidHJhbnNmb3JtSW50ZXJhY3Rpb24iLCJwYXlsb2FkIiwiZ3VpbGRJZCIsImludGVyYWN0aW9uIiwiZ3VpbGRfaWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJ1c2VyIiwibWVtYmVyIiwiT2JqZWN0IiwiY3JlYXRlIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsInZlcnNpb24iLCJsb2NhbGUiLCJndWlsZExvY2FsZSIsImd1aWxkX2xvY2FsZSIsImd1aWxkIiwic2hhcmRJZCIsImFwcFBlcm1pc3Npb25zIiwiYXBwX3Blcm1pc3Npb25zIiwibWVzc2FnZSIsImNoYW5uZWwiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwiYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyIsImF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycyIsIkd1aWxkSW5zdGFsbCIsIlVzZXJJbnN0YWxsIiwiY29udGV4dCIsImNvbXBvbmVudFR5cGUiLCJjb21wb25lbnRfdHlwZSIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwiY29tcG9uZW50cyIsIm1hcCIsImNvbXBvbmVudCIsInZhbHVlcyIsIm5hbWUiLCJyZXNvbHZlZCIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwib3B0IiwiaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyIsInRhcmdldElkIiwidGFyZ2V0X2lkIiwiY3VzdG9taXplcnMiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24iLCJvcHRpb24iLCJ2YWx1ZSIsImZvY3VzZWQiLCJ0cmFuc2Zvcm1lZCIsIm1lc3NhZ2VzIiwiZW50cmllcyIsIl9pZCIsInVzZXJzIiwibWVtYmVycyIsInJvbGVzIiwicm9sZSIsImNoYW5uZWxzIiwia2V5IiwicGVybWlzc2lvbnMiLCJhdHRhY2htZW50cyIsImF0dGFjaG1lbnQiXSwibWFwcGluZ3MiOiJBQUFBLFNBRUVBLGlDQUFpQyxFQUdqQ0Msd0JBQXdCLEVBQ3hCQyxnQkFBZ0IsRUFDaEJDLFlBQVksUUFDUCxvQkFBbUI7QUFDMUIsU0FBU0MsVUFBVSxRQUFRLG9CQUFtQjtBQVk5QyxNQUFNQyxrQkFBa0I7SUFDdEIsTUFBTUMsU0FBUUMsUUFBUSxFQUFFQyxPQUFPO1FBQzdCLElBQUlDLE9BQU9SLHlCQUF5QlMsd0JBQXdCO1FBRTVELDREQUE0RDtRQUM1RCxJQUFJLE9BQU9ILGFBQWEsVUFBVUEsV0FBVztZQUFFSSxTQUFTSjtRQUFTO1FBRWpFLDRGQUE0RjtRQUM1RixJQUFJQSxTQUFTSyxLQUFLLEVBQUVILE9BQU9SLHlCQUF5QlksS0FBSztRQUN6RCxJQUFJLElBQUksQ0FBQ0osSUFBSSxLQUFLUCxpQkFBaUJZLDhCQUE4QixFQUFFTCxPQUFPUix5QkFBeUJjLG9DQUFvQztRQUN2SSxJQUFJTixTQUFTUix5QkFBeUJTLHdCQUF3QixJQUFJRixTQUFTUSxXQUFXVCxTQUFTVSxLQUFLLEdBQUdkLGFBQWFlLFNBQVM7UUFFN0gseUZBQXlGO1FBQ3pGLElBQUksSUFBSSxDQUFDQyxZQUFZLEVBQUUsT0FBTyxNQUFNLElBQUksQ0FBQ0MsR0FBRyxDQUFDQyxPQUFPLENBQUNDLG1CQUFtQixDQUFDLElBQUksQ0FBQ0MsS0FBSyxFQUFFaEI7UUFFckYsMkJBQTJCO1FBQzNCLElBQUksSUFBSSxDQUFDRSxJQUFJLEtBQUtQLGlCQUFpQnNCLFdBQVcsSUFBSWYsU0FBU1IseUJBQXlCWSxLQUFLLEVBQ3ZGLE1B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
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDaGFubmVsVHlwZXMsXG4gIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLFxuICBJbnRlcmFjdGlvblR5cGVzLFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHtcbiAgdHlwZSBCb3QsXG4gIHR5cGUgRGlzY29yZENoYW5uZWwsXG4gIHR5cGUgSW50ZXJhY3Rpb24sXG4gIHR5cGUgSW50ZXJhY3Rpb25EYXRhT3B0aW9uLFxuICB0eXBlIEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICB0eXBlIE1lbWJlcixcbiAgdHlwZSBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcbmltcG9ydCB0eXBlIHsgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkIH0gZnJvbSAnLi4vdHlwaW5ncy5qcydcblxuY29uc3QgYmFzZUludGVyYWN0aW9uID0ge1xuICBhc3luYyByZXNwb25kKHJlc3BvbnNlLCBvcHRpb25zKSB7XG4gICAgbGV0IHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlXG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGEgc3RyaW5nLCBjaGFuZ2UgaXQgdG8gYSByZXNwb25zZSBvYmplY3RcbiAgICBpZiAodHlwZW9mIHJlc3BvbnNlID09PSAnc3RyaW5nJykgcmVzcG9uc2UgPSB7IGNvbnRlbnQ6IHJlc3BvbnNlIH1cblxuICAgIC8vIElmIHVzZXIgcHJvdmlkZXMgYW4gb2JqZWN0LCBkZXRlcm1pbmUgaWYgaXQgc2hvdWxkIGJlIGFuIGF1dG9jb21wbGV0ZSBvciBhIG1vZGFsIHJlc3BvbnNlXG4gICAgaWYgKHJlc3BvbnNlLnRpdGxlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHR5cGUgPSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlUmVzdWx0XG4gICAgaWYgKHR5cGUgPT09IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5DaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UgJiYgb3B0aW9ucz8uaXNQcml2YXRlKSByZXNwb25zZS5mbGFncyA9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcblxuICAgIC8vIFNpbmNlIHRoaXMgaGFzIGFscmVhZHkgYmVlbiBnaXZlbiBhIHJlc3BvbnNlLCBhbnkgZnVydGhlciByZXNwb25zZXMgbXVzdCBiZSBmb2xsb3d1cHMuXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIHJlc3BvbnNlKVxuXG4gICAgLy8gTW9kYWxzIGNhbm5vdCBiZSBjaGFpbmVkXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdCAmJiB0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuTW9kYWwpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCByZXNwb25kIHRvIGEgbW9kYWwgaW50ZXJhY3Rpb24gd2l0aCBhbm90aGVyIG1vZGFsLicpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7IHR5cGUsIGRhdGE6IHJlc3BvbnNlIH0pXG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudClcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBpbnRlcmFjdGlvbiBoYXMgbm90IGJlZW4gcmVzcG9uZGVkIHRvIHlldCBhbmQgdGhpcyBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgaW50ZXJhY3Rpb24uXCIpXG5cbiAgICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCwgdGhpcy50b2tlbiwgeyB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuVXBkYXRlTWVzc2FnZSwgZGF0YTogcmVzcG9uc2UgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5lZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4sIHJlc3BvbnNlKVxuICB9LFxuICBhc3luYyBkZWZlckVkaXQoKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50KVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRlZmVyIHRvIHRoZW4gZWRpdCBhbiBpbnRlcmFjdGlvbiB0aGF0IGlzbid0IGEgTWVzc2FnZUNvbXBvbmVudCBpbnRlcmFjdGlvbi5cIilcblxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMuaWQsIHRoaXMudG9rZW4sIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkVXBkYXRlTWVzc2FnZSB9KVxuICB9LFxuICBhc3luYyBkZWZlcihpc1ByaXZhdGUpIHtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7XG4gICAgICB0eXBlOiBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KVxuICB9LFxuICBhc3luYyBkZWxldGUobWVzc2FnZUlkKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlbGV0ZSBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24nKVxuXG4gICAgaWYgKG1lc3NhZ2VJZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90Py5oZWxwZXJzLmRlbGV0ZUZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQpXG4gICAgZWxzZSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRoaXMudG9rZW4pXG4gIH0sXG59IGFzIEludGVyYWN0aW9uXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbihib3Q6IEJvdCwgcGF5bG9hZDogeyBpbnRlcmFjdGlvbjogRGlzY29yZEludGVyYWN0aW9uOyBzaGFyZElkOiBudW1iZXIgfSk6IEludGVyYWN0aW9uIHtcbiAgY29uc3QgZ3VpbGRJZCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXI/LnVzZXIgPz8gcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyISlcblxuICBjb25zdCBpbnRlcmFjdGlvbjogSW50ZXJhY3Rpb24gPSBPYmplY3QuY3JlYXRlKGJhc2VJbnRlcmFjdGlvbilcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uXG4gIGludGVyYWN0aW9uLmJvdCA9IGJvdFxuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmlkKSBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gICAgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZVxuICBpZiAocHJvcHMudG9rZW4gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50b2tlbikgaW50ZXJhY3Rpb24udG9rZW4gPSBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuXG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvblxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmxvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGRMb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGUpIGludGVyYWN0aW9uLmd1aWxkTG9jYWxlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkIGlzIGEgUGFydGlhbDxEaXNjb3JkR3VpbGQ+XG4gICAgaW50ZXJhY3Rpb24uZ3VpbGQgPSBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIGludGVyYWN0aW9uLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSB1c2VyXG4gIGlmIChwcm9wcy5hcHBQZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmFwcF9wZXJtaXNzaW9ucylcbiAgICBpbnRlcmFjdGlvbi5hcHBQZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpIGludGVyYWN0aW9uLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpXG4gIGlmIChwcm9wcy5jaGFubmVsICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbClcbiAgICBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWwgYXMgRGlzY29yZENoYW5uZWwsIGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWxfaWQpIGludGVyYWN0aW9uLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKVxuICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHVzZXIuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzKSB7XG4gICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG5cbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5jb250ZXh0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dCkgaW50ZXJhY3Rpb24uY29udGV4dCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dFxuICBpZiAocHJvcHMuZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEpIHtcbiAgICBpbnRlcmFjdGlvbi5kYXRhID0ge1xuICAgICAgdHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnR5cGUsXG4gICAgICBjb21wb25lbnRUeXBlOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50X3R5cGUsXG4gICAgICBjdXN0b21JZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmN1c3RvbV9pZCxcbiAgICAgIGNvbXBvbmVudHM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jb21wb25lbnRzPy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKSxcbiAgICAgIHZhbHVlczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnZhbHVlcyxcbiAgICAgIGlkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQpIDogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm5hbWUsXG4gICAgICByZXNvbHZlZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkID8gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQsIGd1aWxkSWQpIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgICAvLyBndWlsZElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuZ3VpbGRfaWQpIDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uKGJvdCwgcGF5bG9hZCwgaW50ZXJhY3Rpb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24oYm90OiBCb3QsIG9wdGlvbjogRGlzY29yZEludGVyYWN0aW9uRGF0YU9wdGlvbik6IEludGVyYWN0aW9uRGF0YU9wdGlvbiB7XG4gIGNvbnN0IG9wdCA9IHtcbiAgICBuYW1lOiBvcHRpb24ubmFtZSxcbiAgICB0eXBlOiBvcHRpb24udHlwZSxcbiAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgIG9wdGlvbnM6IG9wdGlvbi5vcHRpb25zLFxuICAgIGZvY3VzZWQ6IG9wdGlvbi5mb2N1c2VkLFxuICB9IGFzIEludGVyYWN0aW9uRGF0YU9wdGlvblxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHRpb24sIG9wdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdDogQm90LCByZXNvbHZlZDogRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLCBndWlsZElkPzogYmlnaW50KTogSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQge1xuICBjb25zdCB0cmFuc2Zvcm1lZDogSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQgPSB7fVxuXG4gIGlmIChyZXNvbHZlZC5tZXNzYWdlcykge1xuICAgIHRyYW5zZm9ybWVkLm1lc3NhZ2VzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZC5tZXNzYWdlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHZhbHVlKVxuICAgICAgICByZXR1cm4gW21lc3NhZ2UuaWQsIG1lc3NhZ2VdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocmVzb2x2ZWQudXNlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC51c2VycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWQudXNlcnMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFt1c2VyLmlkLCB1c2VyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKGd1aWxkSWQgJiYgcmVzb2x2ZWQubWVtYmVycykge1xuICAgIHRyYW5zZm9ybWVkLm1lbWJlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLm1lbWJlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVtYmVyOiBNZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHZhbHVlLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gICAgICAgIHJldHVybiBbbWVtYmVyLmlkLCBtZW1iZXJdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAoZ3VpbGRJZCAmJiByZXNvbHZlZC5yb2xlcykge1xuICAgIHRyYW5zZm9ybWVkLnJvbGVzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhyZXNvbHZlZC5yb2xlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogdmFsdWUsIGd1aWxkSWQgfSlcbiAgICAgICAgcmV0dXJuIFtyb2xlLmlkLCByb2xlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHJlc29sdmVkLmNoYW5uZWxzKSB7XG4gICAgdHJhbnNmb3JtZWQuY2hhbm5lbHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHJlc29sdmVkLmNoYW5uZWxzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBjaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiB2YWx1ZSB9KSBhcyBJbnRlcmFjdGlvblJlc29sdmVkQ2hhbm5lbFxuICAgICAgICByZXR1cm4gW2NoYW5uZWwuaWQsIGNoYW5uZWxdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocmVzb2x2ZWQuYXR0YWNobWVudHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5hdHRhY2htZW50cyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWQuYXR0YWNobWVudHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KVxuICAgICAgICByZXR1cm4gW2lkLCBib3QudHJhbnNmb3JtZXJzLmF0dGFjaG1lbnQoYm90LCB2YWx1ZSldXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICByZXR1cm4gdHJhbnNmb3JtZWRcbn1cbiJdLCJuYW1lcyI6WyJEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUiLCJJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMiLCJJbnRlcmFjdGlvblR5cGVzIiwiTWVzc2FnZUZsYWdzIiwiQ29sbGVjdGlvbiIsImJhc2VJbnRlcmFjdGlvbiIsInJlc3BvbmQiLCJyZXNwb25zZSIsIm9wdGlvbnMiLCJ0eXBlIiwiQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwiY29udGVudCIsInRpdGxlIiwiTW9kYWwiLCJBcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUiLCJBcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGVSZXN1bHQiLCJpc1ByaXZhdGUiLCJmbGFncyIsIkVwaGVtZXJhbCIsImFja25vd2xlZGdlZCIsImJvdCIsImhlbHBlcnMiLCJzZW5kRm9sbG93dXBNZXNzYWdlIiwidG9rZW4iLCJNb2RhbFN1Ym1pdCIsIkVycm9yIiwic2VuZEludGVyYWN0aW9uUmVzcG9uc2UiLCJpZCIsImRhdGEiLCJlZGl0IiwibWVzc2FnZUlkIiwiZWRpdEZvbGxvd3VwTWVzc2FnZSIsIk1lc3NhZ2VDb21wb25lbnQiLCJVcGRhdGVNZXNzYWdlIiwiZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImRlZmVyRWRpdCIsIkRlZmVycmVkVXBkYXRlTWVzc2FnZSIsImRlZmVyIiwiRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJ1bmRlZmluZWQiLCJkZWxldGUiLCJkZWxldGVGb2xsb3d1cE1lc3NhZ2UiLCJkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbiIsInBheWxvYWQiLCJndWlsZElkIiwiaW50ZXJhY3Rpb24iLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXIiLCJtZW1iZXIiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwidmVyc2lvbiIsImxvY2FsZSIsImd1aWxkTG9jYWxlIiwiZ3VpbGRfbG9jYWxlIiwiZ3VpbGQiLCJzaGFyZElkIiwiYXBwUGVybWlzc2lvbnMiLCJhcHBfcGVybWlzc2lvbnMiLCJtZXNzYWdlIiwiY2hhbm5lbCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJjb250ZXh0IiwiY29tcG9uZW50VHlwZSIsImNvbXBvbmVudF90eXBlIiwiY3VzdG9tSWQiLCJjdXN0b21faWQiLCJjb21wb25lbnRzIiwibWFwIiwiY29tcG9uZW50IiwidmFsdWVzIiwibmFtZSIsInJlc29sdmVkIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQiLCJvcHQiLCJpbnRlcmFjdGlvbkRhdGFPcHRpb25zIiwidGFyZ2V0SWQiLCJ0YXJnZXRfaWQiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbiIsIm9wdGlvbiIsInZhbHVlIiwiZm9jdXNlZCIsInRyYW5zZm9ybWVkIiwibWVzc2FnZXMiLCJlbnRyaWVzIiwiX2lkIiwidXNlcnMiLCJtZW1iZXJzIiwicm9sZXMiLCJyb2xlIiwiY2hhbm5lbHMiLCJhdHRhY2htZW50cyIsImtleSIsImF0dGFjaG1lbnQiXSwibWFwcGluZ3MiOiJBQUFBLFNBRUVBLGlDQUFpQyxFQUdqQ0Msd0JBQXdCLEVBQ3hCQyxnQkFBZ0IsRUFD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
|
|
@@ -181,6 +181,8 @@ export function transformMessage(bot, payload) {
|
|
|
181
181
|
}
|
|
182
182
|
message.messageReference = reference;
|
|
183
183
|
}
|
|
184
|
+
if (props.referencedMessage && payload.referenced_message) message.referencedMessage = bot.transformers.message(bot, payload.referenced_message);
|
|
185
|
+
if (props.messageSnapshots && payload.message_snapshots) message.messageSnapshots = payload.message_snapshots.map((snap)=>bot.transformers.messageSnapshot(bot, snap));
|
|
184
186
|
if (props.nonce && payload.nonce) message.nonce = payload.nonce;
|
|
185
187
|
if (payload.pinned) message.pinned = true;
|
|
186
188
|
if (props.reactions && payload.reactions?.length) {
|
|
@@ -212,6 +214,12 @@ export function transformMessage(bot, payload) {
|
|
|
212
214
|
if (props.call && payload.call) message.call = bot.transformers.messageCall(bot, payload.call);
|
|
213
215
|
return bot.transformers.customizers.message(bot, payload, message);
|
|
214
216
|
}
|
|
217
|
+
export function transformMessageSnapshot(bot, payload) {
|
|
218
|
+
const props = bot.transformers.desiredProperties.messageSnapshot;
|
|
219
|
+
const messageSnapshot = {};
|
|
220
|
+
if (props.message && payload.message) messageSnapshot.message = bot.transformers.message(bot, payload.message);
|
|
221
|
+
return bot.transformers.customizers.messageSnapshot(bot, payload, messageSnapshot);
|
|
222
|
+
}
|
|
215
223
|
export function transformMessageInteractionMetadata(bot, payload) {
|
|
216
224
|
const props = bot.transformers.desiredProperties.messageInteractionMetadata;
|
|
217
225
|
const metadata = {};
|
|
@@ -236,4 +244,4 @@ export function transformMessageCall(bot, payload) {
|
|
|
236
244
|
return bot.transformers.customizers.messageCall(bot, payload, call);
|
|
237
245
|
}
|
|
238
246
|
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2UsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDYWxsLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgTWVzc2FnZUZsYWdzLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENIQU5ORUxfTUVOVElPTl9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy5qcydcbmltcG9ydCB7IHR5cGUgQm90LCB0eXBlIE1lc3NhZ2UsIHR5cGUgTWVzc2FnZUNhbGwsIHR5cGUgTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsIHNub3dmbGFrZVRvVGltZXN0YW1wIH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcydcblxuY29uc3QgRU1QVFlfU1RSSU5HID0gJydcblxuY29uc3QgYmFzZU1lc3NhZ2UgPSB7XG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59IGFzIE1lc3NhZ2VcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2UoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlKTogTWVzc2FnZSB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCkgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hdXRob3IuaWQpXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQuZmxhZ3MpXG5cbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VcblxuICBpZiAocHJvcHMuYXV0aG9yICYmIHBheWxvYWQuYXV0aG9yKSBtZXNzYWdlLmF1dGhvciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMuYXR0YWNobWVudHMgJiYgcGF5bG9hZC5hdHRhY2htZW50cz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UuYXR0YWNobWVudHMgPSBwYXlsb2FkLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBtZXNzYWdlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzPy5sZW5ndGgpIG1lc3NhZ2UuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXApID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcCkpXG4gIGlmIChwcm9wcy5jb250ZW50ICYmIHBheWxvYWQuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50ID8/IEVNUFRZX1NUUklOR1xuICBpZiAocHJvcHMuZWRpdGVkVGltZXN0YW1wICYmIHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcCkgbWVzc2FnZS5lZGl0ZWRUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLmVtYmVkcz8ubGVuZ3RoKSBtZXNzYWdlLmVtYmVkcyA9IHBheWxvYWQuZW1iZWRzLm1hcCgoZW1iZWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW1iZWQoYm90LCBlbWJlZCkpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lc3NhZ2UuZ3VpbGRJZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb25NZXRhZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICAgIG1lc3NhZ2UuaW50ZXJhY3Rpb25NZXRhZGF0YSA9IHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgaWYgKHByb3BzLmludGVyYWN0aW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24pIHtcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IHt9IGFzIE5vbk51bGxhYmxlPE1lc3NhZ2VbJ2ludGVyYWN0aW9uJ10+XG4gICAgY29uc3QgbWVzc2FnZUludGVyYWN0aW9uUHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VJbnRlcmFjdGlvblxuXG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLmlkKSB7XG4gICAgICBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5tZW1iZXIgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIpIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogcGFydGlhbCAtIGNoZWNrIHdoeSB0aGlzIGlzIHBhcnRpYWwgYW5kIGhhbmRsZSBhcyBuZWVkZWRcbiAgICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHBheWxvYWQuaW50ZXJhY3Rpb24udXNlci5pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLm5hbWUpIHtcbiAgICAgIGludGVyYWN0aW9uLm5hbWUgPSBwYXlsb2FkLmludGVyYWN0aW9uLm5hbWVcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLnR5cGUpIHtcbiAgICAgIGludGVyYWN0aW9uLnR5cGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLnR5cGVcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLnVzZXIpIHtcbiAgICAgIGludGVyYWN0aW9uLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uXG4gIH1cbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQubWVtYmVyKSBtZXNzYWdlLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5tZW1iZXIsIGd1aWxkSWQsIHVzZXJJZClcbiAgaWYgKHBheWxvYWQubWVudGlvbl9ldmVyeW9uZSkgbWVzc2FnZS5tZW50aW9uRXZlcnlvbmUgPSB0cnVlXG4gIGlmIChwcm9wcy5tZW50aW9uZWRDaGFubmVsSWRzICYmIHBheWxvYWQubWVudGlvbl9jaGFubmVscz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5tZW50aW9uZWRDaGFubmVsSWRzID0gW1xuICAgICAgLy8gS2VlcCBhbnkgaWRzIHRodCBkaXNjb3JkIHNlbmRzXG4gICAgICAuLi4ocGF5bG9hZC5tZW50aW9uX2NoYW5uZWxzID8/IFtdKS5tYXAoKG0pID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG0uaWQpKSxcbiAgICAgIC8vIEFkZCBhbnkgb3RoZXIgaWRzIHRoYXQgY2FuIGJlIHZhbGlkYXRlZCBpbiBhIGNoYW5uZWwgbWVudGlvbiBmb3JtYXRcbiAgICAgIC4uLihwYXlsb2FkLmNvbnRlbnQ/Lm1hdGNoKENIQU5ORUxfTUVOVElPTl9SRUdFWCkgPz8gW10pLm1hcCgodGV4dCkgPT5cbiAgICAgICAgLy8gY29udmVydHMgdGhlIDwjMTIzPiBpbnRvIDEyM1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh0ZXh0LnN1YnN0cmluZygyLCB0ZXh0Lmxlbmd0aCAtIDEpKSxcbiAgICAgICksXG4gICAgXVxuICB9XG4gIGlmIChwcm9wcy5tZW50aW9uZWRSb2xlSWRzICYmIHBheWxvYWQubWVudGlvbl9yb2xlcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UubWVudGlvbmVkUm9sZUlkcyA9IHBheWxvYWQubWVudGlvbl9yb2xlcy5tYXAoKGlkKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gIGlmIChwcm9wcy5tZW50aW9ucyAmJiBwYXlsb2FkLm1lbnRpb25zPy5sZW5ndGgpIG1lc3NhZ2UubWVudGlvbnMgPSBwYXlsb2FkLm1lbnRpb25zLm1hcCgodXNlcikgPT4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgdXNlcikpXG4gIGlmIChwcm9wcy5tZXNzYWdlUmVmZXJlbmNlICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UpIHtcbiAgICBjb25zdCByZWZlcmVuY2UgPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydtZXNzYWdlUmVmZXJlbmNlJ10+XG4gICAgY29uc3QgbWVzc2FnZVJlZmVyZW5jZVByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlUmVmZXJlbmNlXG5cbiAgICBpZiAobWVzc2FnZVJlZmVyZW5jZVByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmd1aWxkX2lkKSB7XG4gICAgICByZWZlcmVuY2UuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UubWVzc2FnZV9pZCkge1xuICAgICAgcmVmZXJlbmNlLm1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UubWVzc2FnZV9pZClcbiAgICB9XG5cbiAgICBtZXNzYWdlLm1lc3NhZ2VSZWZlcmVuY2UgPSByZWZlcmVuY2VcbiAgfVxuICBpZiAocHJvcHMubm9uY2UgJiYgcGF5bG9hZC5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubm9uY2VcbiAgaWYgKHBheWxvYWQucGlubmVkKSBtZXNzYWdlLnBpbm5lZCA9IHRydWVcbiAgaWYgKHByb3BzLnJlYWN0aW9ucyAmJiBwYXlsb2FkLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLnJlYWN0aW9ucy5tYXAoKHJlYWN0aW9uKSA9PiAoe1xuICAgICAgbWU6IHJlYWN0aW9uLm1lLFxuICAgICAgbWVCdXJzdDogcmVhY3Rpb24ubWVfYnVyc3QsXG4gICAgICBjb3VudDogcmVhY3Rpb24uY291bnQsXG4gICAgICBjb3VudERldGFpbHM6IHtcbiAgICAgICAgYnVyc3Q6IHJlYWN0aW9uLmNvdW50X2RldGFpbHMuYnVyc3QsXG4gICAgICAgIG5vcm1hbDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5ub3JtYWwsXG4gICAgICB9LFxuICAgICAgZW1vamk6IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCByZWFjdGlvbi5lbW9qaSksXG4gICAgICBidXJzdENvbG9yczogcmVhY3Rpb24uYnVyc3RfY29sb3JzLFxuICAgIH0pKVxuICB9XG4gIGlmIChwcm9wcy5zdGlja2VySXRlbXMgJiYgcGF5bG9hZC5zdGlja2VyX2l0ZW1zPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5zdGlja2VySXRlbXMgPSBwYXlsb2FkLnN0aWNrZXJfaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGl0ZW0uaWQpLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZm9ybWF0VHlwZTogaXRlbS5mb3JtYXRfdHlwZSxcbiAgICB9KSlcbiAgaWYgKHBheWxvYWQudHRzKSBtZXNzYWdlLnR0cyA9IHRydWVcbiAgaWYgKHByb3BzLnRocmVhZCAmJiBwYXlsb2FkLnRocmVhZCkgbWVzc2FnZS50aHJlYWQgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHBheWxvYWQudGhyZWFkLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy50eXBlKSBtZXNzYWdlLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLndlYmhvb2tJZCAmJiBwYXlsb2FkLndlYmhvb2tfaWQpIG1lc3NhZ2Uud2ViaG9va0lkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC53ZWJob29rX2lkKVxuICBpZiAocHJvcHMucG9sbCAmJiBwYXlsb2FkLnBvbGwpIG1lc3NhZ2UucG9sbCA9IGJvdC50cmFuc2Zvcm1lcnMucG9sbChib3QsIHBheWxvYWQucG9sbClcbiAgaWYgKHByb3BzLmNhbGwgJiYgcGF5bG9hZC5jYWxsKSBtZXNzYWdlLmNhbGwgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZC5jYWxsKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLCBtZXNzYWdlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSk6IE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG4gIGNvbnN0IG1ldGFkYXRhID0ge30gYXMgTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGFcblxuICBpZiAocHJvcHMuaWQpIG1ldGFkYXRhLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMpIHtcbiAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5pbnRlcmFjdGVkTWVzc2FnZUlkICYmIHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQgJiYgcGF5bG9hZC5vcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkKVxuICAgIG1ldGFkYXRhLm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gIGlmIChwcm9wcy50cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSAmJiBwYXlsb2FkLnRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gICAgbWV0YWRhdGEudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgPSB0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgaWYgKHByb3BzLnR5cGUpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLnVzZXIgJiYgcGF5bG9hZC51c2VyKSBtZXRhZGF0YS51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZCwgbWV0YWRhdGEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VDYWxsKTogTWVzc2FnZUNhbGwge1xuICBjb25zdCBjYWxsID0ge30gYXMgTWVzc2FnZUNhbGxcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VDYWxsXG5cbiAgaWYgKHByb3BzLnBhcnRpY2lwYW50cyAmJiBwYXlsb2FkLnBhcnRpY2lwYW50cykgY2FsbC5wYXJ0aWNpcGFudHMgPSBwYXlsb2FkLnBhcnRpY2lwYW50cy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHgpKVxuICBpZiAocHJvcHMuZW5kZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5lbmRlZF90aW1lc3RhbXApIGNhbGwuZW5kZWRUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuZW5kZWRfdGltZXN0YW1wKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZCwgY2FsbClcbn1cbiJdLCJuYW1lcyI6WyJEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUiLCJNZXNzYWdlRmxhZ3MiLCJDSEFOTkVMX01FTlRJT05fUkVHRVgiLCJzbm93Zmxha2VUb1RpbWVzdGFtcCIsIlRvZ2dsZUJpdGZpZWxkIiwiRU1QVFlfU1RSSU5HIiwiYmFzZU1lc3NhZ2UiLCJjcm9zc3Bvc3RlZCIsImZsYWdzIiwiY29udGFpbnMiLCJDcm9zc3Bvc3RlZCIsInZhbHVlIiwiYWRkIiwicmVtb3ZlIiwiZXBoZW1lcmFsIiwiRXBoZW1lcmFsIiwiZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJGYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCIsImhhc1RocmVhZCIsIkhhc1RocmVhZCIsImlzQ3Jvc3Nwb3N0IiwiSXNDcm9zc3Bvc3QiLCJsb2FkaW5nIiwiTG9hZGluZyIsIm1lbnRpb25lZFVzZXJJZHMiLCJtZW50aW9ucyIsIm1hcCIsInVzZXIiLCJpZCIsIm1lbnRpb25FdmVyeW9uZSIsImJpdGZpZWxkIiwicGlubmVkIiwic291cmNlTWVzc2FnZURlbGV0ZWQiLCJTb3VyY2VNZXNzYWdlRGVsZXRlZCIsInN1cHByZXNzRW1iZWRzIiwiU3VwcHJlc3NFbWJlZHMiLCJzdXBwcmVzc05vdGlmaWNhdGlvbnMiLCJTdXBwcmVzc05vdGlmaWNhdGlvbnMiLCJ0aW1lc3RhbXAiLCJ0dHMiLCJ1cmdlbnQiLCJVcmdlbnQiLCJ0cmFuc2Zvcm1NZXNzYWdlIiwiYm90IiwicGF5bG9hZCIsImd1aWxkSWQiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVuZGVmaW5lZCIsInVzZXJJZCIsImF1dGhvciIsIm1lc3NhZ2UiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJhdHRhY2htZW50IiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImNvbXBvbmVudHMiLCJjb21wIiwiY29tcG9uZW50IiwiY29udGVudCIsImVkaXRlZFRpbWVzdGFtcCIsImVkaXRlZF90aW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJlbWJlZHMiLCJlbWJlZCIsImludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbl9tZXRhZGF0YSIsInRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIiwiaW50ZXJhY3Rpb24iLCJtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcyIsIm1lc3NhZ2VJbnRlcmFjdGlvbiIsIm1lbWJlciIsIm5hbWUiLCJ0eXBlIiwibWVudGlvbl9ldmVyeW9uZSIsIm1lbnRpb25lZENoYW5uZWxJZHMiLCJtZW50aW9uX2NoYW5uZWxzIiwibSIsIm1hdGNoIiwidGV4dCIsInN1YnN0cmluZyIsIm1lbnRpb25lZFJvbGVJZHMiLCJtZW50aW9uX3JvbGVzIiwibWVzc2FnZVJlZmVyZW5jZSIsIm1lc3NhZ2VfcmVmZXJlbmNlIiwicmVmZXJlbmNlIiwibWVzc2FnZVJlZmVyZW5jZVByb3BzIiwibWVzc2FnZUlkIiwibWVzc2FnZV9pZCIsIm5vbmNlIiwicmVhY3Rpb25zIiwicmVhY3Rpb24iLCJtZSIsIm1lQnVyc3QiLCJtZV9idXJzdCIsImNvdW50IiwiY291bnREZXRhaWxzIiwiYnVyc3QiLCJjb3VudF9kZXRhaWxzIiwibm9ybWFsIiwiZW1vamkiLCJidXJzdENvbG9ycyIsImJ1cnN0X2NvbG9ycyIsInN0aWNrZXJJdGVtcyIsInN0aWNrZXJfaXRlbXMiLCJpdGVtIiwiZm9ybWF0VHlwZSIsImZvcm1hdF90eXBlIiwidGhyZWFkIiwiY2hhbm5lbCIsIndlYmhvb2tJZCIsIndlYmhvb2tfaWQiLCJwb2xsIiwiY2FsbCIsIm1lc3NhZ2VDYWxsIiwiY3VzdG9taXplcnMiLCJtZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsIm1ldGFkYXRhIiwiYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyIsImF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycyIsIkd1aWxkSW5zdGFsbCIsIlVzZXJJbnN0YWxsIiwiaW50ZXJhY3RlZE1lc3NhZ2VJZCIsImludGVyYWN0ZWRfbWVzc2FnZV9pZCIsIm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQiLCJvcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkIiwidHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEiLCJ0cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhIiwidHJhbnNmb3JtTWVzc2FnZUNhbGwiLCJwYXJ0aWNpcGFudHMiLCJ4IiwiZW5kZWRUaW1lc3RhbXAiLCJlbmRlZF90aW1lc3RhbXAiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLGlDQUFpQyxFQUlqQ0MsWUFBWSxRQUNQLG9CQUFtQjtBQUMxQixTQUFTQyxxQkFBcUIsUUFBUSxrQkFBaUI7QUFDdkQsU0FBb0ZDLG9CQUFvQixRQUFRLGNBQWE7QUFDN0gsU0FBU0MsY0FBYyxRQUFRLDhCQUE2QjtBQUU1RCxNQUFNQyxlQUFlO0FBRXJCLE1BQU1DLGNBQWM7SUFDbEIsSUFBSUMsZUFBYztRQUNoQixPQUFPLElBQUksQ0FBQ0MsS0FBSyxFQUFFQyxTQUFTUixhQUFhUyxXQUFXLEtBQUs7SUFDM0Q7SUFDQSxJQUFJSCxhQUFZSSxNQUFnQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDSCxLQUFLLEVBQUU7UUFDakIsSUFBSUcsT0FBTyxJQUFJLENBQUNILEtBQUssQ0FBQ0ksR0FBRyxDQUFDWCxhQUFhUyxXQUFXO2FBQzdDLElBQUksQ0FBQ0YsS0FBSyxDQUFDSyxNQUFNLENBQUNaLGFBQWFTLFdBQVc7SUFDakQ7SUFDQSxJQUFJSSxhQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUNOLEtBQUssRUFBRUMsU0FBU1IsYUFBYWMsU0FBUyxLQUFLO0lBQ3pEO0lBQ0EsSUFBSUQsV0FBVUgsTUFBZ0I7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQ0gsS0FBSyxFQUFFO1FBQ2pCLElBQUlHLE9BQU8sSUFBSSxDQUFDSCxLQUFLLENBQUNJLEdBQUcs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
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2UsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDYWxsLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZVNuYXBzaG90LFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ0hBTk5FTF9NRU5USU9OX1JFR0VYIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJ1xuaW1wb3J0IHsgdHlwZSBCb3QsIHR5cGUgTWVzc2FnZSwgdHlwZSBNZXNzYWdlQ2FsbCwgdHlwZSBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSwgdHlwZSBNZXNzYWdlU25hcHNob3QsIHNub3dmbGFrZVRvVGltZXN0YW1wIH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcydcblxuY29uc3QgRU1QVFlfU1RSSU5HID0gJydcblxuY29uc3QgYmFzZU1lc3NhZ2UgPSB7XG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59IGFzIE1lc3NhZ2VcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2UoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlKTogTWVzc2FnZSB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCkgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hdXRob3IuaWQpXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQuZmxhZ3MpXG5cbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VcblxuICBpZiAocHJvcHMuYXV0aG9yICYmIHBheWxvYWQuYXV0aG9yKSBtZXNzYWdlLmF1dGhvciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMuYXR0YWNobWVudHMgJiYgcGF5bG9hZC5hdHRhY2htZW50cz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UuYXR0YWNobWVudHMgPSBwYXlsb2FkLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBtZXNzYWdlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzPy5sZW5ndGgpIG1lc3NhZ2UuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXApID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcCkpXG4gIGlmIChwcm9wcy5jb250ZW50ICYmIHBheWxvYWQuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50ID8/IEVNUFRZX1NUUklOR1xuICBpZiAocHJvcHMuZWRpdGVkVGltZXN0YW1wICYmIHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcCkgbWVzc2FnZS5lZGl0ZWRUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLmVtYmVkcz8ubGVuZ3RoKSBtZXNzYWdlLmVtYmVkcyA9IHBheWxvYWQuZW1iZWRzLm1hcCgoZW1iZWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW1iZWQoYm90LCBlbWJlZCkpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lc3NhZ2UuZ3VpbGRJZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb25NZXRhZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICAgIG1lc3NhZ2UuaW50ZXJhY3Rpb25NZXRhZGF0YSA9IHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgaWYgKHByb3BzLmludGVyYWN0aW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24pIHtcbiAgICBjb25zdCBpbnRlcmFjdGlvbiA9IHt9IGFzIE5vbk51bGxhYmxlPE1lc3NhZ2VbJ2ludGVyYWN0aW9uJ10+XG4gICAgY29uc3QgbWVzc2FnZUludGVyYWN0aW9uUHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VJbnRlcmFjdGlvblxuXG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLmlkKSB7XG4gICAgICBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5tZW1iZXIgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIpIHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogcGFydGlhbCAtIGNoZWNrIHdoeSB0aGlzIGlzIHBhcnRpYWwgYW5kIGhhbmRsZSBhcyBuZWVkZWRcbiAgICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHBheWxvYWQuaW50ZXJhY3Rpb24udXNlci5pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLm5hbWUpIHtcbiAgICAgIGludGVyYWN0aW9uLm5hbWUgPSBwYXlsb2FkLmludGVyYWN0aW9uLm5hbWVcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLnR5cGUpIHtcbiAgICAgIGludGVyYWN0aW9uLnR5cGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLnR5cGVcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLnVzZXIpIHtcbiAgICAgIGludGVyYWN0aW9uLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uXG4gIH1cbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQubWVtYmVyKSBtZXNzYWdlLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5tZW1iZXIsIGd1aWxkSWQsIHVzZXJJZClcbiAgaWYgKHBheWxvYWQubWVudGlvbl9ldmVyeW9uZSkgbWVzc2FnZS5tZW50aW9uRXZlcnlvbmUgPSB0cnVlXG4gIGlmIChwcm9wcy5tZW50aW9uZWRDaGFubmVsSWRzICYmIHBheWxvYWQubWVudGlvbl9jaGFubmVscz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5tZW50aW9uZWRDaGFubmVsSWRzID0gW1xuICAgICAgLy8gS2VlcCBhbnkgaWRzIHRodCBkaXNjb3JkIHNlbmRzXG4gICAgICAuLi4ocGF5bG9hZC5tZW50aW9uX2NoYW5uZWxzID8/IFtdKS5tYXAoKG0pID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG0uaWQpKSxcbiAgICAgIC8vIEFkZCBhbnkgb3RoZXIgaWRzIHRoYXQgY2FuIGJlIHZhbGlkYXRlZCBpbiBhIGNoYW5uZWwgbWVudGlvbiBmb3JtYXRcbiAgICAgIC4uLihwYXlsb2FkLmNvbnRlbnQ/Lm1hdGNoKENIQU5ORUxfTUVOVElPTl9SRUdFWCkgPz8gW10pLm1hcCgodGV4dCkgPT5cbiAgICAgICAgLy8gY29udmVydHMgdGhlIDwjMTIzPiBpbnRvIDEyM1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh0ZXh0LnN1YnN0cmluZygyLCB0ZXh0Lmxlbmd0aCAtIDEpKSxcbiAgICAgICksXG4gICAgXVxuICB9XG4gIGlmIChwcm9wcy5tZW50aW9uZWRSb2xlSWRzICYmIHBheWxvYWQubWVudGlvbl9yb2xlcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UubWVudGlvbmVkUm9sZUlkcyA9IHBheWxvYWQubWVudGlvbl9yb2xlcy5tYXAoKGlkKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gIGlmIChwcm9wcy5tZW50aW9ucyAmJiBwYXlsb2FkLm1lbnRpb25zPy5sZW5ndGgpIG1lc3NhZ2UubWVudGlvbnMgPSBwYXlsb2FkLm1lbnRpb25zLm1hcCgodXNlcikgPT4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgdXNlcikpXG4gIGlmIChwcm9wcy5tZXNzYWdlUmVmZXJlbmNlICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UpIHtcbiAgICBjb25zdCByZWZlcmVuY2UgPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydtZXNzYWdlUmVmZXJlbmNlJ10+XG4gICAgY29uc3QgbWVzc2FnZVJlZmVyZW5jZVByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlUmVmZXJlbmNlXG5cbiAgICBpZiAobWVzc2FnZVJlZmVyZW5jZVByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmd1aWxkX2lkKSB7XG4gICAgICByZWZlcmVuY2UuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UubWVzc2FnZV9pZCkge1xuICAgICAgcmVmZXJlbmNlLm1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UubWVzc2FnZV9pZClcbiAgICB9XG5cbiAgICBtZXNzYWdlLm1lc3NhZ2VSZWZlcmVuY2UgPSByZWZlcmVuY2VcbiAgfVxuICBpZiAocHJvcHMucmVmZXJlbmNlZE1lc3NhZ2UgJiYgcGF5bG9hZC5yZWZlcmVuY2VkX21lc3NhZ2UpIG1lc3NhZ2UucmVmZXJlbmNlZE1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLnJlZmVyZW5jZWRfbWVzc2FnZSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VTbmFwc2hvdHMgJiYgcGF5bG9hZC5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2Vfc25hcHNob3RzLm1hcCgoc25hcCkgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCBzbmFwKSlcbiAgaWYgKHByb3BzLm5vbmNlICYmIHBheWxvYWQubm9uY2UpIG1lc3NhZ2Uubm9uY2UgPSBwYXlsb2FkLm5vbmNlXG4gIGlmIChwYXlsb2FkLnBpbm5lZCkgbWVzc2FnZS5waW5uZWQgPSB0cnVlXG4gIGlmIChwcm9wcy5yZWFjdGlvbnMgJiYgcGF5bG9hZC5yZWFjdGlvbnM/Lmxlbmd0aCkge1xuICAgIG1lc3NhZ2UucmVhY3Rpb25zID0gcGF5bG9hZC5yZWFjdGlvbnMubWFwKChyZWFjdGlvbikgPT4gKHtcbiAgICAgIG1lOiByZWFjdGlvbi5tZSxcbiAgICAgIG1lQnVyc3Q6IHJlYWN0aW9uLm1lX2J1cnN0LFxuICAgICAgY291bnQ6IHJlYWN0aW9uLmNvdW50LFxuICAgICAgY291bnREZXRhaWxzOiB7XG4gICAgICAgIGJ1cnN0OiByZWFjdGlvbi5jb3VudF9kZXRhaWxzLmJ1cnN0LFxuICAgICAgICBub3JtYWw6IHJlYWN0aW9uLmNvdW50X2RldGFpbHMubm9ybWFsLFxuICAgICAgfSxcbiAgICAgIGVtb2ppOiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgcmVhY3Rpb24uZW1vamkpLFxuICAgICAgYnVyc3RDb2xvcnM6IHJlYWN0aW9uLmJ1cnN0X2NvbG9ycyxcbiAgICB9KSlcbiAgfVxuICBpZiAocHJvcHMuc3RpY2tlckl0ZW1zICYmIHBheWxvYWQuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5zdGlja2VyX2l0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpdGVtLmlkKSxcbiAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICAgIGZvcm1hdFR5cGU6IGl0ZW0uZm9ybWF0X3R5cGUsXG4gICAgfSkpXG4gIGlmIChwYXlsb2FkLnR0cykgbWVzc2FnZS50dHMgPSB0cnVlXG4gIGlmIChwcm9wcy50aHJlYWQgJiYgcGF5bG9hZC50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLnRocmVhZCwgZ3VpbGRJZCB9KVxuICBpZiAocHJvcHMudHlwZSkgbWVzc2FnZS50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy53ZWJob29rSWQgJiYgcGF5bG9hZC53ZWJob29rX2lkKSBtZXNzYWdlLndlYmhvb2tJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQud2ViaG9va19pZClcbiAgaWYgKHByb3BzLnBvbGwgJiYgcGF5bG9hZC5wb2xsKSBtZXNzYWdlLnBvbGwgPSBib3QudHJhbnNmb3JtZXJzLnBvbGwoYm90LCBwYXlsb2FkLnBvbGwpXG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQuY2FsbCkgbWVzc2FnZS5jYWxsID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlQ2FsbChib3QsIHBheWxvYWQuY2FsbClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlKGJvdCwgcGF5bG9hZCwgbWVzc2FnZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VTbmFwc2hvdChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VTbmFwc2hvdCk6IE1lc3NhZ2VTbmFwc2hvdCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlU25hcHNob3RcbiAgY29uc3QgbWVzc2FnZVNuYXBzaG90ID0ge30gYXMgTWVzc2FnZVNuYXBzaG90XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKSBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSBhcyBEaXNjb3JkTWVzc2FnZSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlU25hcHNob3QoYm90LCBwYXlsb2FkLCBtZXNzYWdlU25hcHNob3QpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKTogTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGFcbiAgY29uc3QgbWV0YWRhdGEgPSB7fSBhcyBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuXG4gIGlmIChwcm9wcy5pZCkgbWV0YWRhdGEuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycykge1xuICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgPSB7fVxuICAgIGlmIChwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddKVxuICAgICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuR3VpbGRJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddLFxuICAgICAgKVxuICAgIGlmIChwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddKVxuICAgICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuVXNlckluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10sXG4gICAgICApXG4gIH1cbiAgaWYgKHByb3BzLmludGVyYWN0ZWRNZXNzYWdlSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGVkX21lc3NhZ2VfaWQpXG4gICAgbWV0YWRhdGEuaW50ZXJhY3RlZE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gICAgbWV0YWRhdGEub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICBtZXRhZGF0YS50cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSA9IHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC50cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhKVxuICBpZiAocHJvcHMudHlwZSkgbWV0YWRhdGEudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMudXNlciAmJiBwYXlsb2FkLnVzZXIpIG1ldGFkYXRhLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90LCBwYXlsb2FkLCBtZXRhZGF0YSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VDYWxsKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNhbGwpOiBNZXNzYWdlQ2FsbCB7XG4gIGNvbnN0IGNhbGwgPSB7fSBhcyBNZXNzYWdlQ2FsbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZUNhbGxcblxuICBpZiAocHJvcHMucGFydGljaXBhbnRzICYmIHBheWxvYWQucGFydGljaXBhbnRzKSBjYWxsLnBhcnRpY2lwYW50cyA9IHBheWxvYWQucGFydGljaXBhbnRzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5lbmRlZFRpbWVzdGFtcCAmJiBwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcCkgY2FsbC5lbmRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRlZF90aW1lc3RhbXApXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLCBjYWxsKVxufVxuIl0sIm5hbWVzIjpbIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIk1lc3NhZ2VGbGFncyIsIkNIQU5ORUxfTUVOVElPTl9SRUdFWCIsInNub3dmbGFrZVRvVGltZXN0YW1wIiwiVG9nZ2xlQml0ZmllbGQiLCJFTVBUWV9TVFJJTkciLCJiYXNlTWVzc2FnZSIsImNyb3NzcG9zdGVkIiwiZmxhZ3MiLCJjb250YWlucyIsIkNyb3NzcG9zdGVkIiwidmFsdWUiLCJhZGQiLCJyZW1vdmUiLCJlcGhlbWVyYWwiLCJFcGhlbWVyYWwiLCJmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCIsIkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiaGFzVGhyZWFkIiwiSGFzVGhyZWFkIiwiaXNDcm9zc3Bvc3QiLCJJc0Nyb3NzcG9zdCIsImxvYWRpbmciLCJMb2FkaW5nIiwibWVudGlvbmVkVXNlcklkcyIsIm1lbnRpb25zIiwibWFwIiwidXNlciIsImlkIiwibWVudGlvbkV2ZXJ5b25lIiwiYml0ZmllbGQiLCJwaW5uZWQiLCJzb3VyY2VNZXNzYWdlRGVsZXRlZCIsIlNvdXJjZU1lc3NhZ2VEZWxldGVkIiwic3VwcHJlc3NFbWJlZHMiLCJTdXBwcmVzc0VtYmVkcyIsInN1cHByZXNzTm90aWZpY2F0aW9ucyIsIlN1cHByZXNzTm90aWZpY2F0aW9ucyIsInRpbWVzdGFtcCIsInR0cyIsInVyZ2VudCIsIlVyZ2VudCIsInRyYW5zZm9ybU1lc3NhZ2UiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidW5kZWZpbmVkIiwidXNlcklkIiwiYXV0aG9yIiwibWVzc2FnZSIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJhdHRhY2htZW50cyIsImxlbmd0aCIsImF0dGFjaG1lbnQiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwiY29tcG9uZW50cyIsImNvbXAiLCJjb21wb25lbnQiLCJjb250ZW50IiwiZWRpdGVkVGltZXN0YW1wIiwiZWRpdGVkX3RpbWVzdGFtcCIsIkRhdGUiLCJwYXJzZSIsImVtYmVkcyIsImVtYmVkIiwiaW50ZXJhY3Rpb25NZXRhZGF0YSIsImludGVyYWN0aW9uX21ldGFkYXRhIiwidHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbiIsIm1lc3NhZ2VJbnRlcmFjdGlvblByb3BzIiwibWVzc2FnZUludGVyYWN0aW9uIiwibWVtYmVyIiwibmFtZSIsInR5cGUiLCJtZW50aW9uX2V2ZXJ5b25lIiwibWVudGlvbmVkQ2hhbm5lbElkcyIsIm1lbnRpb25fY2hhbm5lbHMiLCJtIiwibWF0Y2giLCJ0ZXh0Iiwic3Vic3RyaW5nIiwibWVudGlvbmVkUm9sZUlkcyIsIm1lbnRpb25fcm9sZXMiLCJtZXNzYWdlUmVmZXJlbmNlIiwibWVzc2FnZV9yZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXNzYWdlUmVmZXJlbmNlUHJvcHMiLCJtZXNzYWdlSWQiLCJtZXNzYWdlX2lkIiwicmVmZXJlbmNlZE1lc3NhZ2UiLCJyZWZlcmVuY2VkX21lc3NhZ2UiLCJtZXNzYWdlU25hcHNob3RzIiwibWVzc2FnZV9zbmFwc2hvdHMiLCJzbmFwIiwibWVzc2FnZVNuYXBzaG90Iiwibm9uY2UiLCJyZWFjdGlvbnMiLCJyZWFjdGlvbiIsIm1lIiwibWVCdXJzdCIsIm1lX2J1cnN0IiwiY291bnQiLCJjb3VudERldGFpbHMiLCJidXJzdCIsImNvdW50X2RldGFpbHMiLCJub3JtYWwiLCJlbW9qaSIsImJ1cnN0Q29sb3JzIiwiYnVyc3RfY29sb3JzIiwic3RpY2tlckl0ZW1zIiwic3RpY2tlcl9pdGVtcyIsIml0ZW0iLCJmb3JtYXRUeXBlIiwiZm9ybWF0X3R5cGUiLCJ0aHJlYWQiLCJjaGFubmVsIiwid2ViaG9va0lkIiwid2ViaG9va19pZCIsInBvbGwiLCJjYWxsIiwibWVzc2FnZUNhbGwiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybU1lc3NhZ2VTbmFwc2hvdCIsIm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIiwibWV0YWRhdGEiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJpbnRlcmFjdGVkTWVzc2FnZUlkIiwiaW50ZXJhY3RlZF9tZXNzYWdlX2lkIiwib3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCIsIm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQiLCJ0cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSIsInRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJ0cmFuc2Zvcm1NZXNzYWdlQ2FsbCIsInBhcnRpY2lwYW50cyIsIngiLCJlbmRlZFRpbWVzdGFtcCIsImVuZGVkX3RpbWVzdGFtcCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEsaUNBQWlDLEVBS2pDQyxZQUFZLFFBQ1Asb0JBQW1CO0FBQzFCLFNBQVNDLHFCQUFxQixRQUFRLGtCQUFpQjtBQUN2RCxTQUEwR0Msb0JBQW9CLFFBQVEsY0FBYTtBQUNuSixTQUFTQyxjQUFjLFFBQVEsOEJBQTZCO0FBRTVELE1BQU1DLGVBQWU7QUFFckIsTUFBTUMsY0FBYztJQUNsQixJQUFJQyxlQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDQyxLQUFLLEVBQUVDLFNBQVNSLGFBQWFTLFdBQVcsS0FBSztJQUMzRDtJQUNBLElBQUlILGFBQVlJLE1BQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUNILEtBQUssRUFBRTtRQUNqQixJQUFJRyxPQUFPLElBQUksQ0FBQ0gsS0FBSyxDQUFDSSxHQUFHLENBQUNYLGFBQWFTLFdBQVc7YUFDN0MsSUFBSSxDQUFDRixLQUFLLENBQUNLLE1BQU0sQ0FBQ1osYUFBYVMsV0FBVztJQUNqRDtJQUNBLElBQUlJLGFBQVk7UUFDZCxPQUFPLElBQUksQ0FBQ04sS0FBSyxFQUFFQyxTQUFTUixhQUFhYyxTQUFTLEtBQUs7SUFDekQ7SUFDQSxJQUFJRCxXQUFVSCxNQUFnQjtRQUM1QixJQUFJLENBQUMsSUFBSSxD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
|
|
@@ -18,7 +18,23 @@ export function transformScheduledEvent(bot, payload) {
|
|
|
18
18
|
if (props.userCount) scheduledEvent.userCount = payload.user_count ?? 0;
|
|
19
19
|
if (props.location && payload.entity_metadata?.location) scheduledEvent.location = payload.entity_metadata.location;
|
|
20
20
|
if (props.image && payload.image) scheduledEvent.image = iconHashToBigInt(payload.image);
|
|
21
|
+
if (props.recurrenceRule && payload.recurrence_rule) scheduledEvent.recurrenceRule = bot.transformers.scheduledEventRecurrenceRule(bot, payload.recurrence_rule);
|
|
21
22
|
return bot.transformers.customizers.scheduledEvent(bot, payload, scheduledEvent);
|
|
22
23
|
}
|
|
24
|
+
export function transformScheduledEventRecurrenceRule(bot, payload) {
|
|
25
|
+
const props = bot.transformers.desiredProperties.scheduledEventRecurrenceRule;
|
|
26
|
+
const recurrenceRule = {};
|
|
27
|
+
if (props.start && payload.start) recurrenceRule.start = Date.parse(payload.start);
|
|
28
|
+
if (props.end && payload.end) recurrenceRule.end = Date.parse(payload.end);
|
|
29
|
+
if (props.frequency && payload.frequency) recurrenceRule.frequency = payload.frequency;
|
|
30
|
+
if (props.interval && payload.interval) recurrenceRule.interval = payload.interval;
|
|
31
|
+
if (props.byWeekday && payload.by_weekday) recurrenceRule.byWeekday = payload.by_weekday;
|
|
32
|
+
if (props.byNWeekday && payload.by_n_weekday) recurrenceRule.byNWeekday = payload.by_n_weekday;
|
|
33
|
+
if (props.byMonth && payload.by_month) recurrenceRule.byMonth = payload.by_month;
|
|
34
|
+
if (props.byMonthDay && payload.by_month_day) recurrenceRule.byMonthDay = payload.by_month_day;
|
|
35
|
+
if (props.byYearDay && payload.by_year_day) recurrenceRule.byYearDay = payload.by_year_day;
|
|
36
|
+
if (props.count && payload.count) recurrenceRule.count = payload.count;
|
|
37
|
+
return bot.transformers.customizers.scheduledEventRecurrenceRule(bot, payload, recurrenceRule);
|
|
38
|
+
}
|
|
23
39
|
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvc2NoZWR1bGVkRXZlbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkU2NoZWR1bGVkRXZlbnQsIERpc2NvcmRTY2hlZHVsZWRFdmVudFJlY3VycmVuY2VSdWxlIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyB0eXBlIEJvdCwgdHlwZSBTY2hlZHVsZWRFdmVudCwgdHlwZSBTY2hlZHVsZWRFdmVudFJlY3VycmVuY2VSdWxlLCBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1TY2hlZHVsZWRFdmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFNjaGVkdWxlZEV2ZW50KTogU2NoZWR1bGVkRXZlbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuc2NoZWR1bGVkRXZlbnRcbiAgY29uc3Qgc2NoZWR1bGVkRXZlbnQgPSB7fSBhcyBTY2hlZHVsZWRFdmVudFxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBzY2hlZHVsZWRFdmVudC5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRfaWQpIHNjaGVkdWxlZEV2ZW50Lmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKVxuICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuY2hhbm5lbF9pZCkgc2NoZWR1bGVkRXZlbnQuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsX2lkKVxuICBpZiAocHJvcHMuY3JlYXRvcklkICYmIHBheWxvYWQuY3JlYXRvcl9pZCkgc2NoZWR1bGVkRXZlbnQuY3JlYXRvcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jcmVhdG9yX2lkKVxuICBpZiAocHJvcHMuc2NoZWR1bGVkU3RhcnRUaW1lICYmIHBheWxvYWQuc2NoZWR1bGVkX3N0YXJ0X3RpbWUpIHNjaGVkdWxlZEV2ZW50LnNjaGVkdWxlZFN0YXJ0VGltZSA9IERhdGUucGFyc2UocGF5bG9hZC5zY2hlZHVsZWRfc3RhcnRfdGltZSlcbiAgaWYgKHByb3BzLnNjaGVkdWxlZEVuZFRpbWUgJiYgcGF5bG9hZC5zY2hlZHVsZWRfZW5kX3RpbWUpIHNjaGVkdWxlZEV2ZW50LnNjaGVkdWxlZEVuZFRpbWUgPSBEYXRlLnBhcnNlKHBheWxvYWQuc2NoZWR1bGVkX2VuZF90aW1lKVxuICBpZiAocHJvcHMuZW50aXR5SWQgJiYgcGF5bG9hZC5lbnRpdHlfaWQpIHNjaGVkdWxlZEV2ZW50LmVudGl0eUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5lbnRpdHlfaWQpXG4gIGlmIChwcm9wcy5jcmVhdG9yICYmIHBheWxvYWQuY3JlYXRvcikgc2NoZWR1bGVkRXZlbnQuY3JlYXRvciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuY3JlYXRvcilcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5uYW1lKSBzY2hlZHVsZWRFdmVudC5uYW1lID0gcGF5bG9hZC5uYW1lXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBzY2hlZHVsZWRFdmVudC5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb25cbiAgaWYgKHByb3BzLnByaXZhY3lMZXZlbCAmJiBwYXlsb2FkLnByaXZhY3lfbGV2ZWwpIHNjaGVkdWxlZEV2ZW50LnByaXZhY3lMZXZlbCA9IHBheWxvYWQucHJpdmFjeV9sZXZlbFxuICBpZiAocHJvcHMuc3RhdHVzICYmIHBheWxvYWQuc3RhdHVzKSBzY2hlZHVsZWRFdmVudC5zdGF0dXMgPSBwYXlsb2FkLnN0YXR1c1xuICBpZiAocHJvcHMuZW50aXR5VHlwZSAmJiBwYXlsb2FkLmVudGl0eV90eXBlKSBzY2hlZHVsZWRFdmVudC5lbnRpdHlUeXBlID0gcGF5bG9hZC5lbnRpdHlfdHlwZVxuICBpZiAocHJvcHMudXNlckNvdW50KSBzY2hlZHVsZWRFdmVudC51c2VyQ291bnQgPSBwYXlsb2FkLnVzZXJfY291bnQgPz8gMFxuICBpZiAocHJvcHMubG9jYXRpb24gJiYgcGF5bG9hZC5lbnRpdHlfbWV0YWRhdGE/LmxvY2F0aW9uKSBzY2hlZHVsZWRFdmVudC5sb2NhdGlvbiA9IHBheWxvYWQuZW50aXR5X21ldGFkYXRhLmxvY2F0aW9uXG4gIGlmIChwcm9wcy5pbWFnZSAmJiBwYXlsb2FkLmltYWdlKSBzY2hlZHVsZWRFdmVudC5pbWFnZSA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5pbWFnZSlcbiAgaWYgKHByb3BzLnJlY3VycmVuY2VSdWxlICYmIHBheWxvYWQucmVjdXJyZW5jZV9ydWxlKVxuICAgIHNjaGVkdWxlZEV2ZW50LnJlY3VycmVuY2VSdWxlID0gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudFJlY3VycmVuY2VSdWxlKGJvdCwgcGF5bG9hZC5yZWN1cnJlbmNlX3J1bGUpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBwYXlsb2FkLCBzY2hlZHVsZWRFdmVudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVNjaGVkdWxlZEV2ZW50UmVjdXJyZW5jZVJ1bGUoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRTY2hlZHVsZWRFdmVudFJlY3VycmVuY2VSdWxlKTogU2NoZWR1bGVkRXZlbnRSZWN1cnJlbmNlUnVsZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5zY2hlZHVsZWRFdmVudFJlY3VycmVuY2VSdWxlXG4gIGNvbnN0IHJlY3VycmVuY2VSdWxlID0ge30gYXMgU2NoZWR1bGVkRXZlbnRSZWN1cnJlbmNlUnVsZVxuXG4gIGlmIChwcm9wcy5zdGFydCAmJiBwYXlsb2FkLnN0YXJ0KSByZWN1cnJlbmNlUnVsZS5zdGFydCA9IERhdGUucGFyc2UocGF5bG9hZC5zdGFydClcbiAgaWYgKHByb3BzLmVuZCAmJiBwYXlsb2FkLmVuZCkgcmVjdXJyZW5jZVJ1bGUuZW5kID0gRGF0ZS5wYXJzZShwYXlsb2FkLmVuZClcbiAgaWYgKHByb3BzLmZyZXF1ZW5jeSAmJiBwYXlsb2FkLmZyZXF1ZW5jeSkgcmVjdXJyZW5jZVJ1bGUuZnJlcXVlbmN5ID0gcGF5bG9hZC5mcmVxdWVuY3lcbiAgaWYgKHByb3BzLmludGVydmFsICYmIHBheWxvYWQuaW50ZXJ2YWwpIHJlY3VycmVuY2VSdWxlLmludGVydmFsID0gcGF5bG9hZC5pbnRlcnZhbFxuICBpZiAocHJvcHMuYnlXZWVrZGF5ICYmIHBheWxvYWQuYnlfd2Vla2RheSkgcmVjdXJyZW5jZVJ1bGUuYnlXZWVrZGF5ID0gcGF5bG9hZC5ieV93ZWVrZGF5XG4gIGlmIChwcm9wcy5ieU5XZWVrZGF5ICYmIHBheWxvYWQuYnlfbl93ZWVrZGF5KSByZWN1cnJlbmNlUnVsZS5ieU5XZWVrZGF5ID0gcGF5bG9hZC5ieV9uX3dlZWtkYXlcbiAgaWYgKHByb3BzLmJ5TW9udGggJiYgcGF5bG9hZC5ieV9tb250aCkgcmVjdXJyZW5jZVJ1bGUuYnlNb250aCA9IHBheWxvYWQuYnlfbW9udGhcbiAgaWYgKHByb3BzLmJ5TW9udGhEYXkgJiYgcGF5bG9hZC5ieV9tb250aF9kYXkpIHJlY3VycmVuY2VSdWxlLmJ5TW9udGhEYXkgPSBwYXlsb2FkLmJ5X21vbnRoX2RheVxuICBpZiAocHJvcHMuYnlZZWFyRGF5ICYmIHBheWxvYWQuYnlfeWVhcl9kYXkpIHJlY3VycmVuY2VSdWxlLmJ5WWVhckRheSA9IHBheWxvYWQuYnlfeWVhcl9kYXlcbiAgaWYgKHByb3BzLmNvdW50ICYmIHBheWxvYWQuY291bnQpIHJlY3VycmVuY2VSdWxlLmNvdW50ID0gcGF5bG9hZC5jb3VudFxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnNjaGVkdWxlZEV2ZW50UmVjdXJyZW5jZVJ1bGUoYm90LCBwYXlsb2FkLCByZWN1cnJlbmNlUnVsZSlcbn1cbiJdLCJuYW1lcyI6WyJpY29uSGFzaFRvQmlnSW50IiwidHJhbnNmb3JtU2NoZWR1bGVkRXZlbnQiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsInNjaGVkdWxlZEV2ZW50IiwiaWQiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGRfaWQiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwiY3JlYXRvcklkIiwiY3JlYXRvcl9pZCIsInNjaGVkdWxlZFN0YXJ0VGltZSIsInNjaGVkdWxlZF9zdGFydF90aW1lIiwiRGF0ZSIsInBhcnNlIiwic2NoZWR1bGVkRW5kVGltZSIsInNjaGVkdWxlZF9lbmRfdGltZSIsImVudGl0eUlkIiwiZW50aXR5X2lkIiwiY3JlYXRvciIsInVzZXIiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJwcml2YWN5TGV2ZWwiLCJwcml2YWN5X2xldmVsIiwic3RhdHVzIiwiZW50aXR5VHlwZSIsImVudGl0eV90eXBlIiwidXNlckNvdW50IiwidXNlcl9jb3VudCIsImxvY2F0aW9uIiwiZW50aXR5X21ldGFkYXRhIiwiaW1hZ2UiLCJyZWN1cnJlbmNlUnVsZSIsInJlY3VycmVuY2VfcnVsZSIsInNjaGVkdWxlZEV2ZW50UmVjdXJyZW5jZVJ1bGUiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybVNjaGVkdWxlZEV2ZW50UmVjdXJyZW5jZVJ1bGUiLCJzdGFydCIsImVuZCIsImZyZXF1ZW5jeSIsImludGVydmFsIiwiYnlXZWVrZGF5IiwiYnlfd2Vla2RheSIsImJ5TldlZWtkYXkiLCJieV9uX3dlZWtkYXkiLCJieU1vbnRoIiwiYnlfbW9udGgiLCJieU1vbnRoRGF5IiwiYnlfbW9udGhfZGF5Iiwi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
|