dcl-npc-toolkit 1.0.6-20230511223948.commit-74300a8 → 1.0.6
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/npc.js +5 -2
- package/package.json +2 -2
package/dist/npc.js
CHANGED
|
@@ -317,7 +317,6 @@ function endInteraction(npc) {
|
|
|
317
317
|
if (npcDialogComponent.has(npc) && npcDialogComponent.get(npc).visible) {
|
|
318
318
|
closeDialog(npc);
|
|
319
319
|
}
|
|
320
|
-
playAnimation(npc, npcDataComponent.get(npc).idleAnim);
|
|
321
320
|
if (npcData.faceUser) {
|
|
322
321
|
Billboard.deleteFrom(npc);
|
|
323
322
|
}
|
|
@@ -350,6 +349,10 @@ export function playAnimation(npc, anim, noLoop, duration) {
|
|
|
350
349
|
if (duration) {
|
|
351
350
|
animTimers.set(npc, utils.timers.setTimeout(() => {
|
|
352
351
|
animTimers.delete(npc);
|
|
352
|
+
Animator.stopAllAnimations(npc);
|
|
353
|
+
if (npcData.idleAnim) {
|
|
354
|
+
Animator.playSingleAnimation(npc, npcData.idleAnim, false);
|
|
355
|
+
}
|
|
353
356
|
}, 1000 * duration));
|
|
354
357
|
}
|
|
355
358
|
npcData.lastPlayedAnim = anim;
|
|
@@ -362,4 +365,4 @@ export function changeIdleAnim(npc, animation, play) {
|
|
|
362
365
|
npcDataComponent.get(npc).lastPlayedAnim = animation;
|
|
363
366
|
}
|
|
364
367
|
}
|
|
365
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25wYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQWlCLE1BQU0sRUFBVSxhQUFhLEVBQWMsWUFBWSxFQUFDLFlBQVksRUFBQyxtQkFBbUIsRUFBQyxTQUFTLEVBQWlCLE1BQU0sY0FBYyxDQUFBO0FBQ2pNLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMzRCxPQUFPLEVBQTJCLFdBQVcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFlLE1BQU0sU0FBUyxDQUFDO0FBQy9GLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBdUIsSUFBSSxHQUFHLEVBQUUsQ0FBQTtBQUMxRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQTtBQUMzRCxNQUFNLENBQUMsSUFBSSxTQUFTLEdBQVUsQ0FBQyxDQUFBO0FBRS9CLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUE7QUFDdkQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0FBRXpELE1BQU0sVUFBVSxHQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFBO0FBQzlDLE1BQU0sYUFBYSxHQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFBO0FBQ2pELE1BQU0sYUFBYSxH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LFNBQVMsQ0FBQTtLQUN2RDtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRvciwgQXZhdGFyU2hhcGUsIEJpbGxib2FyZCwgQmlsbGJvYXJkTW9kZSwgZW5naW5lLCBFbnRpdHksIEdsdGZDb250YWluZXIsIElucHV0QWN0aW9uLE1lc2hDb2xsaWRlcixNZXNoUmVuZGVyZXIscG9pbnRlckV2ZW50c1N5c3RlbSxUcmFuc2Zvcm0sIFRyYW5zZm9ybVR5cGUgfSBmcm9tICdAZGNsL3Nkay9lY3MnXG5pbXBvcnQgeyBDb2xvcjMsIFF1YXRlcm5pb24sIFZlY3RvcjMgfSBmcm9tICdAZGNsL3Nkay9tYXRoJ1xuaW1wb3J0IHsgRm9sbG93UGF0aERhdGEsIE5QQ0RhdGEsIE5QQ1BhdGhUeXBlLCBOUENTdGF0ZSwgTlBDVHlwZSwgVHJpZ2dlckRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJ0BkY2wtc2RrL3V0aWxzJ1xuaW1wb3J0IHsgSXNGb2xsb3dpbmdQYXRoIH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IGhhbmRsZURpYWxvZ1R5cGluZywgaGFuZGxlUGF0aFRpbWVzIH0gZnJvbSAnLi9zeXN0ZW1zJztcbmltcG9ydCB7IGFkZERpYWxvZywgY2xvc2VEaWFsb2csIG5wY0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nJztcblxuZXhwb3J0IGNvbnN0IHdhbGtpbmdUaW1lcnM6IE1hcDxFbnRpdHksbnVtYmVyPiA9IG5ldyBNYXAoKVxuZXhwb3J0IGNvbnN0IG5wY0RhdGFDb21wb25lbnQ6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmV4cG9ydCBsZXQgYWN0aXZlTlBDOm51bWJlciA9IDBcblxuY29uc3Qgd2Fsa2luZ1N5c3RlbSA9IGVuZ2luZS5hZGRTeXN0ZW0oaGFuZGxlUGF0aFRpbWVzKVxuY29uc3QgZGlhbG9nU3lzdGVtID0gZW5naW5lLmFkZFN5c3RlbShoYW5kbGVEaWFsb2dUeXBpbmcpXG5cbmNvbnN0IGlzQ29vbGRvd246IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmNvbnN0IG9uQWN0aXZhdGVDYnM6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmNvbnN0IG9uV2Fsa0F3YXlDYnM6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmNvbnN0IGFuaW1UaW1lcnM6IE1hcDxFbnRpdHksYW55PiA9IG5ldyBNYXAoKVxuY29uc3QgcG9pbnRSZWFjaGVkQ2FsbGJhY2tzOiBNYXA8RW50aXR5LCBhbnk+ID0gbmV3IE1hcCgpXG5jb25zdCBvbkZpbmlzaENhbGxiYWNrczogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd0RlYnVnKGRlYnVnOmJvb2xlYW4pe1xuICAgIHV0aWxzLnRyaWdnZXJzLmVuYWJsZURlYnVnRHJhdyhkZWJ1Zylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGEobnBjOkVudGl0eSl7XG4gICAgcmV0dXJuIG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShcbiAgICB0cmFuc2Zvcm06IGFueSxcbiAgICBkYXRhOiBOUENEYXRhXG4pe1xuICAgIGxldCBucGMgPSBlbmdpbmUuYWRkRW50aXR5KClcblxuICAgIGxldCB0OlRyYW5zZm9ybVR5cGUgPSB7cG9zaXRpb246IHRyYW5zZm9ybS5wb3NpdGlvbiA/IHRyYW5zZm9ybS5wb3NpdGlvbiA6IFZlY3RvcjMuY3JlYXRlKDAsMCwwKSwgcm90YXRpb246IHRyYW5zZm9ybS5yb3RhdGlvbiA/IHRyYW5zZm9ybS5yb3RhdGlvbiA6IFF1YXRlcm5pb24uWmVybygpLCBzY2FsZTogdHJhbnNmb3JtLnNjYWxlID8gdHJhbnNmb3JtLnNjYWxlIDogVmVjdG9yMy5PbmUoKX1cbiAgICBUcmFuc2Zvcm0uY3JlYXRlKG5wYywgdClcblxuICAgIG5wY0RhdGFDb21wb25lbnQuc2V0KG5wYyx7XG4gICAgICAgIGludHJvZHVjZWQ6IGZhbHNlLFxuICAgICAgICBpbkNvb2xkb3duOiBmYWxzZSxcbiAgICAgICAgY29vbERvd25EdXJhdGlvbjogZGF0YSAmJiBkYXRhLmNvb2xEb3duRHVyYXRpb24gPyBkYXRhLmNvb2xEb3duRHVyYXRpb24gOiA1LFxuICAgICAgICBmYWNlVXNlcjpkYXRhLmZhY2VVc2VyLFxuICAgICAgICB3YWxraW5nU3BlZWQ6MixcbiAgICAgICAgd2Fsa2luZ0FuaW06IGRhdGEgJiYgZGF0YS53YWxraW5nQW5pbSA/IGRhdGEud2Fsa2luZ0FuaW0gOiB1bmRlZmluZWQsXG4gICAgICAgIGJ1YmJsZUhlaWdodDoyLFxuICAgICAgICBwYXRoRGF0YTogZGF0YS5wYXRoRGF0YSA/IGRhdGEucGF0aERhdGEgOiB1bmRlZmluZWQsXG4gICAgICAgIGN1cnJlbnRQYXRoRGF0YTogW10sXG4gICAgICAgIG1hbnVhbFN0b3A6ZmFsc2UsXG4gICAgICAgIHBhdGhJbmRleDowLFxuICAgICAgICBzdGF0ZTpOUENTdGF0ZS5TVEFORElORyxcbiAgICAgICAgaWRsZUFuaW06IGRhdGEgJiYgZGF0YS5pZGxlQW5pbSA/IGRhdGEuaWRsZUFuaW0gOiBcIklkbGVcIlxuICAgIH0pXG5cbiAgICBpZihkYXRhICYmIGRhdGEubm9VSSl7fVxuICAgIGVsc2UgaWYoZGF0YSAmJiBkYXRhLnBvcnRyYWl0KXt9XG4gICAgZWxzZXtcbiAgICAgICAgYWRkRGlhbG9nKG5wYywgZGF0YSAmJiBkYXRhLmRpYWxvZ1NvdW5kID8gZGF0YS5kaWFsb2dTb3VuZCA6IHVuZGVmaW5lZClcbiAgICB9XG5cbiAgICBvbkFjdGl2YXRlQ2JzLnNldChucGMsICgpPT57XG4gICAgICAgIGRhdGEub25BY3RpdmF0ZSgpXG4gICAgfSlcblxuICAgIGlmIChkYXRhICYmIGRhdGEuaGFzT3duUHJvcGVydHkoXCJvbldhbGtBd2F5XCIpKSB7XG4gICAgICAgIG9uV2Fsa0F3YXlDYnMuc2V0KG5wYywgKCk9PntcbiAgICAgICAgICAgIGlmKCFkYXRhIHx8ICFkYXRhLmNvbnRpbnVlT25XYWxrQXdheSl7XG4gICAgICAgICAgICAgICAgaWYobnBjRGlhbG9nQ29tcG9uZW50LmhhcyhucGMpKXtcbiAgICAgICAgICAgICAgICAgICAgbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpLnZpc2libGUgPSBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgaWYobnBjRGlhbG9nQ29tcG9uZW50LmhhcyhucGMpKXtcbiAgICAgICAgICAgICAgICAgICAgbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpLnZpc2libGUgPSBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEub25XYWxrQXdheSEoKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGFkZE5QQ0JvbmVzKG5wYywgZGF0YSlcbiAgICBhZGRDbGlja1JlYWN0aW9ucyhucGMsIGRhdGEpXG4gICAgYWRkVHJpZ2dlckFyZWEobnBjLCBkYXRhKVxuICAgIFxuICAgIGlmIChkYXRhICYmIGRhdGEucGF0aERhdGEgJiYgZGF0YS5wYXRoRGF0YS5zcGVlZCkge1xuICAgICAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgICAgbnBjRGF0YS53YWxraW5nU3BlZWQgPSBkYXRhLnBhdGhEYXRhLnNwZWVkXG4gICAgfVxuXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5jb29sRG93bkR1cmF0aW9uKSB7XG4gICAgICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgICAgICBucGNEYXRhLmNvb2xEb3duRHVyYXRpb24gPSBkYXRhLmNvb2xEb3duRHVyYXRpb25cbiAgICB9XG5cbiAgICBpZiAoZGF0YSAmJiBkYXRhLnBhdGhEYXRhKXtcbiAgICAgICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgICAgIC8vbnBjRGF0YS5jdXJyZW50UGF0aERhdGEgPSBucGNEYXRhLnBhdGhEYXRhXG4gICAgICAgIGZvbGxvd1BhdGgobnBjLCBucGNEYXRhLnBhdGhEYXRhKVxuICAgIH1cblxuICAgIHJldHVybiBucGNcbn1cblxuZnVuY3Rpb24gYWRkTlBDQm9uZXMobnBjOkVudGl0eSwgZGF0YTpOUENEYXRhKXtcbiAgICBzd2l0Y2goZGF0YS50eXBlKXtcbiAgICAgICAgY2FzZSBOUENUeXBlLkFWQVRBUjpcbiAgICAgICAgICAgIEF2YXRhclNoYXBlLmNyZWF0ZShucGMsIHtcbiAgICAgICAgICAgICAgICBpZDogXCJucGNcIixcbiAgICAgICAgICAgICAgICBuYW1lOiBcIk5QQ1wiLFxuICAgICAgICAgICAgICAgIGJvZHlTaGFwZTpcInVybjpkZWNlbnRyYWxhbmQ6b2ZmLWNoYWluOmJhc2UtYXZhdGFyczpCYXNlTWFsZVwiLFxuICAgICAgICAgICAgICAgIGVtb3RlczogW10sXG4gICAgICAgICAgICAgICAgd2VhcmFibGVzOiBbXG4gICAgICAgICAgICAgICAgICAgIFwidXJuOmRlY2VudHJhbGFuZDpvZmYtY2hhaW46YmFzZS1hdmF0YXJzOmZfZXllc18wMFwiLFxuICAgICAgICAgICAgICAgICAgICBcInVybjpkZWNlbnRyYWxhbmQ6b2ZmLWNoYWluOmJhc2UtYXZhdGFyczpmX2V5ZWJyb3dzXzAwXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidXJuOmRlY2VudHJhbGFuZDpvZmYtY2hhaW46YmFzZS1hdmF0YXJzOmZfbW91dGhfMDBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ1cm46ZGVjZW50cmFsYW5kOm9mZi1jaGFpbjpiYXNlLWF2YXRhcnM6Y29tZnlfc3BvcnRfc2FuZGFsc1wiLFxuICAgICAgICAgICAgICAgICAgICBcInVybjpkZWNlbnRyYWxhbmQ6b2ZmLWNoYWluOmJhc2UtYXZhdGFyczpzb2NjZXJfcGFudHNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ1cm46ZGVjZW50cmFsYW5kOm9mZi1jaGFpbjpiYXNlLWF2YXRhcnM6ZWxlZ2FudF9zd2VhdGVyXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBOUENUeXBlLkNVU1RPTTpcbiAgICAgICAgICAgIEdsdGZDb250YWluZXIuY3JlYXRlKG5wYywgeyBcbiAgICAgICAgICAgICAgICBzcmM6IGRhdGEgJiYgZGF0YS5tb2RlbCA/IGRhdGEubW9kZWwgOiBcIlwiIFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIEFuaW1hdG9yLmNyZWF0ZShucGMsIHtcbiAgICAgICAgICAgICAgICBzdGF0ZXM6W3tcbiAgICAgICAgICAgICAgICAgICAgbmFtZTpkYXRhICYmIGRhdGEuaWRsZUFuaW0gPyBkYXRhLmlkbGVBbmltIDogJ0lkbGUnLFxuICAgICAgICAgICAgICAgICAgICBjbGlwOmRhdGEgJiYgZGF0YS5pZGxlQW5pbSA/IGRhdGEuaWRsZUFuaW0gOiAnSWRsZScsXG4gICAgICAgICAgICAgICAgICAgIGxvb3A6dHJ1ZVxuICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgICAgICAgIG5wY0RhdGEuaWRsZUFuaW0gPSBkYXRhICYmIGRhdGEuaWRsZUFuaW0gPyBkYXRhLmlkbGVBbmltIDogJ0lkbGUnXG4gICAgICAgICAgICBucGNEYXRhLmxhc3RQbGF5ZWRBbmltID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5pZGxlQW5pbVxuXG4gICAgICAgICAgICBBbmltYXRvci5wbGF5U2luZ2xlQW5pbWF0aW9uKG5wYywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5pZGxlQW5pbSlcblxuXG4gICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLndhbGtpbmdBbmltKSB7XG4gICAgICAgICAgICAgICAgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbSA9IGRhdGEud2Fsa2luZ0FuaW1cbiAgICAgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFuaW1hdG9yLmdldE11dGFibGUobnBjKVxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbnMuc3RhdGVzLnB1c2goe25hbWU6ZGF0YS53YWxraW5nQW5pbSwgY2xpcDogZGF0YS53YWxraW5nQW5pbSwgbG9vcDp0cnVlfSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBOUENUeXBlLkJMQU5LOlxuICAgICAgICAgICAgTWVzaFJlbmRlcmVyLnNldEJveChucGMpXG4gICAgICAgICAgICBNZXNoQ29sbGlkZXIuc2V0Qm94KG5wYylcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgfVxufVxuXG5mdW5jdGlvbiBhZGRDbGlja1JlYWN0aW9ucyhucGM6RW50aXR5LCBkYXRhOk5QQ0RhdGEpe1xuICAgIGxldCBhY3RpdmF0ZUJ1dHRvbiA9IGRhdGEgJiYgZGF0YS5vbmx5Q2xpY2tUcmlnZ2VyID8gSW5wdXRBY3Rpb24uSUFfUE9JTlRFUiA6IElucHV0QWN0aW9uLklBX1BSSU1BUllcblxuICAgIHBvaW50ZXJFdmVudHNTeXN0ZW0ub25Qb2ludGVyRG93bihcbiAgICAgICAgbnBjLFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoaXNDb29sZG93bi5oYXMobnBjKSB8fCAobnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpLnZpc2libGUpKSByZXR1cm5cbiAgICAgICAgICAgIGFjdGl2YXRlKG5wYylcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgYnV0dG9uOiBhY3RpdmF0ZUJ1dHRvbixcbiAgICAgICAgICAgIGhvdmVyVGV4dDogZGF0YSAmJiBkYXRhLmhvdmVyVGV4dCA/IGRhdGEuaG92ZXJUZXh0IDogJ1RhbGsnLFxuICAgICAgICAgICAgc2hvd0ZlZWRiYWNrOiBkYXRhICYmIGRhdGEub25seUV4dGVybmFsVHJpZ2dlciA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgICApXG5cbiAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5vbmx5RXh0ZXJuYWxUcmlnZ2VyKSB7XG4gICAgICAgIHBvaW50ZXJFdmVudHNTeXN0ZW0ucmVtb3ZlT25Qb2ludGVyRG93bihucGMpXG4gICAgICAgIH0gXG59XG5cbmZ1bmN0aW9uIGFkZFRyaWdnZXJBcmVhKG5wYzpFbnRpdHksIGRhdGE6TlBDRGF0YSl7XG5cbiAgICAgICAgbGV0IHRyaWdnZXJEYXRhOiBUcmlnZ2VyRGF0YSA9IHt9XG5cbiAgICAgICAgaWYgKCFkYXRhIHx8IChkYXRhICYmICFkYXRhLm9ubHlFeHRlcm5hbFRyaWdnZXIgJiYgIWRhdGEub25seUNsaWNrVHJpZ2dlciAmJiAhZGF0YS5vbmx5RVRyaWdnZXIpKXtcbiAgICAgICAgb25BY3RpdmF0ZUNicy5zZXQobnBjLCAoKT0+e1xuICAgICAgICAgICAgaWYgKGlzQ29vbGRvd24uaGFzKG5wYykpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhucGMsICcgaW4gY29vbGRvd24nKVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIChucGNEaWFsb2dDb21wb25lbnQuaGFzKG5wYykgJiYgbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpLnZpc2libGUpIHx8XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS5vbmx5RXh0ZXJuYWxUcmlnZ2VyKSB8fFxuICAgICAgICAgICAgICAgIChkYXRhICYmIGRhdGEub25seUNsaWNrVHJpZ2dlcilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YS5vbkFjdGl2YXRlKClcbiAgICAgICAgfSlcbiAgICAgICAgdHJpZ2dlckRhdGEub25DYW1lcmFFbnRlciA9IG9uQWN0aXZhdGVDYnMuZ2V0KG5wYylcbiAgICAgICAgfVxuXG4gICAgLy8gd2hlbiBleGl0aW5nIHRyaWdnZXJcbiAgICBpZiAoIWRhdGEgfHwgKGRhdGEgJiYgIWRhdGEuY29udGludWVPbldhbGtBd2F5KSkge1xuICAgICAgICB0cmlnZ2VyRGF0YS5vbkNhbWVyYUV4aXQgPSAoKSA9PiB7XG4gICAgICAgICAgICBoYW5kbGVXYWxrQXdheShucGMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB3aGVuIGVudGVyaW5nIHRyaWdnZXJcbiAgICBpZiAoXG4gICAgICAgICFkYXRhIHx8XG4gICAgICAgIChkYXRhICYmICFkYXRhLm9ubHlFeHRlcm5hbFRyaWdnZXIgJiYgIWRhdGEub25seUNsaWNrVHJpZ2dlciAmJiAhZGF0YS5vbmx5RVRyaWdnZXIpXG4gICAgKSB7XG4gICAgICAgIHRyaWdnZXJEYXRhLm9uQ2FtZXJhRW50ZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNDb29sZG93bi5oYXMobnBjKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG5wYywgJyBpbiBjb29sZG93bicpXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9IFxuICAgICAgICAgICAgLy8gZWxzZSBpZiAoXG4gICAgICAgICAgICAvLyAgICAgKHRoaXMuZGlhbG9nICYmIHRoaXMuZGlhbG9nLmlzRGlhbG9nT3BlbikgfHxcbiAgICAgICAgICAgIC8vICAgICAoZGF0YSAmJiBkYXRhLm9ubHlFeHRlcm5hbFRyaWdnZXIpIHx8XG4gICAgICAgICAgICAvLyAgICAgKGRhdGEgJiYgZGF0YS5vbmx5Q2xpY2tUcmlnZ2VyKVxuICAgICAgICAgICAgLy8gKSB7XG4gICAgICAgICAgICAvLyAgICAgcmV0dXJuXG4gICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICBhY3RpdmF0ZShucGMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhZGQgdHJpZ2dlclxuICAgIGlmICh0cmlnZ2VyRGF0YS5vbkNhbWVyYUVudGVyIHx8IHRyaWdnZXJEYXRhLm9uQ2FtZXJhRXhpdCkge1xuICAgICAgICB1dGlscy50cmlnZ2Vycy5hZGRUcmlnZ2VyKG5wYywyNTQsMSxbe3R5cGU6J3NwaGVyZScsIHBvc2l0aW9uOiBWZWN0b3IzLlplcm8oKSwgcmFkaXVzOiBkYXRhLnJlYWN0RGlzdGFuY2UgIT0gdW5kZWZpbmVkID8gZGF0YS5yZWFjdERpc3RhbmNlIDogNn1dLCB0cmlnZ2VyRGF0YS5vbkNhbWVyYUVudGVyID8gdHJpZ2dlckRhdGEub25DYW1lcmFFbnRlciA6IHVuZGVmaW5lZCwgdHJpZ2dlckRhdGEub25DYW1lcmFFeGl0ID8gdHJpZ2dlckRhdGEub25DYW1lcmFFeGl0IDogdW5kZWZpbmVkLCBDb2xvcjMuUmVkKCkpXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9sbG93UGF0aChucGM6RW50aXR5LCBkYXRhPzpGb2xsb3dQYXRoRGF0YSl7XG4gICAgICAgIFxuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIGxldCBwYXRoOmFueVtdID1bXVxuXG4gICAgaWYoZGF0YSl7XG4gICAgICAgIG5wY0RhdGEucGF0aERhdGEgPSBkYXRhXG5cbiAgICAgICAgaWYobnBjRGF0YS5mYWNlVXNlcil7XG4gICAgICAgICAgICBCaWxsYm9hcmQuZGVsZXRlRnJvbShucGMpXG4gICAgICAgIH1cblxuICAgICAgICBpZihkYXRhLnN0YXJ0aW5nUG9pbnQpe1xuICAgICAgICAgICAgZGF0YS5wYXRoPy5zcGxpY2UoMCxkYXRhLnN0YXJ0aW5nUG9pbnQgLSAxKVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBvcyA9IFRyYW5zZm9ybS5nZXQobnBjKS5wb3NpdGlvblxuICAgICAgICBwYXRoLnB1c2goVmVjdG9yMy5jcmVhdGUocG9zLngsIHBvcy55LCBwb3MueikpXG4gICAgICAgIGRhdGEucGF0aD8uZm9yRWFjaCgocCk9PntcbiAgICAgICAgICAgIHBhdGgucHVzaChwKVxuICAgICAgICB9KVxuXG4gICAgICAgIG9uRmluaXNoQ2FsbGJhY2tzLnNldChucGMsKCk9PntcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdvbiBmaW5pc2hlZCBjYWxsYmFjaycpXG4gICAgICAgICAgICBpZihkYXRhICYmIGRhdGEub25GaW5pc2hDYWxsYmFjayAmJiAhZGF0YS5sb29wKXtcbiAgICAgICAgICAgICAgICBkYXRhLm9uRmluaXNoQ2FsbGJhY2tcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0b3BQYXRoKG5wYylcbiAgICAgICAgfSlcblxuICAgICAgICBwb2ludFJlYWNoZWRDYWxsYmFja3Muc2V0KG5wYywgKCk9PntcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdvbiBwb2ludCByZWFjaGVkIGNhbGxiYWNrJylcbiAgICAgICAgICAgIGxldCBkYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgICAgICAgICAgZGF0YS5wYXRoSW5kZXggKz0gMVxuICAgICAgICAgICAgZGF0YS5vblJlYWNoZWRQb2ludENhbGxiYWNrID8gZGF0YS5vblJlYWNoZWRQb2ludENhbGxiYWNrIDogdW5kZWZpbmVkXG4gICAgICAgIH0pXG4gICAgICAgIHdhbGtOUEMobnBjLCBucGNEYXRhLCBkYXRhLnBhdGhUeXBlISwgZGF0YS50b3RhbER1cmF0aW9uLCBwYXRoLCBwb2ludFJlYWNoZWRDYWxsYmFja3MuZ2V0KG5wYyksIG9uRmluaXNoQ2FsbGJhY2tzLmdldChucGMpKVxuICAgIH1lbHNle1xuICAgICAgICBpZihucGNEYXRhLm1hbnVhbFN0b3Ape1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ3dlIGhhdmUgbWFudWFsIHN0b3AsIG5lZWQgdG8gcGljayBiYWNrIHVwIHdoZXJlIHdlIGxlZnQgb2ZmJylcbiAgICAgICAgfVxuICAgICAgICBlbHNle1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ3dlIGFyZSB0cnlpbmcgdG8gZm9sbG93IGEgcGF0aCB3aXRvdXQgc3RhcnRpbmcgb25lIHByaW9yJylcbiAgICAgICAgfVxuICAgIH1cbiAgICB9XG4vL1xuZnVuY3Rpb24gd2Fsa05QQyhucGM6RW50aXR5LCBucGNEYXRhOmFueSwgdHlwZTpOUENQYXRoVHlwZSwgZHVyYXRpb246bnVtYmVyLCBwYXRoOlZlY3RvcjNbXSwgcG9pbnRSZWFjaGVkQ2FsbGJhY2s/OmFueSwgZmluaXNoZWRDYWxsYmFjaz86YW55KXtcbiAgICAvL1xuICAgIGlmKElzRm9sbG93aW5nUGF0aC5oYXMobnBjKSl7XG4gICAgICAgIElzRm9sbG93aW5nUGF0aC5kZWxldGVGcm9tKG5wYylcbiAgICAgICAgd2Fsa2luZ1RpbWVycy5kZWxldGUobnBjKVxuICAgIH1cbiAgICBJc0ZvbGxvd2luZ1BhdGguY3JlYXRlKG5wYylcblxuICAgIGlmKHR5cGUpe1xuICAgICAgICBpZih0eXBlPT0gTlBDUGF0aFR5cGUuUklHSURfUEFUSCl7XG4gICAgICAgICAgICB1dGlscy5wYXRocy5zdGFydFN0cmFpZ2h0UGF0aChucGMsIHBhdGgsIGR1cmF0aW9uLHRydWUsXG4gICAgICAgICAgICAgICAgKCk9PntmaW5pc2hlZENhbGxiYWNrKCl9LCAoKT0+e3BvaW50UmVhY2hlZENhbGxiYWNrKCl9KVxuICAgICAgICB9XG4gICAgICAgIGVsc2V7XG4gICAgICAgICAgICB1dGlscy5wYXRocy5zdGFydFNtb290aFBhdGgobnBjLCBwYXRoLCBkdXJhdGlvbiwgMzAsIHRydWUsIFxuICAgICAgICAgICAgICAgICgpPT57ZmluaXNoZWRDYWxsYmFjaygpfSwgKCk9Pntwb2ludFJlYWNoZWRDYWxsYmFjaygpfSlcbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgZWxzZXtcbiAgICAgICAgdXRpbHMucGF0aHMuc3RhcnRTbW9vdGhQYXRoKG5wYywgcGF0aCwgZHVyYXRpb24sIDIwLCB0cnVlLCBcbiAgICAgICAgICAgICgpPT57ZmluaXNoZWRDYWxsYmFjaygpfSwgKCk9Pntwb2ludFJlYWNoZWRDYWxsYmFjaygpfSlcbiAgICB9ICAgXG5cbiAgICBpZiAobnBjRGF0YS53YWxraW5nQW5pbSkge1xuICAgICAgICAvLyBpZiAodGhpcy5lbmRBbmltVGltZXIuaGFzQ29tcG9uZW50KE5QQ0RlbGF5KSkge1xuICAgICAgICAvLyAgIHRoaXMuZW5kQW5pbVRpbWVyLnJlbW92ZUNvbXBvbmVudChOUENEZWxheSlcbiAgICAgICAgLy8gfVxuICAgICAgICBBbmltYXRvci5wbGF5U2luZ2xlQW5pbWF0aW9uKG5wYywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbSwgdHJ1ZSlcbiAgICAgICAgbnBjRGF0YS5sYXN0UGxheWVkQW5pbSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykud2Fsa2luZ0FuaW1cbiAgICAgIH1cbiAgICBucGNEYXRhLnN0YXRlID0gTlBDU3RhdGUuRk9MTE9XUEFUSFxuICAgIGNvbnNvbGUubG9nKCdkZWJ1ZyBoZXJlJylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0b3BXYWxraW5nKG5wYzpFbnRpdHksIGR1cmF0aW9uPzogbnVtYmVyLCBmaW5pc2hlZD86Ym9vbGVhbikge1xuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIG5wY0RhdGEuc3RhdGUgPSBOUENTdGF0ZS5TVEFORElOR1xuICAgIG5wY0RhdGEubWFudWFsU3RvcCA9IHRydWVcblxuICAgIHN0b3BQYXRoKG5wYylcblxuICAgIGlmIChkdXJhdGlvbikge1xuICAgICAgICB1dGlscy50aW1lcnMuc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgLy9pZiAodGhpcy5kaWFsb2cgJiYgdGhpcy5kaWFsb2cuaXNEaWFsb2dPcGVuKSByZXR1cm5cbiAgICAgICAgICAgIGlmKG5wY0RhdGEucGF0aCl7XG4gICAgICAgICAgICAgICAgQW5pbWF0b3Iuc3RvcEFsbEFuaW1hdGlvbnMobnBjLCB0cnVlKVxuICAgICAgICAgICAgICAgIGlmKG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykud2Fsa2luZ0FuaW0pe1xuICAgICAgICAgICAgICAgICAgICBBbmltYXRvci5wbGF5U2luZ2xlQW5pbWF0aW9uKG5wYywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbSx0cnVlKVxuICAgICAgICAgICAgICAgICAgICBucGNEYXRhLmxhc3RQbGF5ZWRBbmltID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgZHVyYXRpb24gPSBucGNEYXRhLnBhdGhEYXRhLnRvdGFsRHVyYXRpb25cbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudFRpbWVyOm51bWJlciA9IHdhbGtpbmdUaW1lcnMuZ2V0KG5wYykhXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2N1cnJlbnQgdGltZSBpcycsIGN1cnJlbnRUaW1lcilcbiAgICAgICAgICAgICAgICBpZihjdXJyZW50VGltZXIpe1xuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbiAtPSBjdXJyZW50VGltZXJcbiAgICAgICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICAgICAgbGV0IHBhdGg6YW55W10gPSBbXVxuICAgICAgICAgICAgICAgIG5wY0RhdGEucGF0aERhdGEucGF0aC5mb3JFYWNoKChwOmFueSk9PntcbiAgICAgICAgICAgICAgICAgICAgcGF0aC5wdXNoKHApXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBwYXRoLnNwbGljZSgwLG5wY0RhdGEucGF0aEluZGV4KVxuICAgIFxuICAgICAgICAgICAgICAgIGxldCBwb3MgPSBUcmFuc2Zvcm0uZ2V0KG5wYykucG9zaXRpb25cbiAgICAgICAgICAgICAgICBwYXRoLnVuc2hpZnQoVmVjdG9yMy5jcmVhdGUocG9zLngsIHBvcy55LCBwb3MueikpXG4gICAgXG4gICAgICAgICAgICAgICAgbnBjRGF0YS5tYW51YWxTdG9wID0gZmFsc2VcbiAgICAgICAgICAgICAgICB3YWxrTlBDKG5wYyxucGNEYXRhLCBucGNEYXRhLnBhdGhEYXRhLnBhdGhUeXBlLCBkdXJhdGlvbiwgcGF0aCwgcG9pbnRSZWFjaGVkQ2FsbGJhY2tzLmdldChucGMpLCBvbkZpbmlzaENhbGxiYWNrcy5nZXQobnBjKSkgICAgXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxkdXJhdGlvbiAqIDEwMDApXG4gICAgfVxufS8vXG5cbmZ1bmN0aW9uIHN0b3BQYXRoKG5wYzpFbnRpdHkpe1xuICAgIHV0aWxzLnBhdGhzLnN0b3BQYXRoKG5wYylcbiAgICBJc0ZvbGxvd2luZ1BhdGguZGVsZXRlRnJvbShucGMpXG5cbiAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICBpZiAobnBjRGF0YS53YWxraW5nQW5pbSkge1xuICAgICAgICBBbmltYXRvci5wbGF5U2luZ2xlQW5pbWF0aW9uKG5wYywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbSlcbiAgICAgICAgbnBjRGF0YS5sYXN0UGxheWVkQW5pbSA9IG5wY0RhdGEuaWRsZUFuaW1cbiAgICB9XG5cbiAgICBpZighbnBjRGF0YS5tYW51YWxTdG9wKXtcbiAgICAgICAgaWYobnBjRGF0YS5wYXRoRGF0YS5sb29wKXtcbiAgICAgICAgICAgIG5wY0RhdGEucGF0aEluZGV4ID0gMFxuICAgICAgICAgICAgd2Fsa2luZ1RpbWVycy5kZWxldGUobnBjKVxuICAgICAgICAgICAgY29uc29sZS5sb2coJ3dlIGFyZSBsb29waW5nIHBhdGgnLCBucGNEYXRhKVxuICAgICAgICAgICAgZm9sbG93UGF0aChucGMsIG5wY0RhdGEucGF0aERhdGEpXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhucGNEYXRhKVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIENhbGxzIHRoZSBOUEMncyBhY3RpdmF0aW9uIGZ1bmN0aW9uIChzZXQgb24gTlBDIGRlZmluaXRpb24pLiBJZiBOUEMgaGFzIGBmYWNlVXNlcmAgPSB0cnVlLCBpdCB3aWxsIHJvdGF0ZSB0byBmYWNlIHRoZSBwbGF5ZXIuIEl0IHN0YXJ0cyBhIGNvb2xkb3duIGNvdW50ZXIgdG8gYXZvaWQgcmVhY3RpdmF0aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWN0aXZhdGUobnBjOkVudGl0eSkge1xuICAgIGFjdGl2ZU5QQyA9IG5wY1xuICAgIG9uQWN0aXZhdGVDYnMuZ2V0KG5wYykoKVxuXG4gICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgaWYgKG5wY0RhdGEuZmFjZVVzZXIpIHtcbiAgICAgICAgQmlsbGJvYXJkLmNyZWF0ZShucGMsIHtcbiAgICAgICAgICAgIGJpbGxib2FyZE1vZGU6QmlsbGJvYXJkTW9kZS5CTV9ZXG4gICAgICAgIH0pXG4gICAgfVxuICAgIGlzQ29vbGRvd24uc2V0KG5wYywgdHJ1ZSlcbiAgICBucGNEYXRhLmluQ29vbGRvd24gPSB0cnVlXG5cbiAgICB1dGlscy50aW1lcnMuc2V0VGltZW91dChcbiAgICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpc0Nvb2xkb3duLmRlbGV0ZShucGMpXG4gICAgICAgICAgICBucGNEYXRhQ29tcG9uZW50LmdldChucGMpLmluQ29vbGRvd24gPSBmYWxzZVxuICAgICAgICAgICAgaWYoQmlsbGJvYXJkLmhhcyhucGMpKXtcbiAgICAgICAgICAgICAgICBCaWxsYm9hcmQuZGVsZXRlRnJvbShucGMpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIDEwMDAgKiBucGNEYXRhLmNvb2xEb3duRHVyYXRpb25cbiAgICApXG4gICAgY29uc29sZS5sb2coJ2FjdGl2YXRlZCBucGMsJywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKSlcbn1cblxuZnVuY3Rpb24gZW5kSW50ZXJhY3Rpb24obnBjOkVudGl0eSkge1xuICAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgbnBjRGF0YS5zdGF0ZSA9IE5QQ1N0YXRlLlNUQU5ESU5HXG5cbiAgICAgICAgaWYgKG5wY0RpYWxvZ0NvbXBvbmVudC5oYXMobnBjKSAmJiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYykudmlzaWJsZSkge1xuICAgICAgICAgICAgY2xvc2VEaWFsb2cobnBjKVxuICAgICAgICB9XG5cbiAgICAgICAgcGxheUFuaW1hdGlvbihucGMsIG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykuaWRsZUFuaW0pXG5cbiAgICAgICAgaWYobnBjRGF0YS5mYWNlVXNlcil7XG4gICAgICAgICAgICBCaWxsYm9hcmQuZGVsZXRlRnJvbShucGMpXG4gICAgICAgIH1cblxuICAgIC8vIGlmICh0aGlzLmJ1YmJsZSAmJiB0aGlzLmJ1YmJsZS5pc0J1YmxlT3Blbikge1xuICAgIC8vICAgdGhpcy5idWJibGUuY2xvc2VEaWFsb2dXaW5kb3coKVxuICAgIC8vIH1cbn1cblxuLyoqXG4gKiBFbmRzIGludGVyYWN0aW9uIGFuZCBjYWxscyB0aGUgb25XYWxrQXdheSBmdW5jdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlV2Fsa0F3YXkobnBjOkVudGl0eSkge1xuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIGlmIChucGNEYXRhLnN0YXRlID09IE5QQ1N0YXRlLkZPTExPV1BBVEgpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZW5kSW50ZXJhY3Rpb24obnBjKVxuXG4gICAgaWYgKG9uV2Fsa0F3YXlDYnMuZ2V0KG5wYykpIHtcbiAgICAgICAgb25XYWxrQXdheUNicy5nZXQobnBjKSgpXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGxheUFuaW1hdGlvbihucGM6RW50aXR5LCBhbmltOnN0cmluZywgbm9Mb29wPzpib29sZWFuLCBkdXJhdGlvbj86bnVtYmVyKXtcbiAgICBsZXQgYW5pbWF0aW9ucyA9IEFuaW1hdG9yLmdldE11dGFibGUobnBjKVxuICAgIGlmKGFuaW1hdGlvbnMuc3RhdGVzLmZpbHRlcigoYW5pbWF0aW9uKT0+IGFuaW1hdGlvbi5uYW1lID09PSBhbmltKS5sZW5ndGggPT0gMCl7XG4gICAgICAgIGFuaW1hdGlvbnMuc3RhdGVzLnB1c2goe25hbWU6YW5pbSwgY2xpcDphbmltLCBsb29wOiBub0xvb3A/IGZhbHNlIDogdHJ1ZX0pXG4gICAgfVxuXG4gICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgaWYobnBjRGF0YS5zdGF0ZSA9PSBOUENTdGF0ZS5GT0xMT1dQQVRIKXtcbiAgICAgICAgdXRpbHMucGF0aHMuc3RvcFBhdGgobnBjKVxuICAgIH1cblxuICAgIGlmKGFuaW1UaW1lcnMuaGFzKG5wYykpe1xuICAgICAgICB1dGlscy50aW1lcnMuY2xlYXJUaW1lb3V0KGFuaW1UaW1lcnMuZ2V0KG5wYykpXG4gICAgICAgIGFuaW1UaW1lcnMuZGVsZXRlKG5wYylcbiAgICB9XG5cbiAgICBBbmltYXRvci5zdG9wQWxsQW5pbWF0aW9ucyhucGMpXG4gICAgQW5pbWF0b3IucGxheVNpbmdsZUFuaW1hdGlvbihucGMsIGFuaW0sIHRydWUpXG4gICAgaWYoZHVyYXRpb24pe1xuICAgICAgICBhbmltVGltZXJzLnNldChucGMsIHV0aWxzLnRpbWVycy5zZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgICBhbmltVGltZXJzLmRlbGV0ZShucGMpXG4gICAgICAgIH0sIDEwMDAgKiBkdXJhdGlvbikpXG4gICAgfSBcblxuICAgIG5wY0RhdGEubGFzdFBsYXllZEFuaW0gPSBhbmltXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VJZGxlQW5pbShucGM6RW50aXR5LCBhbmltYXRpb246c3RyaW5nLCBwbGF5Pzpib29sZWFuKXtcbiAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICBucGNEYXRhLmlkbGVBbmltID0gYW5pbWF0aW9uXG4gICAgaWYocGxheSl7XG4gICAgICAgIHBsYXlBbmltYXRpb24obnBjLCBhbmltYXRpb24sIHRydWUpXG4gICAgICAgIG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykubGFzdFBsYXllZEFuaW0gPSBhbmltYXRpb25cbiAgICB9XG59Il19
|
|
368
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25wYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQWlCLE1BQU0sRUFBVSxhQUFhLEVBQWMsWUFBWSxFQUFDLFlBQVksRUFBQyxtQkFBbUIsRUFBQyxTQUFTLEVBQWlCLE1BQU0sY0FBYyxDQUFBO0FBQ2pNLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMzRCxPQUFPLEVBQTJCLFdBQVcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFlLE1BQU0sU0FBUyxDQUFDO0FBQy9GLE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBdUIsSUFBSSxHQUFHLEVBQUUsQ0FBQTtBQUMxRCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQTtBQUMzRCxNQUFNLENBQUMsSUFBSSxTQUFTLEdBQVUsQ0FBQyxDQUFBO0FBRS9CLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUE7QUFDdkQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0FBRXpELE1BQU0sVUFBVSxHQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFBO0FBQzlDLE1BQU0sYUFBYSxHQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFBO0FBQ2pELE1BQU0sYUFBYSxH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QVMsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNuQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQTtLQUN2RDtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRvciwgQXZhdGFyU2hhcGUsIEJpbGxib2FyZCwgQmlsbGJvYXJkTW9kZSwgZW5naW5lLCBFbnRpdHksIEdsdGZDb250YWluZXIsIElucHV0QWN0aW9uLE1lc2hDb2xsaWRlcixNZXNoUmVuZGVyZXIscG9pbnRlckV2ZW50c1N5c3RlbSxUcmFuc2Zvcm0sIFRyYW5zZm9ybVR5cGUgfSBmcm9tICdAZGNsL3Nkay9lY3MnXG5pbXBvcnQgeyBDb2xvcjMsIFF1YXRlcm5pb24sIFZlY3RvcjMgfSBmcm9tICdAZGNsL3Nkay9tYXRoJ1xuaW1wb3J0IHsgRm9sbG93UGF0aERhdGEsIE5QQ0RhdGEsIE5QQ1BhdGhUeXBlLCBOUENTdGF0ZSwgTlBDVHlwZSwgVHJpZ2dlckRhdGEgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJ0BkY2wtc2RrL3V0aWxzJ1xuaW1wb3J0IHsgSXNGb2xsb3dpbmdQYXRoIH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IGhhbmRsZURpYWxvZ1R5cGluZywgaGFuZGxlUGF0aFRpbWVzIH0gZnJvbSAnLi9zeXN0ZW1zJztcbmltcG9ydCB7IGFkZERpYWxvZywgY2xvc2VEaWFsb2csIG5wY0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGlhbG9nJztcblxuZXhwb3J0IGNvbnN0IHdhbGtpbmdUaW1lcnM6IE1hcDxFbnRpdHksbnVtYmVyPiA9IG5ldyBNYXAoKVxuZXhwb3J0IGNvbnN0IG5wY0RhdGFDb21wb25lbnQ6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmV4cG9ydCBsZXQgYWN0aXZlTlBDOm51bWJlciA9IDBcblxuY29uc3Qgd2Fsa2luZ1N5c3RlbSA9IGVuZ2luZS5hZGRTeXN0ZW0oaGFuZGxlUGF0aFRpbWVzKVxuY29uc3QgZGlhbG9nU3lzdGVtID0gZW5naW5lLmFkZFN5c3RlbShoYW5kbGVEaWFsb2dUeXBpbmcpXG5cbmNvbnN0IGlzQ29vbGRvd246IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmNvbnN0IG9uQWN0aXZhdGVDYnM6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmNvbnN0IG9uV2Fsa0F3YXlDYnM6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmNvbnN0IGFuaW1UaW1lcnM6IE1hcDxFbnRpdHksYW55PiA9IG5ldyBNYXAoKVxuY29uc3QgcG9pbnRSZWFjaGVkQ2FsbGJhY2tzOiBNYXA8RW50aXR5LCBhbnk+ID0gbmV3IE1hcCgpXG5jb25zdCBvbkZpbmlzaENhbGxiYWNrczogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd0RlYnVnKGRlYnVnOmJvb2xlYW4pe1xuICAgIHV0aWxzLnRyaWdnZXJzLmVuYWJsZURlYnVnRHJhdyhkZWJ1Zylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGEobnBjOkVudGl0eSl7XG4gICAgcmV0dXJuIG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZShcbiAgICB0cmFuc2Zvcm06IGFueSxcbiAgICBkYXRhOiBOUENEYXRhXG4pe1xuICAgIGxldCBucGMgPSBlbmdpbmUuYWRkRW50aXR5KClcblxuICAgIGxldCB0OlRyYW5zZm9ybVR5cGUgPSB7cG9zaXRpb246IHRyYW5zZm9ybS5wb3NpdGlvbiA/IHRyYW5zZm9ybS5wb3NpdGlvbiA6IFZlY3RvcjMuY3JlYXRlKDAsMCwwKSwgcm90YXRpb246IHRyYW5zZm9ybS5yb3RhdGlvbiA/IHRyYW5zZm9ybS5yb3RhdGlvbiA6IFF1YXRlcm5pb24uWmVybygpLCBzY2FsZTogdHJhbnNmb3JtLnNjYWxlID8gdHJhbnNmb3JtLnNjYWxlIDogVmVjdG9yMy5PbmUoKX1cbiAgICBUcmFuc2Zvcm0uY3JlYXRlKG5wYywgdClcblxuICAgIG5wY0RhdGFDb21wb25lbnQuc2V0KG5wYyx7XG4gICAgICAgIGludHJvZHVjZWQ6IGZhbHNlLFxuICAgICAgICBpbkNvb2xkb3duOiBmYWxzZSxcbiAgICAgICAgY29vbERvd25EdXJhdGlvbjogZGF0YSAmJiBkYXRhLmNvb2xEb3duRHVyYXRpb24gPyBkYXRhLmNvb2xEb3duRHVyYXRpb24gOiA1LFxuICAgICAgICBmYWNlVXNlcjpkYXRhLmZhY2VVc2VyLFxuICAgICAgICB3YWxraW5nU3BlZWQ6MixcbiAgICAgICAgd2Fsa2luZ0FuaW06IGRhdGEgJiYgZGF0YS53YWxraW5nQW5pbSA/IGRhdGEud2Fsa2luZ0FuaW0gOiB1bmRlZmluZWQsXG4gICAgICAgIGJ1YmJsZUhlaWdodDoyLFxuICAgICAgICBwYXRoRGF0YTogZGF0YS5wYXRoRGF0YSA/IGRhdGEucGF0aERhdGEgOiB1bmRlZmluZWQsXG4gICAgICAgIGN1cnJlbnRQYXRoRGF0YTogW10sXG4gICAgICAgIG1hbnVhbFN0b3A6ZmFsc2UsXG4gICAgICAgIHBhdGhJbmRleDowLFxuICAgICAgICBzdGF0ZTpOUENTdGF0ZS5TVEFORElORyxcbiAgICAgICAgaWRsZUFuaW06IGRhdGEgJiYgZGF0YS5pZGxlQW5pbSA/IGRhdGEuaWRsZUFuaW0gOiBcIklkbGVcIlxuICAgIH0pXG5cbiAgICBpZihkYXRhICYmIGRhdGEubm9VSSl7fVxuICAgIGVsc2UgaWYoZGF0YSAmJiBkYXRhLnBvcnRyYWl0KXt9XG4gICAgZWxzZXtcbiAgICAgICAgYWRkRGlhbG9nKG5wYywgZGF0YSAmJiBkYXRhLmRpYWxvZ1NvdW5kID8gZGF0YS5kaWFsb2dTb3VuZCA6IHVuZGVmaW5lZClcbiAgICB9XG5cbiAgICBvbkFjdGl2YXRlQ2JzLnNldChucGMsICgpPT57XG4gICAgICAgIGRhdGEub25BY3RpdmF0ZSgpXG4gICAgfSlcblxuICAgIGlmIChkYXRhICYmIGRhdGEuaGFzT3duUHJvcGVydHkoXCJvbldhbGtBd2F5XCIpKSB7XG4gICAgICAgIG9uV2Fsa0F3YXlDYnMuc2V0KG5wYywgKCk9PntcbiAgICAgICAgICAgIGlmKCFkYXRhIHx8ICFkYXRhLmNvbnRpbnVlT25XYWxrQXdheSl7XG4gICAgICAgICAgICAgICAgaWYobnBjRGlhbG9nQ29tcG9uZW50LmhhcyhucGMpKXtcbiAgICAgICAgICAgICAgICAgICAgbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpLnZpc2libGUgPSBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2V7XG4gICAgICAgICAgICAgICAgaWYobnBjRGlhbG9nQ29tcG9uZW50LmhhcyhucGMpKXtcbiAgICAgICAgICAgICAgICAgICAgbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpLnZpc2libGUgPSBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEub25XYWxrQXdheSEoKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGFkZE5QQ0JvbmVzKG5wYywgZGF0YSlcbiAgICBhZGRDbGlja1JlYWN0aW9ucyhucGMsIGRhdGEpXG4gICAgYWRkVHJpZ2dlckFyZWEobnBjLCBkYXRhKVxuICAgIFxuICAgIGlmIChkYXRhICYmIGRhdGEucGF0aERhdGEgJiYgZGF0YS5wYXRoRGF0YS5zcGVlZCkge1xuICAgICAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgICAgbnBjRGF0YS53YWxraW5nU3BlZWQgPSBkYXRhLnBhdGhEYXRhLnNwZWVkXG4gICAgfVxuXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5jb29sRG93bkR1cmF0aW9uKSB7XG4gICAgICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgICAgICBucGNEYXRhLmNvb2xEb3duRHVyYXRpb24gPSBkYXRhLmNvb2xEb3duRHVyYXRpb25cbiAgICB9XG5cbiAgICBpZiAoZGF0YSAmJiBkYXRhLnBhdGhEYXRhKXtcbiAgICAgICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgICAgIC8vbnBjRGF0YS5jdXJyZW50UGF0aERhdGEgPSBucGNEYXRhLnBhdGhEYXRhXG4gICAgICAgIGZvbGxvd1BhdGgobnBjLCBucGNEYXRhLnBhdGhEYXRhKVxuICAgIH1cblxuICAgIHJldHVybiBucGNcbn1cblxuZnVuY3Rpb24gYWRkTlBDQm9uZXMobnBjOkVudGl0eSwgZGF0YTpOUENEYXRhKXtcbiAgICBzd2l0Y2goZGF0YS50eXBlKXtcbiAgICAgICAgY2FzZSBOUENUeXBlLkFWQVRBUjpcbiAgICAgICAgICAgIEF2YXRhclNoYXBlLmNyZWF0ZShucGMsIHtcbiAgICAgICAgICAgICAgICBpZDogXCJucGNcIixcbiAgICAgICAgICAgICAgICBuYW1lOiBcIk5QQ1wiLFxuICAgICAgICAgICAgICAgIGJvZHlTaGFwZTpcInVybjpkZWNlbnRyYWxhbmQ6b2ZmLWNoYWluOmJhc2UtYXZhdGFyczpCYXNlTWFsZVwiLFxuICAgICAgICAgICAgICAgIGVtb3RlczogW10sXG4gICAgICAgICAgICAgICAgd2VhcmFibGVzOiBbXG4gICAgICAgICAgICAgICAgICAgIFwidXJuOmRlY2VudHJhbGFuZDpvZmYtY2hhaW46YmFzZS1hdmF0YXJzOmZfZXllc18wMFwiLFxuICAgICAgICAgICAgICAgICAgICBcInVybjpkZWNlbnRyYWxhbmQ6b2ZmLWNoYWluOmJhc2UtYXZhdGFyczpmX2V5ZWJyb3dzXzAwXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidXJuOmRlY2VudHJhbGFuZDpvZmYtY2hhaW46YmFzZS1hdmF0YXJzOmZfbW91dGhfMDBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ1cm46ZGVjZW50cmFsYW5kOm9mZi1jaGFpbjpiYXNlLWF2YXRhcnM6Y29tZnlfc3BvcnRfc2FuZGFsc1wiLFxuICAgICAgICAgICAgICAgICAgICBcInVybjpkZWNlbnRyYWxhbmQ6b2ZmLWNoYWluOmJhc2UtYXZhdGFyczpzb2NjZXJfcGFudHNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ1cm46ZGVjZW50cmFsYW5kOm9mZi1jaGFpbjpiYXNlLWF2YXRhcnM6ZWxlZ2FudF9zd2VhdGVyXCIsXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBOUENUeXBlLkNVU1RPTTpcbiAgICAgICAgICAgIEdsdGZDb250YWluZXIuY3JlYXRlKG5wYywgeyBcbiAgICAgICAgICAgICAgICBzcmM6IGRhdGEgJiYgZGF0YS5tb2RlbCA/IGRhdGEubW9kZWwgOiBcIlwiIFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIEFuaW1hdG9yLmNyZWF0ZShucGMsIHtcbiAgICAgICAgICAgICAgICBzdGF0ZXM6W3tcbiAgICAgICAgICAgICAgICAgICAgbmFtZTpkYXRhICYmIGRhdGEuaWRsZUFuaW0gPyBkYXRhLmlkbGVBbmltIDogJ0lkbGUnLFxuICAgICAgICAgICAgICAgICAgICBjbGlwOmRhdGEgJiYgZGF0YS5pZGxlQW5pbSA/IGRhdGEuaWRsZUFuaW0gOiAnSWRsZScsXG4gICAgICAgICAgICAgICAgICAgIGxvb3A6dHJ1ZVxuICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgICAgICAgIG5wY0RhdGEuaWRsZUFuaW0gPSBkYXRhICYmIGRhdGEuaWRsZUFuaW0gPyBkYXRhLmlkbGVBbmltIDogJ0lkbGUnXG4gICAgICAgICAgICBucGNEYXRhLmxhc3RQbGF5ZWRBbmltID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5pZGxlQW5pbVxuXG4gICAgICAgICAgICBBbmltYXRvci5wbGF5U2luZ2xlQW5pbWF0aW9uKG5wYywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5pZGxlQW5pbSlcblxuXG4gICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLndhbGtpbmdBbmltKSB7XG4gICAgICAgICAgICAgICAgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbSA9IGRhdGEud2Fsa2luZ0FuaW1cbiAgICAgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFuaW1hdG9yLmdldE11dGFibGUobnBjKVxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbnMuc3RhdGVzLnB1c2goe25hbWU6ZGF0YS53YWxraW5nQW5pbSwgY2xpcDogZGF0YS53YWxraW5nQW5pbSwgbG9vcDp0cnVlfSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBOUENUeXBlLkJMQU5LOlxuICAgICAgICAgICAgTWVzaFJlbmRlcmVyLnNldEJveChucGMpXG4gICAgICAgICAgICBNZXNoQ29sbGlkZXIuc2V0Qm94KG5wYylcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgfVxufVxuXG5mdW5jdGlvbiBhZGRDbGlja1JlYWN0aW9ucyhucGM6RW50aXR5LCBkYXRhOk5QQ0RhdGEpe1xuICAgIGxldCBhY3RpdmF0ZUJ1dHRvbiA9IGRhdGEgJiYgZGF0YS5vbmx5Q2xpY2tUcmlnZ2VyID8gSW5wdXRBY3Rpb24uSUFfUE9JTlRFUiA6IElucHV0QWN0aW9uLklBX1BSSU1BUllcblxuICAgIHBvaW50ZXJFdmVudHNTeXN0ZW0ub25Qb2ludGVyRG93bihcbiAgICAgICAgbnBjLFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoaXNDb29sZG93bi5oYXMobnBjKSB8fCAobnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpLnZpc2libGUpKSByZXR1cm5cbiAgICAgICAgICAgIGFjdGl2YXRlKG5wYylcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgYnV0dG9uOiBhY3RpdmF0ZUJ1dHRvbixcbiAgICAgICAgICAgIGhvdmVyVGV4dDogZGF0YSAmJiBkYXRhLmhvdmVyVGV4dCA/IGRhdGEuaG92ZXJUZXh0IDogJ1RhbGsnLFxuICAgICAgICAgICAgc2hvd0ZlZWRiYWNrOiBkYXRhICYmIGRhdGEub25seUV4dGVybmFsVHJpZ2dlciA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgICApXG5cbiAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5vbmx5RXh0ZXJuYWxUcmlnZ2VyKSB7XG4gICAgICAgIHBvaW50ZXJFdmVudHNTeXN0ZW0ucmVtb3ZlT25Qb2ludGVyRG93bihucGMpXG4gICAgICAgIH0gXG59XG5cbmZ1bmN0aW9uIGFkZFRyaWdnZXJBcmVhKG5wYzpFbnRpdHksIGRhdGE6TlBDRGF0YSl7XG5cbiAgICAgICAgbGV0IHRyaWdnZXJEYXRhOiBUcmlnZ2VyRGF0YSA9IHt9XG5cbiAgICAgICAgaWYgKCFkYXRhIHx8IChkYXRhICYmICFkYXRhLm9ubHlFeHRlcm5hbFRyaWdnZXIgJiYgIWRhdGEub25seUNsaWNrVHJpZ2dlciAmJiAhZGF0YS5vbmx5RVRyaWdnZXIpKXtcbiAgICAgICAgb25BY3RpdmF0ZUNicy5zZXQobnBjLCAoKT0+e1xuICAgICAgICAgICAgaWYgKGlzQ29vbGRvd24uaGFzKG5wYykpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhucGMsICcgaW4gY29vbGRvd24nKVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIChucGNEaWFsb2dDb21wb25lbnQuaGFzKG5wYykgJiYgbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpLnZpc2libGUpIHx8XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS5vbmx5RXh0ZXJuYWxUcmlnZ2VyKSB8fFxuICAgICAgICAgICAgICAgIChkYXRhICYmIGRhdGEub25seUNsaWNrVHJpZ2dlcilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YS5vbkFjdGl2YXRlKClcbiAgICAgICAgfSlcbiAgICAgICAgdHJpZ2dlckRhdGEub25DYW1lcmFFbnRlciA9IG9uQWN0aXZhdGVDYnMuZ2V0KG5wYylcbiAgICAgICAgfVxuXG4gICAgLy8gd2hlbiBleGl0aW5nIHRyaWdnZXJcbiAgICBpZiAoIWRhdGEgfHwgKGRhdGEgJiYgIWRhdGEuY29udGludWVPbldhbGtBd2F5KSkge1xuICAgICAgICB0cmlnZ2VyRGF0YS5vbkNhbWVyYUV4aXQgPSAoKSA9PiB7XG4gICAgICAgICAgICBoYW5kbGVXYWxrQXdheShucGMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB3aGVuIGVudGVyaW5nIHRyaWdnZXJcbiAgICBpZiAoXG4gICAgICAgICFkYXRhIHx8XG4gICAgICAgIChkYXRhICYmICFkYXRhLm9ubHlFeHRlcm5hbFRyaWdnZXIgJiYgIWRhdGEub25seUNsaWNrVHJpZ2dlciAmJiAhZGF0YS5vbmx5RVRyaWdnZXIpXG4gICAgKSB7XG4gICAgICAgIHRyaWdnZXJEYXRhLm9uQ2FtZXJhRW50ZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNDb29sZG93bi5oYXMobnBjKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG5wYywgJyBpbiBjb29sZG93bicpXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9IFxuICAgICAgICAgICAgLy8gZWxzZSBpZiAoXG4gICAgICAgICAgICAvLyAgICAgKHRoaXMuZGlhbG9nICYmIHRoaXMuZGlhbG9nLmlzRGlhbG9nT3BlbikgfHxcbiAgICAgICAgICAgIC8vICAgICAoZGF0YSAmJiBkYXRhLm9ubHlFeHRlcm5hbFRyaWdnZXIpIHx8XG4gICAgICAgICAgICAvLyAgICAgKGRhdGEgJiYgZGF0YS5vbmx5Q2xpY2tUcmlnZ2VyKVxuICAgICAgICAgICAgLy8gKSB7XG4gICAgICAgICAgICAvLyAgICAgcmV0dXJuXG4gICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICBhY3RpdmF0ZShucGMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBhZGQgdHJpZ2dlclxuICAgIGlmICh0cmlnZ2VyRGF0YS5vbkNhbWVyYUVudGVyIHx8IHRyaWdnZXJEYXRhLm9uQ2FtZXJhRXhpdCkge1xuICAgICAgICB1dGlscy50cmlnZ2Vycy5hZGRUcmlnZ2VyKG5wYywyNTQsMSxbe3R5cGU6J3NwaGVyZScsIHBvc2l0aW9uOiBWZWN0b3IzLlplcm8oKSwgcmFkaXVzOiBkYXRhLnJlYWN0RGlzdGFuY2UgIT0gdW5kZWZpbmVkID8gZGF0YS5yZWFjdERpc3RhbmNlIDogNn1dLCB0cmlnZ2VyRGF0YS5vbkNhbWVyYUVudGVyID8gdHJpZ2dlckRhdGEub25DYW1lcmFFbnRlciA6IHVuZGVmaW5lZCwgdHJpZ2dlckRhdGEub25DYW1lcmFFeGl0ID8gdHJpZ2dlckRhdGEub25DYW1lcmFFeGl0IDogdW5kZWZpbmVkLCBDb2xvcjMuUmVkKCkpXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9sbG93UGF0aChucGM6RW50aXR5LCBkYXRhPzpGb2xsb3dQYXRoRGF0YSl7XG4gICAgICAgIFxuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIGxldCBwYXRoOmFueVtdID1bXVxuXG4gICAgaWYoZGF0YSl7XG4gICAgICAgIG5wY0RhdGEucGF0aERhdGEgPSBkYXRhXG5cbiAgICAgICAgaWYobnBjRGF0YS5mYWNlVXNlcil7XG4gICAgICAgICAgICBCaWxsYm9hcmQuZGVsZXRlRnJvbShucGMpXG4gICAgICAgIH1cblxuICAgICAgICBpZihkYXRhLnN0YXJ0aW5nUG9pbnQpe1xuICAgICAgICAgICAgZGF0YS5wYXRoPy5zcGxpY2UoMCxkYXRhLnN0YXJ0aW5nUG9pbnQgLSAxKVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBvcyA9IFRyYW5zZm9ybS5nZXQobnBjKS5wb3NpdGlvblxuICAgICAgICBwYXRoLnB1c2goVmVjdG9yMy5jcmVhdGUocG9zLngsIHBvcy55LCBwb3MueikpXG4gICAgICAgIGRhdGEucGF0aD8uZm9yRWFjaCgocCk9PntcbiAgICAgICAgICAgIHBhdGgucHVzaChwKVxuICAgICAgICB9KVxuXG4gICAgICAgIG9uRmluaXNoQ2FsbGJhY2tzLnNldChucGMsKCk9PntcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdvbiBmaW5pc2hlZCBjYWxsYmFjaycpXG4gICAgICAgICAgICBpZihkYXRhICYmIGRhdGEub25GaW5pc2hDYWxsYmFjayAmJiAhZGF0YS5sb29wKXtcbiAgICAgICAgICAgICAgICBkYXRhLm9uRmluaXNoQ2FsbGJhY2tcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0b3BQYXRoKG5wYylcbiAgICAgICAgfSlcblxuICAgICAgICBwb2ludFJlYWNoZWRDYWxsYmFja3Muc2V0KG5wYywgKCk9PntcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdvbiBwb2ludCByZWFjaGVkIGNhbGxiYWNrJylcbiAgICAgICAgICAgIGxldCBkYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgICAgICAgICAgZGF0YS5wYXRoSW5kZXggKz0gMVxuICAgICAgICAgICAgZGF0YS5vblJlYWNoZWRQb2ludENhbGxiYWNrID8gZGF0YS5vblJlYWNoZWRQb2ludENhbGxiYWNrIDogdW5kZWZpbmVkXG4gICAgICAgIH0pXG4gICAgICAgIHdhbGtOUEMobnBjLCBucGNEYXRhLCBkYXRhLnBhdGhUeXBlISwgZGF0YS50b3RhbER1cmF0aW9uLCBwYXRoLCBwb2ludFJlYWNoZWRDYWxsYmFja3MuZ2V0KG5wYyksIG9uRmluaXNoQ2FsbGJhY2tzLmdldChucGMpKVxuICAgIH1lbHNle1xuICAgICAgICBpZihucGNEYXRhLm1hbnVhbFN0b3Ape1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ3dlIGhhdmUgbWFudWFsIHN0b3AsIG5lZWQgdG8gcGljayBiYWNrIHVwIHdoZXJlIHdlIGxlZnQgb2ZmJylcbiAgICAgICAgfVxuICAgICAgICBlbHNle1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ3dlIGFyZSB0cnlpbmcgdG8gZm9sbG93IGEgcGF0aCB3aXRvdXQgc3RhcnRpbmcgb25lIHByaW9yJylcbiAgICAgICAgfVxuICAgIH1cbiAgICB9XG4vL1xuZnVuY3Rpb24gd2Fsa05QQyhucGM6RW50aXR5LCBucGNEYXRhOmFueSwgdHlwZTpOUENQYXRoVHlwZSwgZHVyYXRpb246bnVtYmVyLCBwYXRoOlZlY3RvcjNbXSwgcG9pbnRSZWFjaGVkQ2FsbGJhY2s/OmFueSwgZmluaXNoZWRDYWxsYmFjaz86YW55KXtcbiAgICAvL1xuICAgIGlmKElzRm9sbG93aW5nUGF0aC5oYXMobnBjKSl7XG4gICAgICAgIElzRm9sbG93aW5nUGF0aC5kZWxldGVGcm9tKG5wYylcbiAgICAgICAgd2Fsa2luZ1RpbWVycy5kZWxldGUobnBjKVxuICAgIH1cbiAgICBJc0ZvbGxvd2luZ1BhdGguY3JlYXRlKG5wYylcblxuICAgIGlmKHR5cGUpe1xuICAgICAgICBpZih0eXBlPT0gTlBDUGF0aFR5cGUuUklHSURfUEFUSCl7XG4gICAgICAgICAgICB1dGlscy5wYXRocy5zdGFydFN0cmFpZ2h0UGF0aChucGMsIHBhdGgsIGR1cmF0aW9uLHRydWUsXG4gICAgICAgICAgICAgICAgKCk9PntmaW5pc2hlZENhbGxiYWNrKCl9LCAoKT0+e3BvaW50UmVhY2hlZENhbGxiYWNrKCl9KVxuICAgICAgICB9XG4gICAgICAgIGVsc2V7XG4gICAgICAgICAgICB1dGlscy5wYXRocy5zdGFydFNtb290aFBhdGgobnBjLCBwYXRoLCBkdXJhdGlvbiwgMzAsIHRydWUsIFxuICAgICAgICAgICAgICAgICgpPT57ZmluaXNoZWRDYWxsYmFjaygpfSwgKCk9Pntwb2ludFJlYWNoZWRDYWxsYmFjaygpfSlcbiAgICAgICAgICAgIH1cbiAgICB9XG4gICAgZWxzZXtcbiAgICAgICAgdXRpbHMucGF0aHMuc3RhcnRTbW9vdGhQYXRoKG5wYywgcGF0aCwgZHVyYXRpb24sIDIwLCB0cnVlLCBcbiAgICAgICAgICAgICgpPT57ZmluaXNoZWRDYWxsYmFjaygpfSwgKCk9Pntwb2ludFJlYWNoZWRDYWxsYmFjaygpfSlcbiAgICB9ICAgXG5cbiAgICBpZiAobnBjRGF0YS53YWxraW5nQW5pbSkge1xuICAgICAgICAvLyBpZiAodGhpcy5lbmRBbmltVGltZXIuaGFzQ29tcG9uZW50KE5QQ0RlbGF5KSkge1xuICAgICAgICAvLyAgIHRoaXMuZW5kQW5pbVRpbWVyLnJlbW92ZUNvbXBvbmVudChOUENEZWxheSlcbiAgICAgICAgLy8gfVxuICAgICAgICBBbmltYXRvci5wbGF5U2luZ2xlQW5pbWF0aW9uKG5wYywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbSwgdHJ1ZSlcbiAgICAgICAgbnBjRGF0YS5sYXN0UGxheWVkQW5pbSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykud2Fsa2luZ0FuaW1cbiAgICAgIH1cbiAgICBucGNEYXRhLnN0YXRlID0gTlBDU3RhdGUuRk9MTE9XUEFUSFxuICAgIGNvbnNvbGUubG9nKCdkZWJ1ZyBoZXJlJylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0b3BXYWxraW5nKG5wYzpFbnRpdHksIGR1cmF0aW9uPzogbnVtYmVyLCBmaW5pc2hlZD86Ym9vbGVhbikge1xuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIG5wY0RhdGEuc3RhdGUgPSBOUENTdGF0ZS5TVEFORElOR1xuICAgIG5wY0RhdGEubWFudWFsU3RvcCA9IHRydWVcblxuICAgIHN0b3BQYXRoKG5wYylcblxuICAgIGlmIChkdXJhdGlvbikge1xuICAgICAgICB1dGlscy50aW1lcnMuc2V0VGltZW91dCgoKT0+e1xuICAgICAgICAgICAgLy9pZiAodGhpcy5kaWFsb2cgJiYgdGhpcy5kaWFsb2cuaXNEaWFsb2dPcGVuKSByZXR1cm5cbiAgICAgICAgICAgIGlmKG5wY0RhdGEucGF0aCl7XG4gICAgICAgICAgICAgICAgQW5pbWF0b3Iuc3RvcEFsbEFuaW1hdGlvbnMobnBjLCB0cnVlKVxuICAgICAgICAgICAgICAgIGlmKG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykud2Fsa2luZ0FuaW0pe1xuICAgICAgICAgICAgICAgICAgICBBbmltYXRvci5wbGF5U2luZ2xlQW5pbWF0aW9uKG5wYywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbSx0cnVlKVxuICAgICAgICAgICAgICAgICAgICBucGNEYXRhLmxhc3RQbGF5ZWRBbmltID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgZHVyYXRpb24gPSBucGNEYXRhLnBhdGhEYXRhLnRvdGFsRHVyYXRpb25cbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudFRpbWVyOm51bWJlciA9IHdhbGtpbmdUaW1lcnMuZ2V0KG5wYykhXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2N1cnJlbnQgdGltZSBpcycsIGN1cnJlbnRUaW1lcilcbiAgICAgICAgICAgICAgICBpZihjdXJyZW50VGltZXIpe1xuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbiAtPSBjdXJyZW50VGltZXJcbiAgICAgICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICAgICAgbGV0IHBhdGg6YW55W10gPSBbXVxuICAgICAgICAgICAgICAgIG5wY0RhdGEucGF0aERhdGEucGF0aC5mb3JFYWNoKChwOmFueSk9PntcbiAgICAgICAgICAgICAgICAgICAgcGF0aC5wdXNoKHApXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBwYXRoLnNwbGljZSgwLG5wY0RhdGEucGF0aEluZGV4KVxuICAgIFxuICAgICAgICAgICAgICAgIGxldCBwb3MgPSBUcmFuc2Zvcm0uZ2V0KG5wYykucG9zaXRpb25cbiAgICAgICAgICAgICAgICBwYXRoLnVuc2hpZnQoVmVjdG9yMy5jcmVhdGUocG9zLngsIHBvcy55LCBwb3MueikpXG4gICAgXG4gICAgICAgICAgICAgICAgbnBjRGF0YS5tYW51YWxTdG9wID0gZmFsc2VcbiAgICAgICAgICAgICAgICB3YWxrTlBDKG5wYyxucGNEYXRhLCBucGNEYXRhLnBhdGhEYXRhLnBhdGhUeXBlLCBkdXJhdGlvbiwgcGF0aCwgcG9pbnRSZWFjaGVkQ2FsbGJhY2tzLmdldChucGMpLCBvbkZpbmlzaENhbGxiYWNrcy5nZXQobnBjKSkgICAgXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxkdXJhdGlvbiAqIDEwMDApXG4gICAgfVxufS8vXG5cbmZ1bmN0aW9uIHN0b3BQYXRoKG5wYzpFbnRpdHkpe1xuICAgIHV0aWxzLnBhdGhzLnN0b3BQYXRoKG5wYylcbiAgICBJc0ZvbGxvd2luZ1BhdGguZGVsZXRlRnJvbShucGMpXG5cbiAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICBpZiAobnBjRGF0YS53YWxraW5nQW5pbSkge1xuICAgICAgICBBbmltYXRvci5wbGF5U2luZ2xlQW5pbWF0aW9uKG5wYywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbSlcbiAgICAgICAgbnBjRGF0YS5sYXN0UGxheWVkQW5pbSA9IG5wY0RhdGEuaWRsZUFuaW1cbiAgICB9XG5cbiAgICBpZighbnBjRGF0YS5tYW51YWxTdG9wKXtcbiAgICAgICAgaWYobnBjRGF0YS5wYXRoRGF0YS5sb29wKXtcbiAgICAgICAgICAgIG5wY0RhdGEucGF0aEluZGV4ID0gMFxuICAgICAgICAgICAgd2Fsa2luZ1RpbWVycy5kZWxldGUobnBjKVxuICAgICAgICAgICAgY29uc29sZS5sb2coJ3dlIGFyZSBsb29waW5nIHBhdGgnLCBucGNEYXRhKVxuICAgICAgICAgICAgZm9sbG93UGF0aChucGMsIG5wY0RhdGEucGF0aERhdGEpXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhucGNEYXRhKVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIENhbGxzIHRoZSBOUEMncyBhY3RpdmF0aW9uIGZ1bmN0aW9uIChzZXQgb24gTlBDIGRlZmluaXRpb24pLiBJZiBOUEMgaGFzIGBmYWNlVXNlcmAgPSB0cnVlLCBpdCB3aWxsIHJvdGF0ZSB0byBmYWNlIHRoZSBwbGF5ZXIuIEl0IHN0YXJ0cyBhIGNvb2xkb3duIGNvdW50ZXIgdG8gYXZvaWQgcmVhY3RpdmF0aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWN0aXZhdGUobnBjOkVudGl0eSkge1xuICAgIGFjdGl2ZU5QQyA9IG5wY1xuICAgIG9uQWN0aXZhdGVDYnMuZ2V0KG5wYykoKVxuXG4gICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgaWYgKG5wY0RhdGEuZmFjZVVzZXIpIHtcbiAgICAgICAgQmlsbGJvYXJkLmNyZWF0ZShucGMsIHtcbiAgICAgICAgICAgIGJpbGxib2FyZE1vZGU6QmlsbGJvYXJkTW9kZS5CTV9ZXG4gICAgICAgIH0pXG4gICAgfVxuICAgIGlzQ29vbGRvd24uc2V0KG5wYywgdHJ1ZSlcbiAgICBucGNEYXRhLmluQ29vbGRvd24gPSB0cnVlXG5cbiAgICB1dGlscy50aW1lcnMuc2V0VGltZW91dChcbiAgICAgICAgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpc0Nvb2xkb3duLmRlbGV0ZShucGMpXG4gICAgICAgICAgICBucGNEYXRhQ29tcG9uZW50LmdldChucGMpLmluQ29vbGRvd24gPSBmYWxzZVxuICAgICAgICAgICAgaWYoQmlsbGJvYXJkLmhhcyhucGMpKXtcbiAgICAgICAgICAgICAgICBCaWxsYm9hcmQuZGVsZXRlRnJvbShucGMpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIDEwMDAgKiBucGNEYXRhLmNvb2xEb3duRHVyYXRpb25cbiAgICApXG4gICAgY29uc29sZS5sb2coJ2FjdGl2YXRlZCBucGMsJywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKSlcbn1cblxuZnVuY3Rpb24gZW5kSW50ZXJhY3Rpb24obnBjOkVudGl0eSkge1xuICAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgbnBjRGF0YS5zdGF0ZSA9IE5QQ1N0YXRlLlNUQU5ESU5HXG5cbiAgICAgICAgaWYgKG5wY0RpYWxvZ0NvbXBvbmVudC5oYXMobnBjKSAmJiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYykudmlzaWJsZSkge1xuICAgICAgICAgICAgY2xvc2VEaWFsb2cobnBjKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYobnBjRGF0YS5mYWNlVXNlcil7XG4gICAgICAgICAgICBCaWxsYm9hcmQuZGVsZXRlRnJvbShucGMpXG4gICAgICAgIH1cblxuICAgIC8vIGlmICh0aGlzLmJ1YmJsZSAmJiB0aGlzLmJ1YmJsZS5pc0J1YmxlT3Blbikge1xuICAgIC8vICAgdGhpcy5idWJibGUuY2xvc2VEaWFsb2dXaW5kb3coKVxuICAgIC8vIH1cbn1cblxuLyoqXG4gKiBFbmRzIGludGVyYWN0aW9uIGFuZCBjYWxscyB0aGUgb25XYWxrQXdheSBmdW5jdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlV2Fsa0F3YXkobnBjOkVudGl0eSkge1xuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIGlmIChucGNEYXRhLnN0YXRlID09IE5QQ1N0YXRlLkZPTExPV1BBVEgpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZW5kSW50ZXJhY3Rpb24obnBjKVxuXG4gICAgaWYgKG9uV2Fsa0F3YXlDYnMuZ2V0KG5wYykpIHtcbiAgICAgICAgb25XYWxrQXdheUNicy5nZXQobnBjKSgpXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGxheUFuaW1hdGlvbihucGM6RW50aXR5LCBhbmltOnN0cmluZywgbm9Mb29wPzpib29sZWFuLCBkdXJhdGlvbj86bnVtYmVyKXtcbiAgICBsZXQgYW5pbWF0aW9ucyA9IEFuaW1hdG9yLmdldE11dGFibGUobnBjKVxuICAgIGlmKGFuaW1hdGlvbnMuc3RhdGVzLmZpbHRlcigoYW5pbWF0aW9uKT0+IGFuaW1hdGlvbi5uYW1lID09PSBhbmltKS5sZW5ndGggPT0gMCl7XG4gICAgICAgIGFuaW1hdGlvbnMuc3RhdGVzLnB1c2goe25hbWU6YW5pbSwgY2xpcDphbmltLCBsb29wOiBub0xvb3A/IGZhbHNlIDogdHJ1ZX0pXG4gICAgfVxuXG4gICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgaWYobnBjRGF0YS5zdGF0ZSA9PSBOUENTdGF0ZS5GT0xMT1dQQVRIKXtcbiAgICAgICAgdXRpbHMucGF0aHMuc3RvcFBhdGgobnBjKVxuICAgIH1cblxuICAgIGlmKGFuaW1UaW1lcnMuaGFzKG5wYykpe1xuICAgICAgICB1dGlscy50aW1lcnMuY2xlYXJUaW1lb3V0KGFuaW1UaW1lcnMuZ2V0KG5wYykpXG4gICAgICAgIGFuaW1UaW1lcnMuZGVsZXRlKG5wYylcbiAgICB9XG5cbiAgICBBbmltYXRvci5zdG9wQWxsQW5pbWF0aW9ucyhucGMpXG4gICAgQW5pbWF0b3IucGxheVNpbmdsZUFuaW1hdGlvbihucGMsIGFuaW0sIHRydWUpXG5cbiAgICBpZihkdXJhdGlvbil7XG4gICAgICAgIGFuaW1UaW1lcnMuc2V0KG5wYywgdXRpbHMudGltZXJzLnNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgIGFuaW1UaW1lcnMuZGVsZXRlKG5wYylcbiAgICAgICAgICAgIEFuaW1hdG9yLnN0b3BBbGxBbmltYXRpb25zKG5wYylcbiAgICAgICAgICAgIGlmKG5wY0RhdGEuaWRsZUFuaW0pe1xuICAgICAgICAgICAgICAgIEFuaW1hdG9yLnBsYXlTaW5nbGVBbmltYXRpb24obnBjLCBucGNEYXRhLmlkbGVBbmltLCBmYWxzZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwMCAqIGR1cmF0aW9uKSlcbiAgICB9IFxuXG4gICAgbnBjRGF0YS5sYXN0UGxheWVkQW5pbSA9IGFuaW1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoYW5nZUlkbGVBbmltKG5wYzpFbnRpdHksIGFuaW1hdGlvbjpzdHJpbmcsIHBsYXk/OmJvb2xlYW4pe1xuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIG5wY0RhdGEuaWRsZUFuaW0gPSBhbmltYXRpb25cbiAgICBpZihwbGF5KXtcbiAgICAgICAgcGxheUFuaW1hdGlvbihucGMsIGFuaW1hdGlvbiwgdHJ1ZSlcbiAgICAgICAgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5sYXN0UGxheWVkQW5pbSA9IGFuaW1hdGlvblxuICAgIH1cbn0iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dcl-npc-toolkit",
|
|
3
|
-
"version": "1.0.6
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "A collection of tools for creating Non-Player-Characters (NPCs). These are capable of having conversations with the player, and play different animations.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"typings": "./dist/index.d.ts",
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"files": [
|
|
34
34
|
"dist"
|
|
35
35
|
],
|
|
36
|
-
"commit": "
|
|
36
|
+
"commit": "f43b9c10f7026b6ca24838ee26dfc634d09e6340"
|
|
37
37
|
}
|