Plugin Directory

Changeset 3232399


Ignore:
Timestamp:
01/31/2025 05:36:43 AM (14 months ago)
Author:
michael.heuberger
Message:

Update to version 7.0.3 from GitHub

Location:
videomail-for-ninja-forms
Files:
8 edited
1 copied

Legend:

Unmodified
Added
Removed
  • videomail-for-ninja-forms/tags/7.0.3/readme.txt

    r3231806 r3232399  
    55
    66Requires at least: 6.0
    7 Tested up to: 7.0.2
    8 Stable tag: 7.0.2
     7Tested up to: 7.0.3
     8Stable tag: 7.0.3
    99Requires PHP: 8.1.0
    1010Donate link: https://videomail.io/faq
     
    7171
    7272== Changelog ==
     73= 7.0.3 (31 Jan 2025) =
     74*Improvement:*
     75* Inject version in error reports
     76
    7377= 7.0.2 (30 Jan 2025) =
    7478*Fix:*
  • videomail-for-ninja-forms/tags/7.0.3/target/js/main.min.js

    r3231806 r3232399  
    1 let DEBUG=!1,VideomailFieldController=Marionette.Object.extend({videomailClient:null,fieldModel:null,channel:Backbone.Radio.channel("videomail"),initialize:function(){Backbone.Radio.DEBUG=DEBUG,this.listenToOnce(this.channel,"init:model",this.registerVideomailField),this.listenToOnce(this.channel,"attach:view",this.loadVideomailClient),this.listenTo(this.channel,"all",function(e){DEBUG&&console.log("Videomail channel event triggered:",e),this.listenTo(nfRadio.channel("nfMP"),"change:part",function(e){DEBUG&&console.log("nfMP channel event triggered:","change:part");e=e.currentElement?.attributes?.formContentData?.models||[];let i=this.fieldModel.cid;e.find(function(e){return e.cid===i})?this.loadVideomailClient():this.videomailClient.unload()})})},getFormId:function(){return this.fieldModel.get("formID")},registerVideomailField:function(e){this.fieldModel=e,this.channel.reply("validate:required",this.validateRequired,this),this.channel.reply("validate:modelData",this.validateVideomail,this),Backbone.Radio.channel("form-"+this.getFormId()).reply("maybe:submit",this.maybeSubmit,this,e)},loadVideomailClient:function(){let e=this.fieldModel.get("image_quality")||40;100<e?e=100:e<1&&(e=1);var i=this.fieldModel.get("verbose")||DEBUG;DEBUG=DEBUG||i,Backbone.Radio.DEBUG=Backbone.Radio.DEBUG||i,this.videomailClient=new VideomailClient.VideomailClient({siteName:this.fieldModel.get("site_name"),video:{limitSeconds:this.fieldModel.get("limit_seconds")||90,width:this.fieldModel.get("width")||320,stretch:this.fieldModel.get("stretch")||!1,countdown:this.fieldModel.get("countdown")||!1},audio:{enabled:this.fieldModel.get("audio_enabled")},image:{quality:e/100},selectors:{containerId:"videomail",submitButtonSelector:".submit-wrap input"},callbacks:{adjustFormDataBeforePosting:this.adjustFormDataBeforePostingToVideomailServer.bind(this)},loadUserMediaOnRecord:this.fieldModel.get("load_user_media_on_record"),enableAutoValidation:!1,enableAutoSubmission:!1,verbose:i,versions:{ninjaFormPlugin:"unknown (above v7.0.1)"}}),this.videomailClient.on("PREVIEW",this.onPreview.bind(this)),this.videomailClient.on("SUBMITTED",this.onSubmitted.bind(this)),this.videomailClient.on("GOING_BACK",this.onGoingBack.bind(this)),this.videomailClient.show()},onPreview:function(e){this.fieldModel.set("videomail-key",e),this.fieldModel.set("value",e),Backbone.Radio.channel("fields").request("remove:error",this.fieldModel.get("id"),"required-error")},onSubmitted:function(e){let i=Backbone.Radio.channel("app").request("get:form",this.getFormId());i=i||this.fieldModel.collection.options.formModel,Backbone.Radio.channel("form-"+i.get("id")).request("add:extra","videomail",e.videomail),Backbone.Radio.channel("form-"+this.getFormId()).request("submit",i)},onGoingBack:function(){this.fieldModel.set("videomail-key",null),this.invalidate()},validateRequired:function(e,i){i=this.validateVideomail(i);return i||this.invalidate(),i},invalidate:function(){Backbone.Radio.channel("fields").request("add:error",this.fieldModel.get("id"),"required-error","Record and click on stop to see a preview video.")},validateVideomail:function(e){return(e=e||this.fieldModel).get("videomail-key")||!1},hasErrors:function(e){return 0<e.get("errors").length},maybeSubmit:function(e){let i=!0;var t=e.getExtra("videomail"),o=this.validateVideomail(),e=this.hasErrors(e);return t||e||!o||(this.videomailClient.submit(),i=!1),i},getMergeTagValue:function(e,i){let t=this.fieldModel.get(e);if(t&&("{wp:admin_email}"===t?t=window.nfVideomail.admin_email:(e=(e=t.match(/{field:(.*)}/i))&&e[1])!==t&&(t=t.replace(/{field:(.*)}/i,i[e]))),"undefined"!==t)return t},getFormValues:function(){let e;var i=Backbone.Radio.channel("app").request("get:form",this.getFormId()),i=(i?e=i.get("fields"):this.fieldModel.collection.options.formModel.get("fields").models&&(e=this.fieldModel.collection.options.formModel.get("fields").models),e.reduce(function(e,i){return e[i.get("key")]=i.get("value"),e},{}));return i},adjustFormDataBeforePostingToVideomailServer:function(e){var i=this.getFormValues();return e.from=this.getMergeTagValue("email_from",i),e.to=this.getMergeTagValue("email_to",i),e.subject=this.getMergeTagValue("email_subject",i),e.body=this.getMergeTagValue("email_body",i),e},onBeforeDestroy:function(){this.videomailClient.unload(),delete this.videomailClient}});jQuery(document).ready(function(){return new VideomailFieldController});
    2 //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuXG4vLyBtYW51YWwgc3dpdGNoIHRvIGhhdmUgbW9yZSBzdHVmZiBwcmludGVkIHRvIGNvbnNvbGVcbmxldCBERUJVRyA9IGZhbHNlO1xuXG4vLyBnb29kIGRvY3VtZW50YXRpb24gb24gYmFja2JvbmUgZXZlbnQgaGFuZGxpbmdcbi8vIGh0dHA6Ly9iYWNrYm9uZWpzLm9yZy8jRXZlbnRzXG5cbmNvbnN0IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlciA9IE1hcmlvbmV0dGUuT2JqZWN0LmV4dGVuZCh7XG4gIHZpZGVvbWFpbENsaWVudDogbnVsbCxcblxuICBmaWVsZE1vZGVsOiBudWxsLFxuXG4gIGNoYW5uZWw6IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJ2aWRlb21haWxcIiksXG5cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKCkge1xuICAgIEJhY2tib25lLlJhZGlvLkRFQlVHID0gREVCVUc7XG5cbiAgICB0aGlzLmxpc3RlblRvT25jZSh0aGlzLmNoYW5uZWwsIFwiaW5pdDptb2RlbFwiLCB0aGlzLnJlZ2lzdGVyVmlkZW9tYWlsRmllbGQpO1xuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJhdHRhY2g6dmlld1wiLCB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQpO1xuXG4gICAgLy8gdWdseSB3b3JrYXJvdW5kIHRvIG1ha2UgaXQgd29yayB3aXRoIHRoZSBjb25kaXRpb25hbCBwbHVnaW5cbiAgICB0aGlzLmxpc3RlblRvKHRoaXMuY2hhbm5lbCwgXCJhbGxcIiwgZnVuY3Rpb24gKGV2ZW50TmFtZSkge1xuICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJWaWRlb21haWwgY2hhbm5lbCBldmVudCB0cmlnZ2VyZWQ6XCIsIGV2ZW50TmFtZSk7XG5cbiAgICAgIC8vIG11c3QgYmUgY29taW5nIGJhY2sgZnJvbSBhIG11bHRpLXN0ZXAgd2hlcmVcbiAgICAgIC8vIHZpZGVvbWFpbCBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpc2VkLiBzbyBqdXN0IHJlc3VtZSBpdC5cbiAgICAgIHRoaXMubGlzdGVuVG8obmZSYWRpby5jaGFubmVsKFwibmZNUFwiKSwgXCJjaGFuZ2U6cGFydFwiLCBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICAgIERFQlVHICYmIGNvbnNvbGUubG9nKFwibmZNUCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgXCJjaGFuZ2U6cGFydFwiKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50TW9kZWxzID1cbiAgICAgICAgICBwYXJhbXMuY3VycmVudEVsZW1lbnQ/LmF0dHJpYnV0ZXM/LmZvcm1Db250ZW50RGF0YT8ubW9kZWxzIHx8IFtdO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRDaWQgPSB0aGlzLmZpZWxkTW9kZWwuY2lkO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbCA9IGN1cnJlbnRNb2RlbHMuZmluZChmdW5jdGlvbiAobW9kZWwpIHtcbiAgICAgICAgICByZXR1cm4gbW9kZWwuY2lkID09PSBjdXJyZW50Q2lkO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoY3VycmVudE1vZGVsKSB7XG4gICAgICAgICAgdGhpcy5sb2FkVmlkZW9tYWlsQ2xpZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aWRlb21haWxDbGllbnQudW5sb2FkKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIGdldEZvcm1JZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiZm9ybUlEXCIpO1xuICB9LFxuXG4gIHJlZ2lzdGVyVmlkZW9tYWlsRmllbGQ6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgdGhpcy5maWVsZE1vZGVsID0gZmllbGRNb2RlbDtcblxuICAgIC8vIGN1c3RvbSBmaWVsZCB2YWxpZGF0aW9uLCBzaW5jZSB3ZSBhcmVuJ3QgdXNpbmcgYSBzdGFuZGFyZCBgdmFsdWVgXG4gICAgLy8gZm9yIHRoZSB2aWRlb21haWwgaW5wdXRcbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTpyZXF1aXJlZFwiLCB0aGlzLnZhbGlkYXRlUmVxdWlyZWQsIHRoaXMpO1xuXG4gICAgdGhpcy5jaGFubmVsLnJlcGx5KFwidmFsaWRhdGU6bW9kZWxEYXRhXCIsIHRoaXMudmFsaWRhdGVWaWRlb21haWwsIHRoaXMpO1xuXG4gICAgLy8gY29udHJvbCBzdWJtaXNzaW9uIHByb2dyZXNzLFxuICAgIC8vIHNvIHRoYXQgd2UgY2FuIFBPU1QgdG8gdGhlIFZpZGVvbWFpbCBzZXJ2ZXIgZmlyc3RcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcGx5KFxuICAgICAgXCJtYXliZTpzdWJtaXRcIixcbiAgICAgIHRoaXMubWF5YmVTdWJtaXQsXG4gICAgICB0aGlzLFxuICAgICAgZmllbGRNb2RlbCxcbiAgICApO1xuICB9LFxuXG4gIGxvYWRWaWRlb21haWxDbGllbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpbWFnZV9xdWFsaXR5XCIpIHx8IDQwO1xuXG4gICAgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgIGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPSAxMDA7XG4gICAgfSBlbHNlIGlmIChpbWFnZVF1YWxpdHlQZXJjZW50YWdlIDwgMSkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDE7XG4gICAgfVxuXG4gICAgY29uc3QgdmVyYm9zZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ2ZXJib3NlXCIpIHx8IERFQlVHO1xuXG4gICAgLy8gbGF0ZSBvdmVycmlkZXNcbiAgICBERUJVRyA9IERFQlVHIHx8IHZlcmJvc2U7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBCYWNrYm9uZS5SYWRpby5ERUJVRyB8fCB2ZXJib3NlO1xuXG4gICAgdGhpcy52aWRlb21haWxDbGllbnQgPSBuZXcgVmlkZW9tYWlsQ2xpZW50LlZpZGVvbWFpbENsaWVudCh7XG4gICAgICBzaXRlTmFtZTogdGhpcy5maWVsZE1vZGVsLmdldChcInNpdGVfbmFtZVwiKSxcbiAgICAgIHZpZGVvOiB7XG4gICAgICAgIGxpbWl0U2Vjb25kczogdGhpcy5maWVsZE1vZGVsLmdldChcImxpbWl0X3NlY29uZHNcIikgfHwgOTAsXG4gICAgICAgIHdpZHRoOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwid2lkdGhcIikgfHwgMzIwLFxuICAgICAgICAvLyBUT0RPIEltcGxlbWVudCBvbiBWQyBzaWRlXG4gICAgICAgIHN0cmV0Y2g6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJzdHJldGNoXCIpIHx8IGZhbHNlLFxuICAgICAgICBjb3VudGRvd246IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJjb3VudGRvd25cIikgfHwgZmFsc2UsXG4gICAgICB9LFxuICAgICAgYXVkaW86IHtcbiAgICAgICAgZW5hYmxlZDogdGhpcy5maWVsZE1vZGVsLmdldChcImF1ZGlvX2VuYWJsZWRcIiksXG4gICAgICB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLFxuICAgICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIixcbiAgICAgIH0sXG4gICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgLy8gdWdseSBuYW1lIGVoP1xuICAgICAgICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3Rpbmc6XG4gICAgICAgICAgdGhpcy5hZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlci5iaW5kKHRoaXMpLFxuICAgICAgfSxcbiAgICAgIC8vIHdoZW4gdHJ1ZSwgdXNlciBtZWRpYSBpcyBsb2FkZWQgb25seSB3aGVuIHJlY29yZCBidXR0b24gaXMgcHJlc3NlZFxuICAgICAgbG9hZFVzZXJNZWRpYU9uUmVjb3JkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibG9hZF91c2VyX21lZGlhX29uX3JlY29yZFwiKSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byB2YWxpZGF0ZSB0aGUgaW5wdXRzXG4gICAgICBlbmFibGVBdXRvVmFsaWRhdGlvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gZGVhbCB3aXRoIGZvcm0gc3VibWlzc2lvbnNcbiAgICAgIGVuYWJsZUF1dG9TdWJtaXNzaW9uOiBmYWxzZSxcblxuICAgICAgLy8gbG9nIGFjdGlvbnMvZXZlbnRzIHRvIGNvbnNvbGVcbiAgICAgIHZlcmJvc2UsXG5cbiAgICAgIHZlcnNpb25zOiB7XG4gICAgICAgIG5pbmphRm9ybVBsdWdpbjogXCJ1bmtub3duIChhYm92ZSB2Ny4wLjEpXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJQUkVWSUVXXCIsIHRoaXMub25QcmV2aWV3LmJpbmQodGhpcykpO1xuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFwiU1VCTUlUVEVEXCIsIHRoaXMub25TdWJtaXR0ZWQuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJHT0lOR19CQUNLXCIsIHRoaXMub25Hb2luZ0JhY2suYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zaG93KCk7XG4gIH0sXG5cbiAgLy8gbmVlZGVkIHRvIGdldCB0aGUgdmlkZW9tYWlsIGtleSB3aGljaCBpcyByZXF1aXJlZCBiZWZvcmVcbiAgLy8gc3VibWl0dGluZyB0byB0aGUgdmlkZW9tYWlsIHNlcnZlclxuICBvblByZXZpZXc6IGZ1bmN0aW9uIChrZXkpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwuc2V0KFwidmlkZW9tYWlsLWtleVwiLCBrZXkpO1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2YWx1ZVwiLCBrZXkpO1xuXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZpZWxkc1wiKVxuICAgICAgLy8gY2xlYXJzIGFueSBwcmV2aW91cyBlcnJvcnNcbiAgICAgIC5yZXF1ZXN0KFwicmVtb3ZlOmVycm9yXCIsIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpZFwiKSwgXCJyZXF1aXJlZC1lcnJvclwiKTtcbiAgfSxcblxuICBvblN1Ym1pdHRlZDogZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgIGxldCBmb3JtTW9kZWwgPSBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiYXBwXCIpLnJlcXVlc3QoXCJnZXQ6Zm9ybVwiLCB0aGlzLmdldEZvcm1JZCgpKTtcblxuICAgIGlmICghZm9ybU1vZGVsKSB7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICAgIGZvcm1Nb2RlbCA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsO1xuICAgIH1cblxuICAgIC8vIFRPRE8gSXNuJ3QgJ2Zvcm0tJyArIGZvcm1Nb2RlbC5nZXQoJ2lkJykgdGhlIHNhbWUgYXMgdGhlIGZvcm1JRCBhbHJlYWR5P1xuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgZm9ybU1vZGVsLmdldChcImlkXCIpKS5yZXF1ZXN0KFxuICAgICAgXCJhZGQ6ZXh0cmFcIixcbiAgICAgIFwidmlkZW9tYWlsXCIsXG4gICAgICByZXN1bHQudmlkZW9tYWlsLFxuICAgICk7XG5cbiAgICAvLyByZXN0YXJ0IHN1Ym1pc3Npb24gYWdhaW4sIHRoaXMgdGltZSB0byB0aGUgcmVhbCB3cCBzaXRlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyB0aGlzLmdldEZvcm1JZCgpKS5yZXF1ZXN0KFwic3VibWl0XCIsIGZvcm1Nb2RlbCk7XG4gIH0sXG5cbiAgb25Hb2luZ0JhY2s6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwuc2V0KFwidmlkZW9tYWlsLWtleVwiLCBudWxsKTtcbiAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgfSxcblxuICB2YWxpZGF0ZVJlcXVpcmVkOiBmdW5jdGlvbiAoZWwsIGZpZWxkTW9kZWwpIHtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoZmllbGRNb2RlbCk7XG5cbiAgICBpZiAoIXZhbGlkKSB7XG4gICAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWQ7XG4gIH0sXG5cbiAgaW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIC8vIG92ZXJyaWRlIGRlZmF1bHQgYmVoYXZpb3Igc28gdGhhdCB3ZSBjYW4gc2V0IG91ciBvd24gZXJyb3IgdGV4dCBoZXJlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZpZWxkc1wiKS5yZXF1ZXN0KFxuICAgICAgXCJhZGQ6ZXJyb3JcIixcbiAgICAgIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpZFwiKSxcbiAgICAgIFwicmVxdWlyZWQtZXJyb3JcIixcbiAgICAgIFwiUmVjb3JkIGFuZCBjbGljayBvbiBzdG9wIHRvIHNlZSBhIHByZXZpZXcgdmlkZW8uXCIsXG4gICAgKTtcbiAgfSxcblxuICB2YWxpZGF0ZVZpZGVvbWFpbDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICBmaWVsZE1vZGVsID0gZmllbGRNb2RlbCB8fCB0aGlzLmZpZWxkTW9kZWw7XG4gICAgcmV0dXJuIGZpZWxkTW9kZWwuZ2V0KFwidmlkZW9tYWlsLWtleVwiKSB8fCBmYWxzZTtcbiAgfSxcblxuICBoYXNFcnJvcnM6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICByZXR1cm4gZm9ybU1vZGVsLmdldChcImVycm9yc1wiKS5sZW5ndGggPiAwO1xuICB9LFxuXG4gIG1heWJlU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgbGV0IG1heWJlID0gdHJ1ZTtcbiAgICBjb25zdCB2aWRlb21haWxTdWJtaXR0ZWQgPSBmb3JtTW9kZWwuZ2V0RXh0cmEoXCJ2aWRlb21haWxcIik7XG4gICAgY29uc3QgdmlkZW9tYWlsUmVjb3JkZWQgPSB0aGlzLnZhbGlkYXRlVmlkZW9tYWlsKCk7XG4gICAgY29uc3QgZXJyb3IgPSB0aGlzLmhhc0Vycm9ycyhmb3JtTW9kZWwpO1xuXG4gICAgLy8gaG9sZCBvbiB3aXRoIGZpbmFsIGZvcm0gc3VibWlzc2lvbiB3aGVuIG9uZSB3YXMgcmVjb3JkZWRcbiAgICAvLyBidXQgaGFzbid0IGJlZW4gc3VibWl0dGVkIHRvIHRoZSB2aWRlb21haWwgc2VydmVyIHlldFxuICAgIGlmICghdmlkZW9tYWlsU3VibWl0dGVkICYmICFlcnJvciAmJiB2aWRlb21haWxSZWNvcmRlZCkge1xuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuc3VibWl0KCk7XG4gICAgICBtYXliZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBtYXliZTtcbiAgfSxcblxuICBnZXRNZXJnZVRhZ1ZhbHVlOiBmdW5jdGlvbiAoZmllbGRLZXksIGZvcm1WYWx1ZXMpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KGZpZWxkS2V5KTtcblxuICAgIC8vIGl0IGNhbiBoYXBwZW4gdGhhdCB0aGUgdXNlciBoYXMgY29uZmlndXJlZCBzb21ldGhpbmcgd3JvbmcsXG4gICAgLy8gaS5FLiBhbiBlbXB0eSBlbWFpbF9mcm9tLiBpbiB0aGF0IGNhc2UganVzdCBpZ25vcmUgLi4uXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICAvLyBhZG1pbiBlbWFpbCBsb2NhbGl6ZWQgZnJvbSBiYWNrZW5kLCBhIGJpdCB1Z2x5XG4gICAgICAvLyB0b2RvIGFzayBmb3IgYW4gZW5kcG9pbnQgdG8gcHJvY2VzcyB0aG9zZSBzcGVjaWFsIG1lcmdlIHRhZ3NcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaW5hcnlraXRjaGVuL3ZpZGVvbWFpbC1mb3ItbmluamEtZm9ybXMvaXNzdWVzLzMwXG4gICAgICBpZiAodmFsdWUgPT09IFwie3dwOmFkbWluX2VtYWlsfVwiKSB7XG4gICAgICAgIHZhbHVlID0gd2luZG93Lm5mVmlkZW9tYWlsLmFkbWluX2VtYWlsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmF3RmllbGRLZXlNYXRjaGVzID0gdmFsdWUubWF0Y2goL3tmaWVsZDooLiopfS9pKTtcbiAgICAgICAgY29uc3QgcmF3RmllbGRLZXkgPSByYXdGaWVsZEtleU1hdGNoZXMgJiYgcmF3RmllbGRLZXlNYXRjaGVzWzFdO1xuXG4gICAgICAgIGlmIChyYXdGaWVsZEtleSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAvLyB5ZXMgaXQgd2FzIGEgbWVyZ2UgdGFnLCBzbyB1c2UgaXRcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL3tmaWVsZDooLiopfS9pLCBmb3JtVmFsdWVzW3Jhd0ZpZWxkS2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9LFxuXG4gIC8vIHJldHVybnMgYSBtYXAgbGlrZSB0aGlzOlxuICAvLyB7XG4gIC8vICAgZnJvbV9lbWFpbDogXCJtaWNLQGRlYWZvbnouZWhcIlxuICAvLyAgIGZyb21fbmFtZTogXCJNSFwiXG4gIC8vICAgbWVzc2FnZTogXCJzZGZzZGZzZGZcIlxuICAvLyAgIHN1YmplY3Q6IFwic2Rmc2RmXCJcbiAgLy8gICBzdWJtaXQ6IFwiXCJcbiAgLy8gICB2aWRlb19tZXNzYWdlOiBcIjExZWItNjFkNy1kZDU4MzMyMC1hZTYxLTJiODJiZTZjNmUzZVwiXG4gIC8vIH1cbiAgZ2V0Rm9ybVZhbHVlczogZnVuY3Rpb24gKCkge1xuICAgIGxldCBjb2xsZWN0aW9uO1xuICAgIGNvbnN0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKGZvcm1Nb2RlbCkge1xuICAgICAgY29sbGVjdGlvbiA9IGZvcm1Nb2RlbC5nZXQoXCJmaWVsZHNcIik7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHMpIHtcbiAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmZpZWxkTW9kZWwuY29sbGVjdGlvbi5vcHRpb25zLmZvcm1Nb2RlbC5nZXQoXCJmaWVsZHNcIikubW9kZWxzO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSBjb2xsZWN0aW9uLnJlZHVjZShmdW5jdGlvbiAobWVtbywgZmllbGQpIHtcbiAgICAgIG1lbW9bZmllbGQuZ2V0KFwia2V5XCIpXSA9IGZpZWxkLmdldChcInZhbHVlXCIpO1xuICAgICAgcmV0dXJuIG1lbW87XG4gICAgfSwge30pO1xuXG4gICAgcmV0dXJuIGZvcm1WYWx1ZXM7XG4gIH0sXG5cbiAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXI6IGZ1bmN0aW9uICh2aWRlb21haWwpIHtcbiAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5nZXRGb3JtVmFsdWVzKCk7XG5cbiAgICB2aWRlb21haWwuZnJvbSA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX2Zyb21cIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLnRvID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfdG9cIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLnN1YmplY3QgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9zdWJqZWN0XCIsIGZvcm1WYWx1ZXMpO1xuICAgIHZpZGVvbWFpbC5ib2R5ID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfYm9keVwiLCBmb3JtVmFsdWVzKTtcblxuICAgIHJldHVybiB2aWRlb21haWw7XG4gIH0sXG5cbiAgb25CZWZvcmVEZXN0cm95OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQudW5sb2FkKCk7XG4gICAgZGVsZXRlIHRoaXMudmlkZW9tYWlsQ2xpZW50O1xuICB9LFxufSk7XG5cbmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlcigpO1xufSk7XG4iXSwibmFtZXMiOlsibGV0IiwiREVCVUciLCJWaWRlb21haWxGaWVsZENvbnRyb2xsZXIiLCJNYXJpb25ldHRlIiwiT2JqZWN0IiwiZXh0ZW5kIiwidmlkZW9tYWlsQ2xpZW50IiwiZmllbGRNb2RlbCIsImNoYW5uZWwiLCJCYWNrYm9uZSIsIlJhZGlvIiwiaW5pdGlhbGl6ZSIsInRoaXMiLCJsaXN0ZW5Ub09uY2UiLCJyZWdpc3RlclZpZGVvbWFpbEZpZWxkIiwibG9hZFZpZGVvbWFpbENsaWVudCIsImxpc3RlblRvIiwiZXZlbnROYW1lIiwiY29uc29sZSIsImxvZyIsIm5mUmFkaW8iLCJwYXJhbXMiLCJjdXJyZW50TW9kZWxzIiwiY3VycmVudEVsZW1lbnQiLCJhdHRyaWJ1dGVzIiwiZm9ybUNvbnRlbnREYXRhIiwibW9kZWxzIiwiY3VycmVudENpZCIsImNpZCIsImZpbmQiLCJtb2RlbCIsInVubG9hZCIsImdldEZvcm1JZCIsImdldCIsInJlcGx5IiwidmFsaWRhdGVSZXF1aXJlZCIsInZhbGlkYXRlVmlkZW9tYWlsIiwibWF5YmVTdWJtaXQiLCJpbWFnZVF1YWxpdHlQZXJjZW50YWdlIiwidmVyYm9zZSIsIlZpZGVvbWFpbENsaWVudCIsInNpdGVOYW1lIiwidmlkZW8iLCJsaW1pdFNlY29uZHMiLCJ3aWR0aCIsInN0cmV0Y2giLCJjb3VudGRvd24iLCJhdWRpbyIsImVuYWJsZWQiLCJpbWFnZSIsInF1YWxpdHkiLCJzZWxlY3RvcnMiLCJjb250YWluZXJJZCIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiY2FsbGJhY2tzIiwiYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nIiwiYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIiLCJiaW5kIiwibG9hZFVzZXJNZWRpYU9uUmVjb3JkIiwiZW5hYmxlQXV0b1ZhbGlkYXRpb24iLCJlbmFibGVBdXRvU3VibWlzc2lvbiIsInZlcnNpb25zIiwibmluamFGb3JtUGx1Z2luIiwib24iLCJvblByZXZpZXciLCJvblN1Ym1pdHRlZCIsIm9uR29pbmdCYWNrIiwic2hvdyIsImtleSIsInNldCIsInJlcXVlc3QiLCJyZXN1bHQiLCJmb3JtTW9kZWwiLCJjb2xsZWN0aW9uIiwib3B0aW9ucyIsInZpZGVvbWFpbCIsImludmFsaWRhdGUiLCJlbCIsInZhbGlkIiwiaGFzRXJyb3JzIiwibGVuZ3RoIiwibWF5YmUiLCJ2aWRlb21haWxTdWJtaXR0ZWQiLCJnZXRFeHRyYSIsInZpZGVvbWFpbFJlY29yZGVkIiwiZXJyb3IiLCJzdWJtaXQiLCJnZXRNZXJnZVRhZ1ZhbHVlIiwiZmllbGRLZXkiLCJmb3JtVmFsdWVzIiwidmFsdWUiLCJ3aW5kb3ciLCJuZlZpZGVvbWFpbCIsImFkbWluX2VtYWlsIiwicmF3RmllbGRLZXkiLCJyYXdGaWVsZEtleU1hdGNoZXMiLCJtYXRjaCIsInJlcGxhY2UiLCJnZXRGb3JtVmFsdWVzIiwicmVkdWNlIiwibWVtbyIsImZpZWxkIiwiZnJvbSIsInRvIiwic3ViamVjdCIsImJvZHkiLCJvbkJlZm9yZURlc3Ryb3kiLCJqUXVlcnkiLCJkb2N1bWVudCIsInJlYWR5Il0sIm1hcHBpbmdzIjoiQUFHQUEsSUFBSUMsTUFBUSxDQUFBLEVBS05DLHlCQUEyQkMsV0FBV0MsT0FBT0MsT0FBTyxDQUN4REMsZ0JBQWlCLEtBRWpCQyxXQUFZLEtBRVpDLFFBQVNDLFNBQVNDLE1BQU1GLFFBQVEsV0FBVyxFQUUzQ0csV0FBWSxXQUNWRixTQUFTQyxNQUFNVCxNQUFRQSxNQUV2QlcsS0FBS0MsYUFBYUQsS0FBS0osUUFBUyxhQUFjSSxLQUFLRSxzQkFBc0IsRUFDekVGLEtBQUtDLGFBQWFELEtBQUtKLFFBQVMsY0FBZUksS0FBS0csbUJBQW1CLEVBR3ZFSCxLQUFLSSxTQUFTSixLQUFLSixRQUFTLE1BQU8sU0FBVVMsR0FDM0NoQixPQUFTaUIsUUFBUUMsSUFBSSxxQ0FBc0NGLENBQVMsRUFJcEVMLEtBQUtJLFNBQVNJLFFBQVFaLFFBQVEsTUFBTSxFQUFHLGNBQWUsU0FBVWEsR0FDOURwQixPQUFTaUIsUUFBUUMsSUFBSSxnQ0FBaUMsYUFBYSxFQUU3REcsRUFDSkQsRUFBT0UsZ0JBQWdCQyxZQUFZQyxpQkFBaUJDLFFBQVUsR0FFaEUsSUFBTUMsRUFBYWYsS0FBS0wsV0FBV3FCLElBRWROLEVBQWNPLEtBQUssU0FBVUMsR0FDaEQsT0FBT0EsRUFBTUYsTUFBUUQsQ0FDdkIsQ0FBQyxFQUdDZixLQUFLRyxvQkFBb0IsRUFFekJILEtBQUtOLGdCQUFnQnlCLE9BQU8sQ0FFaEMsQ0FBQyxDQUNILENBQUMsQ0FDSCxFQUVBQyxVQUFXLFdBQ1QsT0FBT3BCLEtBQUtMLFdBQVcwQixJQUFJLFFBQVEsQ0FDckMsRUFFQW5CLHVCQUF3QixTQUFVUCxHQUNoQ0ssS0FBS0wsV0FBYUEsRUFJbEJLLEtBQUtKLFFBQVEwQixNQUFNLG9CQUFxQnRCLEtBQUt1QixpQkFBa0J2QixJQUFJLEVBRW5FQSxLQUFLSixRQUFRMEIsTUFBTSxxQkFBc0J0QixLQUFLd0Isa0JB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
     1let PLUGIN_VERSION="7.0.3",DEBUG=!1,VideomailFieldController=Marionette.Object.extend({videomailClient:null,fieldModel:null,channel:Backbone.Radio.channel("videomail"),initialize:function(){Backbone.Radio.DEBUG=DEBUG,this.listenToOnce(this.channel,"init:model",this.registerVideomailField),this.listenToOnce(this.channel,"attach:view",this.loadVideomailClient),this.listenTo(this.channel,"all",function(e){DEBUG&&console.log("Videomail channel event triggered:",e),this.listenTo(nfRadio.channel("nfMP"),"change:part",function(e){DEBUG&&console.log("nfMP channel event triggered:","change:part");e=e.currentElement?.attributes?.formContentData?.models||[];let i=this.fieldModel.cid;e.find(function(e){return e.cid===i})?this.loadVideomailClient():this.videomailClient.unload()})})},getFormId:function(){return this.fieldModel.get("formID")},registerVideomailField:function(e){this.fieldModel=e,this.channel.reply("validate:required",this.validateRequired,this),this.channel.reply("validate:modelData",this.validateVideomail,this),Backbone.Radio.channel("form-"+this.getFormId()).reply("maybe:submit",this.maybeSubmit,this,e)},loadVideomailClient:function(){let e=this.fieldModel.get("image_quality")||40;100<e?e=100:e<1&&(e=1);var i=this.fieldModel.get("verbose")||DEBUG;DEBUG=DEBUG||i,Backbone.Radio.DEBUG=Backbone.Radio.DEBUG||i,this.videomailClient=new VideomailClient.VideomailClient({siteName:this.fieldModel.get("site_name"),video:{limitSeconds:this.fieldModel.get("limit_seconds")||90,width:this.fieldModel.get("width")||320,stretch:this.fieldModel.get("stretch")||!1,countdown:this.fieldModel.get("countdown")||!1},audio:{enabled:this.fieldModel.get("audio_enabled")},image:{quality:e/100},selectors:{containerId:"videomail",submitButtonSelector:".submit-wrap input"},callbacks:{adjustFormDataBeforePosting:this.adjustFormDataBeforePostingToVideomailServer.bind(this)},loadUserMediaOnRecord:this.fieldModel.get("load_user_media_on_record"),enableAutoValidation:!1,enableAutoSubmission:!1,verbose:i,versions:{ninjaFormPlugin:PLUGIN_VERSION}}),this.videomailClient.on("PREVIEW",this.onPreview.bind(this)),this.videomailClient.on("SUBMITTED",this.onSubmitted.bind(this)),this.videomailClient.on("GOING_BACK",this.onGoingBack.bind(this)),this.videomailClient.show()},onPreview:function(e){this.fieldModel.set("videomail-key",e),this.fieldModel.set("value",e),Backbone.Radio.channel("fields").request("remove:error",this.fieldModel.get("id"),"required-error")},onSubmitted:function(e){let i=Backbone.Radio.channel("app").request("get:form",this.getFormId());i=i||this.fieldModel.collection.options.formModel,Backbone.Radio.channel("form-"+i.get("id")).request("add:extra","videomail",e.videomail),Backbone.Radio.channel("form-"+this.getFormId()).request("submit",i)},onGoingBack:function(){this.fieldModel.set("videomail-key",null),this.invalidate()},validateRequired:function(e,i){i=this.validateVideomail(i);return i||this.invalidate(),i},invalidate:function(){Backbone.Radio.channel("fields").request("add:error",this.fieldModel.get("id"),"required-error","Record and click on stop to see a preview video.")},validateVideomail:function(e){return(e=e||this.fieldModel).get("videomail-key")||!1},hasErrors:function(e){return 0<e.get("errors").length},maybeSubmit:function(e){let i=!0;var t=e.getExtra("videomail"),o=this.validateVideomail(),e=this.hasErrors(e);return t||e||!o||(this.videomailClient.submit(),i=!1),i},getMergeTagValue:function(e,i){let t=this.fieldModel.get(e);if(t&&("{wp:admin_email}"===t?t=window.nfVideomail.admin_email:(e=(e=t.match(/{field:(.*)}/i))&&e[1])!==t&&(t=t.replace(/{field:(.*)}/i,i[e]))),"undefined"!==t)return t},getFormValues:function(){let e;var i=Backbone.Radio.channel("app").request("get:form",this.getFormId()),i=(i?e=i.get("fields"):this.fieldModel.collection.options.formModel.get("fields").models&&(e=this.fieldModel.collection.options.formModel.get("fields").models),e.reduce(function(e,i){return e[i.get("key")]=i.get("value"),e},{}));return i},adjustFormDataBeforePostingToVideomailServer:function(e){var i=this.getFormValues();return e.from=this.getMergeTagValue("email_from",i),e.to=this.getMergeTagValue("email_to",i),e.subject=this.getMergeTagValue("email_subject",i),e.body=this.getMergeTagValue("email_body",i),e},onBeforeDestroy:function(){this.videomailClient.unload(),delete this.videomailClient}});jQuery(document).ready(function(){return new VideomailFieldController});
     2//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuY29uc3QgUExVR0lOX1ZFUlNJT04gPSBcIjcuMC4zXCI7XG5cbi8vIG1hbnVhbCBzd2l0Y2ggdG8gaGF2ZSBtb3JlIHN0dWZmIHByaW50ZWQgdG8gY29uc29sZVxubGV0IERFQlVHID0gZmFsc2U7XG5cbi8vIGdvb2QgZG9jdW1lbnRhdGlvbiBvbiBiYWNrYm9uZSBldmVudCBoYW5kbGluZ1xuLy8gaHR0cDovL2JhY2tib25lanMub3JnLyNFdmVudHNcblxuY29uc3QgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyID0gTWFyaW9uZXR0ZS5PYmplY3QuZXh0ZW5kKHtcbiAgdmlkZW9tYWlsQ2xpZW50OiBudWxsLFxuXG4gIGZpZWxkTW9kZWw6IG51bGwsXG5cbiAgY2hhbm5lbDogQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcInZpZGVvbWFpbFwiKSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBERUJVRztcblxuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJpbml0Om1vZGVsXCIsIHRoaXMucmVnaXN0ZXJWaWRlb21haWxGaWVsZCk7XG4gICAgdGhpcy5saXN0ZW5Ub09uY2UodGhpcy5jaGFubmVsLCBcImF0dGFjaDp2aWV3XCIsIHRoaXMubG9hZFZpZGVvbWFpbENsaWVudCk7XG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCBcImFsbFwiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhcIlZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgZXZlbnROYW1lKTtcblxuICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgLy8gdmlkZW9tYWlsIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQuIHNvIGp1c3QgcmVzdW1lIGl0LlxuICAgICAgdGhpcy5saXN0ZW5UbyhuZlJhZGlvLmNoYW5uZWwoXCJuZk1QXCIpLCBcImNoYW5nZTpwYXJ0XCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJuZk1QIGNoYW5uZWwgZXZlbnQgdHJpZ2dlcmVkOlwiLCBcImNoYW5nZTpwYXJ0XCIpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbHMgPVxuICAgICAgICAgIHBhcmFtcy5jdXJyZW50RWxlbWVudD8uYXR0cmlidXRlcz8uZm9ybUNvbnRlbnREYXRhPy5tb2RlbHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgY3VycmVudENpZCA9IHRoaXMuZmllbGRNb2RlbC5jaWQ7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBtb2RlbC5jaWQgPT09IGN1cnJlbnRDaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50TW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZ2V0Rm9ybUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJmb3JtSURcIik7XG4gIH0sXG5cbiAgcmVnaXN0ZXJWaWRlb21haWxGaWVsZDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsO1xuXG4gICAgLy8gY3VzdG9tIGZpZWxkIHZhbGlkYXRpb24sIHNpbmNlIHdlIGFyZW4ndCB1c2luZyBhIHN0YW5kYXJkIGB2YWx1ZWBcbiAgICAvLyBmb3IgdGhlIHZpZGVvbWFpbCBpbnB1dFxuICAgIHRoaXMuY2hhbm5lbC5yZXBseShcInZhbGlkYXRlOnJlcXVpcmVkXCIsIHRoaXMudmFsaWRhdGVSZXF1aXJlZCwgdGhpcyk7XG5cbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTptb2RlbERhdGFcIiwgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcyk7XG5cbiAgICAvLyBjb250cm9sIHN1Ym1pc3Npb24gcHJvZ3Jlc3MsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICBcIm1heWJlOnN1Ym1pdFwiLFxuICAgICAgdGhpcy5tYXliZVN1Ym1pdCxcbiAgICAgIHRoaXMsXG4gICAgICBmaWVsZE1vZGVsLFxuICAgICk7XG4gIH0sXG5cbiAgbG9hZFZpZGVvbWFpbENsaWVudDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gdGhpcy5maWVsZE1vZGVsLmdldChcImltYWdlX3F1YWxpdHlcIikgfHwgNDA7XG5cbiAgICBpZiAoaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlID0gdGhpcy5maWVsZE1vZGVsLmdldChcInZlcmJvc2VcIikgfHwgREVCVUc7XG5cbiAgICAvLyBsYXRlIG92ZXJyaWRlc1xuICAgIERFQlVHID0gREVCVUcgfHwgdmVyYm9zZTtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IEJhY2tib25lLlJhZGlvLkRFQlVHIHx8IHZlcmJvc2U7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQuVmlkZW9tYWlsQ2xpZW50KHtcbiAgICAgIHNpdGVOYW1lOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwic2l0ZV9uYW1lXCIpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibGltaXRfc2Vjb25kc1wiKSB8fCA5MCxcbiAgICAgICAgd2lkdGg6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ3aWR0aFwiKSB8fCAzMjAsXG4gICAgICAgIC8vIFRPRE8gSW1wbGVtZW50IG9uIFZDIHNpZGVcbiAgICAgICAgc3RyZXRjaDogdGhpcy5maWVsZE1vZGVsLmdldChcInN0cmV0Y2hcIikgfHwgZmFsc2UsXG4gICAgICAgIGNvdW50ZG93bjogdGhpcy5maWVsZE1vZGVsLmdldChcImNvdW50ZG93blwiKSB8fCBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhdWRpbzoge1xuICAgICAgICBlbmFibGVkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiYXVkaW9fZW5hYmxlZFwiKSxcbiAgICAgIH0sXG4gICAgICBpbWFnZToge1xuICAgICAgICBxdWFsaXR5OiBpbWFnZVF1YWxpdHlQZXJjZW50YWdlIC8gMTAwLCAvLyBtdXN0IGJlIGEgZmxvYXRcbiAgICAgIH0sXG4gICAgICBzZWxlY3RvcnM6IHtcbiAgICAgICAgY29udGFpbmVySWQ6IFwidmlkZW9tYWlsXCIsXG4gICAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiBcIi5zdWJtaXQtd3JhcCBpbnB1dFwiLFxuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAvLyB1Z2x5IG5hbWUgZWg/XG4gICAgICAgIGFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZzpcbiAgICAgICAgICB0aGlzLmFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyLmJpbmQodGhpcyksXG4gICAgICB9LFxuICAgICAgLy8gd2hlbiB0cnVlLCB1c2VyIG1lZGlhIGlzIGxvYWRlZCBvbmx5IHdoZW4gcmVjb3JkIGJ1dHRvbiBpcyBwcmVzc2VkXG4gICAgICBsb2FkVXNlck1lZGlhT25SZWNvcmQ6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJsb2FkX3VzZXJfbWVkaWFfb25fcmVjb3JkXCIpLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIHZhbGlkYXRlIHRoZSBpbnB1dHNcbiAgICAgIGVuYWJsZUF1dG9WYWxpZGF0aW9uOiBmYWxzZSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byBkZWFsIHdpdGggZm9ybSBzdWJtaXNzaW9uc1xuICAgICAgZW5hYmxlQXV0b1N1Ym1pc3Npb246IGZhbHNlLFxuXG4gICAgICAvLyBsb2cgYWN0aW9ucy9ldmVudHMgdG8gY29uc29sZVxuICAgICAgdmVyYm9zZSxcblxuICAgICAgdmVyc2lvbnM6IHtcbiAgICAgICAgbmluamFGb3JtUGx1Z2luOiBQTFVHSU5fVkVSU0lPTixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIlBSRVZJRVdcIiwgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJTVUJNSVRURURcIiwgdGhpcy5vblN1Ym1pdHRlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIkdPSU5HX0JBQ0tcIiwgdGhpcy5vbkdvaW5nQmFjay5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnNob3coKTtcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIGtleSk7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldChcInZhbHVlXCIsIGtleSk7XG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpXG4gICAgICAvLyBjbGVhcnMgYW55IHByZXZpb3VzIGVycm9yc1xuICAgICAgLnJlcXVlc3QoXCJyZW1vdmU6ZXJyb3JcIiwgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLCBcInJlcXVpcmVkLWVycm9yXCIpO1xuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgICAgZm9ybU1vZGVsID0gdGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBJc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyBmb3JtTW9kZWwuZ2V0KFwiaWRcIikpLnJlcXVlc3QoXG4gICAgICBcImFkZDpleHRyYVwiLFxuICAgICAgXCJ2aWRlb21haWxcIixcbiAgICAgIHJlc3VsdC52aWRlb21haWwsXG4gICAgKTtcblxuICAgIC8vIHJlc3RhcnQgc3VibWlzc2lvbiBhZ2FpbiwgdGhpcyB0aW1lIHRvIHRoZSByZWFsIHdwIHNpdGVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcXVlc3QoXCJzdWJtaXRcIiwgZm9ybU1vZGVsKTtcbiAgfSxcblxuICBvbkdvaW5nQmFjazogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIG51bGwpO1xuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICB9LFxuXG4gIHZhbGlkYXRlUmVxdWlyZWQ6IGZ1bmN0aW9uIChlbCwgZmllbGRNb2RlbCkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVZpZGVvbWFpbChmaWVsZE1vZGVsKTtcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfSxcblxuICBpbnZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBzbyB0aGF0IHdlIGNhbiBzZXQgb3VyIG93biBlcnJvciB0ZXh0IGhlcmVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpLnJlcXVlc3QoXG4gICAgICBcImFkZDplcnJvclwiLFxuICAgICAgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLFxuICAgICAgXCJyZXF1aXJlZC1lcnJvclwiLFxuICAgICAgXCJSZWNvcmQgYW5kIGNsaWNrIG9uIHN0b3AgdG8gc2VlIGEgcHJldmlldyB2aWRlby5cIixcbiAgICApO1xuICB9LFxuXG4gIHZhbGlkYXRlVmlkZW9tYWlsOiBmdW5jdGlvbiAoZmllbGRNb2RlbCkge1xuICAgIGZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsIHx8IHRoaXMuZmllbGRNb2RlbDtcbiAgICByZXR1cm4gZmllbGRNb2RlbC5nZXQoXCJ2aWRlb21haWwta2V5XCIpIHx8IGZhbHNlO1xuICB9LFxuXG4gIGhhc0Vycm9yczogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgIHJldHVybiBmb3JtTW9kZWwuZ2V0KFwiZXJyb3JzXCIpLmxlbmd0aCA+IDA7XG4gIH0sXG5cbiAgbWF5YmVTdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICBsZXQgbWF5YmUgPSB0cnVlO1xuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYShcInZpZGVvbWFpbFwiKTtcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuaGFzRXJyb3JzKGZvcm1Nb2RlbCk7XG5cbiAgICAvLyBob2xkIG9uIHdpdGggZmluYWwgZm9ybSBzdWJtaXNzaW9uIHdoZW4gb25lIHdhcyByZWNvcmRlZFxuICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHZpZGVvbWFpbCBzZXJ2ZXIgeWV0XG4gICAgaWYgKCF2aWRlb21haWxTdWJtaXR0ZWQgJiYgIWVycm9yICYmIHZpZGVvbWFpbFJlY29yZGVkKSB7XG4gICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zdWJtaXQoKTtcbiAgICAgIG1heWJlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1heWJlO1xuICB9LFxuXG4gIGdldE1lcmdlVGFnVmFsdWU6IGZ1bmN0aW9uIChmaWVsZEtleSwgZm9ybVZhbHVlcykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoZmllbGRLZXkpO1xuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7d3A6YWRtaW5fZW1haWx9XCIpIHtcbiAgICAgICAgdmFsdWUgPSB3aW5kb3cubmZWaWRlb21haWwuYWRtaW5fZW1haWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpO1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleSA9IHJhd0ZpZWxkS2V5TWF0Y2hlcyAmJiByYXdGaWVsZEtleU1hdGNoZXNbMV07XG5cbiAgICAgICAgaWYgKHJhd0ZpZWxkS2V5ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIHllcyBpdCB3YXMgYSBtZXJnZSB0YWcsIHNvIHVzZSBpdFxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgve2ZpZWxkOiguKil9L2ksIGZvcm1WYWx1ZXNbcmF3RmllbGRLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgLy8gcmV0dXJucyBhIG1hcCBsaWtlIHRoaXM6XG4gIC8vIHtcbiAgLy8gICBmcm9tX2VtYWlsOiBcIm1pY0tAZGVhZm9uei5laFwiXG4gIC8vICAgZnJvbV9uYW1lOiBcIk1IXCJcbiAgLy8gICBtZXNzYWdlOiBcInNkZnNkZnNkZlwiXG4gIC8vICAgc3ViamVjdDogXCJzZGZzZGZcIlxuICAvLyAgIHN1Ym1pdDogXCJcIlxuICAvLyAgIHZpZGVvX21lc3NhZ2U6IFwiMTFlYi02MWQ3LWRkNTgzMzIwLWFlNjEtMmI4MmJlNmM2ZTNlXCJcbiAgLy8gfVxuICBnZXRGb3JtVmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbGxlY3Rpb247XG4gICAgY29uc3QgZm9ybU1vZGVsID0gQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImFwcFwiKS5yZXF1ZXN0KFwiZ2V0OmZvcm1cIiwgdGhpcy5nZXRGb3JtSWQoKSk7XG5cbiAgICBpZiAoZm9ybU1vZGVsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKTtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWwuZ2V0KFwiZmllbGRzXCIpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoXCJrZXlcIildID0gZmllbGQuZ2V0KFwidmFsdWVcIik7XG4gICAgICByZXR1cm4gbWVtbztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKTtcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfZnJvbVwiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF90b1wiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX3N1YmplY3RcIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9ib2R5XCIsIGZvcm1WYWx1ZXMpO1xuXG4gICAgcmV0dXJuIHZpZGVvbWFpbDtcbiAgfSxcblxuICBvbkJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICBkZWxldGUgdGhpcy52aWRlb21haWxDbGllbnQ7XG4gIH0sXG59KTtcblxualF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyKCk7XG59KTtcbiJdLCJuYW1lcyI6WyJQTFVHSU5fVkVSU0lPTiIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJsaXN0ZW5UbyIsImV2ZW50TmFtZSIsImNvbnNvbGUiLCJsb2ciLCJuZlJhZGlvIiwicGFyYW1zIiwiY3VycmVudE1vZGVscyIsImN1cnJlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImZvcm1Db250ZW50RGF0YSIsIm1vZGVscyIsImN1cnJlbnRDaWQiLCJjaWQiLCJmaW5kIiwibW9kZWwiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwibGV0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJzdHJldGNoIiwiY291bnRkb3duIiwiYXVkaW8iLCJlbmFibGVkIiwiaW1hZ2UiLCJxdWFsaXR5Iiwic2VsZWN0b3JzIiwiY29udGFpbmVySWQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJ2ZXJzaW9ucyIsIm5pbmphRm9ybVBsdWdpbiIsIm9uIiwib25QcmV2aWV3Iiwib25TdWJtaXR0ZWQiLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwicmVzdWx0IiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJ2aWRlb21haWwiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImZyb20iLCJ0byIsInN1YmplY3QiLCJib2R5Iiwib25CZWZvcmVEZXN0cm95IiwialF1ZXJ5IiwiZG9jdW1lbnQiLCJyZWFkeSJdLCJtYXBwaW5ncyI6IkFBQ0EsSUFBTUEsZUFBaUIsUUFHbkJDLE1BQVEsQ0FBQSxFQUtOQyx5QkFBMkJDLFdBQVdDLE9BQU9DLE9BQU8sQ0FDeERDLGdCQUFpQixLQUVqQkMsV0FBWSxLQUVaQyxRQUFTQyxTQUFTQyxNQUFNRixRQUFRLFdBQVcsRUFFM0NHLFdBQVksV0FDVkYsU0FBU0MsTUFBTVQsTUFBUUEsTUFFdkJXLEtBQUtDLGFBQWFELEtBQUtKLFFBQVMsYUFBY0ksS0FBS0Usc0JBQXNCLEVBQ3pFRixLQUFLQyxhQUFhRCxLQUFLSixRQUFTLGNBQWVJLEtBQUtHLG1CQUFtQixFQUd2RUgsS0FBS0ksU0FBU0osS0FBS0osUUFBUyxNQUFPLFNBQVVTLEdBQzNDaEIsT0FBU2lCLFFBQVFDLElBQUkscUNBQXNDRixDQUFTLEVBSXBFTCxLQUFLSSxTQUFTSSxRQUFRWixRQUFRLE1BQU0sRUFBRyxjQUFlLFNBQVVhLEdBQzlEcEIsT0FBU2lCLFFBQVFDLElBQUksZ0NBQWlDLGFBQWEsRUFFN0RHLEVBQ0pELEVBQU9FLGdCQUFnQkMsWUFBWUMsaUJBQWlCQyxRQUFVLEdBRWhFLElBQU1DLEVBQWFmLEtBQUtMLFdBQVdxQixJQUVkTixFQUFjTyxLQUFLLFNBQVVDLEdBQ2hELE9BQU9BLEVBQU1GLE1BQVFELENBQ3ZCLENBQUMsRUFHQ2YsS0FBS0csb0JBQW9CLEVBRXpCSCxLQUFLTixnQkFBZ0J5QixPQUFPLENBRWhDLENBQUMsQ0FDSCxDQUFDLENBQ0gsRUFFQUMsVUFBVyxXQUNULE9BQU9wQixLQUFLTCxXQUFXMEIsSUFBSSxRQUFRLENBQ3JDLEVBRUFuQix1QkFBd0IsU0FBVVAsR0FDaENLLEtBQUtMLFdBQWFBLEVBSWxCSyxLQUFLSixRQUFRMEIsTUFBTSxvQkFBcUJ0QixLQUFLdUIsaUJBQWtC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
  • videomail-for-ninja-forms/tags/7.0.3/target/php/videomail.php

    r3231806 r3232399  
    33
    44  const NAME = 'Videomail';
    5   const VERSION = '7.0.2';
     5  const VERSION = '7.0.3';
    66  const AUTHOR = 'Michael Heuberger + Kyle B. Johnson';
    77  const SLUG = 'videomail';
  • videomail-for-ninja-forms/tags/7.0.3/videomail-for-ninja-forms.php

    r3231806 r3232399  
    44Plugin URI: https://github.com/binarykitchen/videomail-for-ninja-forms
    55Description: Express yourself in more than just words. Record and send a short video from your webcam.
    6 Version: 7.0.2
     6Version: 7.0.3
    77Author: Michael Heuberger + Kyle B. Johnson
    88Author URI: https://videomail.io
     
    1010Text Domain: videomail-for-ninja-forms
    1111
    12 Copyright 2024 Michael Heuberger + Kyle B. Johnson
     12Copyright 2025 Michael Heuberger + Kyle B. Johnson
    1313*/
    1414
  • videomail-for-ninja-forms/trunk/readme.txt

    r3231806 r3232399  
    55
    66Requires at least: 6.0
    7 Tested up to: 7.0.2
    8 Stable tag: 7.0.2
     7Tested up to: 7.0.3
     8Stable tag: 7.0.3
    99Requires PHP: 8.1.0
    1010Donate link: https://videomail.io/faq
     
    7171
    7272== Changelog ==
     73= 7.0.3 (31 Jan 2025) =
     74*Improvement:*
     75* Inject version in error reports
     76
    7377= 7.0.2 (30 Jan 2025) =
    7478*Fix:*
  • videomail-for-ninja-forms/trunk/target/js/main.min.js

    r3231806 r3232399  
    1 let DEBUG=!1,VideomailFieldController=Marionette.Object.extend({videomailClient:null,fieldModel:null,channel:Backbone.Radio.channel("videomail"),initialize:function(){Backbone.Radio.DEBUG=DEBUG,this.listenToOnce(this.channel,"init:model",this.registerVideomailField),this.listenToOnce(this.channel,"attach:view",this.loadVideomailClient),this.listenTo(this.channel,"all",function(e){DEBUG&&console.log("Videomail channel event triggered:",e),this.listenTo(nfRadio.channel("nfMP"),"change:part",function(e){DEBUG&&console.log("nfMP channel event triggered:","change:part");e=e.currentElement?.attributes?.formContentData?.models||[];let i=this.fieldModel.cid;e.find(function(e){return e.cid===i})?this.loadVideomailClient():this.videomailClient.unload()})})},getFormId:function(){return this.fieldModel.get("formID")},registerVideomailField:function(e){this.fieldModel=e,this.channel.reply("validate:required",this.validateRequired,this),this.channel.reply("validate:modelData",this.validateVideomail,this),Backbone.Radio.channel("form-"+this.getFormId()).reply("maybe:submit",this.maybeSubmit,this,e)},loadVideomailClient:function(){let e=this.fieldModel.get("image_quality")||40;100<e?e=100:e<1&&(e=1);var i=this.fieldModel.get("verbose")||DEBUG;DEBUG=DEBUG||i,Backbone.Radio.DEBUG=Backbone.Radio.DEBUG||i,this.videomailClient=new VideomailClient.VideomailClient({siteName:this.fieldModel.get("site_name"),video:{limitSeconds:this.fieldModel.get("limit_seconds")||90,width:this.fieldModel.get("width")||320,stretch:this.fieldModel.get("stretch")||!1,countdown:this.fieldModel.get("countdown")||!1},audio:{enabled:this.fieldModel.get("audio_enabled")},image:{quality:e/100},selectors:{containerId:"videomail",submitButtonSelector:".submit-wrap input"},callbacks:{adjustFormDataBeforePosting:this.adjustFormDataBeforePostingToVideomailServer.bind(this)},loadUserMediaOnRecord:this.fieldModel.get("load_user_media_on_record"),enableAutoValidation:!1,enableAutoSubmission:!1,verbose:i,versions:{ninjaFormPlugin:"unknown (above v7.0.1)"}}),this.videomailClient.on("PREVIEW",this.onPreview.bind(this)),this.videomailClient.on("SUBMITTED",this.onSubmitted.bind(this)),this.videomailClient.on("GOING_BACK",this.onGoingBack.bind(this)),this.videomailClient.show()},onPreview:function(e){this.fieldModel.set("videomail-key",e),this.fieldModel.set("value",e),Backbone.Radio.channel("fields").request("remove:error",this.fieldModel.get("id"),"required-error")},onSubmitted:function(e){let i=Backbone.Radio.channel("app").request("get:form",this.getFormId());i=i||this.fieldModel.collection.options.formModel,Backbone.Radio.channel("form-"+i.get("id")).request("add:extra","videomail",e.videomail),Backbone.Radio.channel("form-"+this.getFormId()).request("submit",i)},onGoingBack:function(){this.fieldModel.set("videomail-key",null),this.invalidate()},validateRequired:function(e,i){i=this.validateVideomail(i);return i||this.invalidate(),i},invalidate:function(){Backbone.Radio.channel("fields").request("add:error",this.fieldModel.get("id"),"required-error","Record and click on stop to see a preview video.")},validateVideomail:function(e){return(e=e||this.fieldModel).get("videomail-key")||!1},hasErrors:function(e){return 0<e.get("errors").length},maybeSubmit:function(e){let i=!0;var t=e.getExtra("videomail"),o=this.validateVideomail(),e=this.hasErrors(e);return t||e||!o||(this.videomailClient.submit(),i=!1),i},getMergeTagValue:function(e,i){let t=this.fieldModel.get(e);if(t&&("{wp:admin_email}"===t?t=window.nfVideomail.admin_email:(e=(e=t.match(/{field:(.*)}/i))&&e[1])!==t&&(t=t.replace(/{field:(.*)}/i,i[e]))),"undefined"!==t)return t},getFormValues:function(){let e;var i=Backbone.Radio.channel("app").request("get:form",this.getFormId()),i=(i?e=i.get("fields"):this.fieldModel.collection.options.formModel.get("fields").models&&(e=this.fieldModel.collection.options.formModel.get("fields").models),e.reduce(function(e,i){return e[i.get("key")]=i.get("value"),e},{}));return i},adjustFormDataBeforePostingToVideomailServer:function(e){var i=this.getFormValues();return e.from=this.getMergeTagValue("email_from",i),e.to=this.getMergeTagValue("email_to",i),e.subject=this.getMergeTagValue("email_subject",i),e.body=this.getMergeTagValue("email_body",i),e},onBeforeDestroy:function(){this.videomailClient.unload(),delete this.videomailClient}});jQuery(document).ready(function(){return new VideomailFieldController});
    2 //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuXG4vLyBtYW51YWwgc3dpdGNoIHRvIGhhdmUgbW9yZSBzdHVmZiBwcmludGVkIHRvIGNvbnNvbGVcbmxldCBERUJVRyA9IGZhbHNlO1xuXG4vLyBnb29kIGRvY3VtZW50YXRpb24gb24gYmFja2JvbmUgZXZlbnQgaGFuZGxpbmdcbi8vIGh0dHA6Ly9iYWNrYm9uZWpzLm9yZy8jRXZlbnRzXG5cbmNvbnN0IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlciA9IE1hcmlvbmV0dGUuT2JqZWN0LmV4dGVuZCh7XG4gIHZpZGVvbWFpbENsaWVudDogbnVsbCxcblxuICBmaWVsZE1vZGVsOiBudWxsLFxuXG4gIGNoYW5uZWw6IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJ2aWRlb21haWxcIiksXG5cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKCkge1xuICAgIEJhY2tib25lLlJhZGlvLkRFQlVHID0gREVCVUc7XG5cbiAgICB0aGlzLmxpc3RlblRvT25jZSh0aGlzLmNoYW5uZWwsIFwiaW5pdDptb2RlbFwiLCB0aGlzLnJlZ2lzdGVyVmlkZW9tYWlsRmllbGQpO1xuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJhdHRhY2g6dmlld1wiLCB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQpO1xuXG4gICAgLy8gdWdseSB3b3JrYXJvdW5kIHRvIG1ha2UgaXQgd29yayB3aXRoIHRoZSBjb25kaXRpb25hbCBwbHVnaW5cbiAgICB0aGlzLmxpc3RlblRvKHRoaXMuY2hhbm5lbCwgXCJhbGxcIiwgZnVuY3Rpb24gKGV2ZW50TmFtZSkge1xuICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJWaWRlb21haWwgY2hhbm5lbCBldmVudCB0cmlnZ2VyZWQ6XCIsIGV2ZW50TmFtZSk7XG5cbiAgICAgIC8vIG11c3QgYmUgY29taW5nIGJhY2sgZnJvbSBhIG11bHRpLXN0ZXAgd2hlcmVcbiAgICAgIC8vIHZpZGVvbWFpbCBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpc2VkLiBzbyBqdXN0IHJlc3VtZSBpdC5cbiAgICAgIHRoaXMubGlzdGVuVG8obmZSYWRpby5jaGFubmVsKFwibmZNUFwiKSwgXCJjaGFuZ2U6cGFydFwiLCBmdW5jdGlvbiAocGFyYW1zKSB7XG4gICAgICAgIERFQlVHICYmIGNvbnNvbGUubG9nKFwibmZNUCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgXCJjaGFuZ2U6cGFydFwiKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50TW9kZWxzID1cbiAgICAgICAgICBwYXJhbXMuY3VycmVudEVsZW1lbnQ/LmF0dHJpYnV0ZXM/LmZvcm1Db250ZW50RGF0YT8ubW9kZWxzIHx8IFtdO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRDaWQgPSB0aGlzLmZpZWxkTW9kZWwuY2lkO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbCA9IGN1cnJlbnRNb2RlbHMuZmluZChmdW5jdGlvbiAobW9kZWwpIHtcbiAgICAgICAgICByZXR1cm4gbW9kZWwuY2lkID09PSBjdXJyZW50Q2lkO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoY3VycmVudE1vZGVsKSB7XG4gICAgICAgICAgdGhpcy5sb2FkVmlkZW9tYWlsQ2xpZW50KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aWRlb21haWxDbGllbnQudW5sb2FkKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIGdldEZvcm1JZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiZm9ybUlEXCIpO1xuICB9LFxuXG4gIHJlZ2lzdGVyVmlkZW9tYWlsRmllbGQ6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgdGhpcy5maWVsZE1vZGVsID0gZmllbGRNb2RlbDtcblxuICAgIC8vIGN1c3RvbSBmaWVsZCB2YWxpZGF0aW9uLCBzaW5jZSB3ZSBhcmVuJ3QgdXNpbmcgYSBzdGFuZGFyZCBgdmFsdWVgXG4gICAgLy8gZm9yIHRoZSB2aWRlb21haWwgaW5wdXRcbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTpyZXF1aXJlZFwiLCB0aGlzLnZhbGlkYXRlUmVxdWlyZWQsIHRoaXMpO1xuXG4gICAgdGhpcy5jaGFubmVsLnJlcGx5KFwidmFsaWRhdGU6bW9kZWxEYXRhXCIsIHRoaXMudmFsaWRhdGVWaWRlb21haWwsIHRoaXMpO1xuXG4gICAgLy8gY29udHJvbCBzdWJtaXNzaW9uIHByb2dyZXNzLFxuICAgIC8vIHNvIHRoYXQgd2UgY2FuIFBPU1QgdG8gdGhlIFZpZGVvbWFpbCBzZXJ2ZXIgZmlyc3RcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcGx5KFxuICAgICAgXCJtYXliZTpzdWJtaXRcIixcbiAgICAgIHRoaXMubWF5YmVTdWJtaXQsXG4gICAgICB0aGlzLFxuICAgICAgZmllbGRNb2RlbCxcbiAgICApO1xuICB9LFxuXG4gIGxvYWRWaWRlb21haWxDbGllbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpbWFnZV9xdWFsaXR5XCIpIHx8IDQwO1xuXG4gICAgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgIGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPSAxMDA7XG4gICAgfSBlbHNlIGlmIChpbWFnZVF1YWxpdHlQZXJjZW50YWdlIDwgMSkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDE7XG4gICAgfVxuXG4gICAgY29uc3QgdmVyYm9zZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ2ZXJib3NlXCIpIHx8IERFQlVHO1xuXG4gICAgLy8gbGF0ZSBvdmVycmlkZXNcbiAgICBERUJVRyA9IERFQlVHIHx8IHZlcmJvc2U7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBCYWNrYm9uZS5SYWRpby5ERUJVRyB8fCB2ZXJib3NlO1xuXG4gICAgdGhpcy52aWRlb21haWxDbGllbnQgPSBuZXcgVmlkZW9tYWlsQ2xpZW50LlZpZGVvbWFpbENsaWVudCh7XG4gICAgICBzaXRlTmFtZTogdGhpcy5maWVsZE1vZGVsLmdldChcInNpdGVfbmFtZVwiKSxcbiAgICAgIHZpZGVvOiB7XG4gICAgICAgIGxpbWl0U2Vjb25kczogdGhpcy5maWVsZE1vZGVsLmdldChcImxpbWl0X3NlY29uZHNcIikgfHwgOTAsXG4gICAgICAgIHdpZHRoOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwid2lkdGhcIikgfHwgMzIwLFxuICAgICAgICAvLyBUT0RPIEltcGxlbWVudCBvbiBWQyBzaWRlXG4gICAgICAgIHN0cmV0Y2g6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJzdHJldGNoXCIpIHx8IGZhbHNlLFxuICAgICAgICBjb3VudGRvd246IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJjb3VudGRvd25cIikgfHwgZmFsc2UsXG4gICAgICB9LFxuICAgICAgYXVkaW86IHtcbiAgICAgICAgZW5hYmxlZDogdGhpcy5maWVsZE1vZGVsLmdldChcImF1ZGlvX2VuYWJsZWRcIiksXG4gICAgICB9LFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgcXVhbGl0eTogaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSAvIDEwMCwgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIGNvbnRhaW5lcklkOiBcInZpZGVvbWFpbFwiLFxuICAgICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogXCIuc3VibWl0LXdyYXAgaW5wdXRcIixcbiAgICAgIH0sXG4gICAgICBjYWxsYmFja3M6IHtcbiAgICAgICAgLy8gdWdseSBuYW1lIGVoP1xuICAgICAgICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3Rpbmc6XG4gICAgICAgICAgdGhpcy5hZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlci5iaW5kKHRoaXMpLFxuICAgICAgfSxcbiAgICAgIC8vIHdoZW4gdHJ1ZSwgdXNlciBtZWRpYSBpcyBsb2FkZWQgb25seSB3aGVuIHJlY29yZCBidXR0b24gaXMgcHJlc3NlZFxuICAgICAgbG9hZFVzZXJNZWRpYU9uUmVjb3JkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibG9hZF91c2VyX21lZGlhX29uX3JlY29yZFwiKSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byB2YWxpZGF0ZSB0aGUgaW5wdXRzXG4gICAgICBlbmFibGVBdXRvVmFsaWRhdGlvbjogZmFsc2UsXG5cbiAgICAgIC8vIGxlYXZlIGl0IHRvIG5pbmphIGZvcm0gdG8gZGVhbCB3aXRoIGZvcm0gc3VibWlzc2lvbnNcbiAgICAgIGVuYWJsZUF1dG9TdWJtaXNzaW9uOiBmYWxzZSxcblxuICAgICAgLy8gbG9nIGFjdGlvbnMvZXZlbnRzIHRvIGNvbnNvbGVcbiAgICAgIHZlcmJvc2UsXG5cbiAgICAgIHZlcnNpb25zOiB7XG4gICAgICAgIG5pbmphRm9ybVBsdWdpbjogXCJ1bmtub3duIChhYm92ZSB2Ny4wLjEpXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJQUkVWSUVXXCIsIHRoaXMub25QcmV2aWV3LmJpbmQodGhpcykpO1xuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFwiU1VCTUlUVEVEXCIsIHRoaXMub25TdWJtaXR0ZWQuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJHT0lOR19CQUNLXCIsIHRoaXMub25Hb2luZ0JhY2suYmluZCh0aGlzKSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zaG93KCk7XG4gIH0sXG5cbiAgLy8gbmVlZGVkIHRvIGdldCB0aGUgdmlkZW9tYWlsIGtleSB3aGljaCBpcyByZXF1aXJlZCBiZWZvcmVcbiAgLy8gc3VibWl0dGluZyB0byB0aGUgdmlkZW9tYWlsIHNlcnZlclxuICBvblByZXZpZXc6IGZ1bmN0aW9uIChrZXkpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwuc2V0KFwidmlkZW9tYWlsLWtleVwiLCBrZXkpO1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2YWx1ZVwiLCBrZXkpO1xuXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZpZWxkc1wiKVxuICAgICAgLy8gY2xlYXJzIGFueSBwcmV2aW91cyBlcnJvcnNcbiAgICAgIC5yZXF1ZXN0KFwicmVtb3ZlOmVycm9yXCIsIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpZFwiKSwgXCJyZXF1aXJlZC1lcnJvclwiKTtcbiAgfSxcblxuICBvblN1Ym1pdHRlZDogZnVuY3Rpb24gKHJlc3VsdCkge1xuICAgIGxldCBmb3JtTW9kZWwgPSBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiYXBwXCIpLnJlcXVlc3QoXCJnZXQ6Zm9ybVwiLCB0aGlzLmdldEZvcm1JZCgpKTtcblxuICAgIGlmICghZm9ybU1vZGVsKSB7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICAgIGZvcm1Nb2RlbCA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsO1xuICAgIH1cblxuICAgIC8vIFRPRE8gSXNuJ3QgJ2Zvcm0tJyArIGZvcm1Nb2RlbC5nZXQoJ2lkJykgdGhlIHNhbWUgYXMgdGhlIGZvcm1JRCBhbHJlYWR5P1xuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgZm9ybU1vZGVsLmdldChcImlkXCIpKS5yZXF1ZXN0KFxuICAgICAgXCJhZGQ6ZXh0cmFcIixcbiAgICAgIFwidmlkZW9tYWlsXCIsXG4gICAgICByZXN1bHQudmlkZW9tYWlsLFxuICAgICk7XG5cbiAgICAvLyByZXN0YXJ0IHN1Ym1pc3Npb24gYWdhaW4sIHRoaXMgdGltZSB0byB0aGUgcmVhbCB3cCBzaXRlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyB0aGlzLmdldEZvcm1JZCgpKS5yZXF1ZXN0KFwic3VibWl0XCIsIGZvcm1Nb2RlbCk7XG4gIH0sXG5cbiAgb25Hb2luZ0JhY2s6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwuc2V0KFwidmlkZW9tYWlsLWtleVwiLCBudWxsKTtcbiAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgfSxcblxuICB2YWxpZGF0ZVJlcXVpcmVkOiBmdW5jdGlvbiAoZWwsIGZpZWxkTW9kZWwpIHtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoZmllbGRNb2RlbCk7XG5cbiAgICBpZiAoIXZhbGlkKSB7XG4gICAgICB0aGlzLmludmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWQ7XG4gIH0sXG5cbiAgaW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIC8vIG92ZXJyaWRlIGRlZmF1bHQgYmVoYXZpb3Igc28gdGhhdCB3ZSBjYW4gc2V0IG91ciBvd24gZXJyb3IgdGV4dCBoZXJlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZpZWxkc1wiKS5yZXF1ZXN0KFxuICAgICAgXCJhZGQ6ZXJyb3JcIixcbiAgICAgIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJpZFwiKSxcbiAgICAgIFwicmVxdWlyZWQtZXJyb3JcIixcbiAgICAgIFwiUmVjb3JkIGFuZCBjbGljayBvbiBzdG9wIHRvIHNlZSBhIHByZXZpZXcgdmlkZW8uXCIsXG4gICAgKTtcbiAgfSxcblxuICB2YWxpZGF0ZVZpZGVvbWFpbDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICBmaWVsZE1vZGVsID0gZmllbGRNb2RlbCB8fCB0aGlzLmZpZWxkTW9kZWw7XG4gICAgcmV0dXJuIGZpZWxkTW9kZWwuZ2V0KFwidmlkZW9tYWlsLWtleVwiKSB8fCBmYWxzZTtcbiAgfSxcblxuICBoYXNFcnJvcnM6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICByZXR1cm4gZm9ybU1vZGVsLmdldChcImVycm9yc1wiKS5sZW5ndGggPiAwO1xuICB9LFxuXG4gIG1heWJlU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgbGV0IG1heWJlID0gdHJ1ZTtcbiAgICBjb25zdCB2aWRlb21haWxTdWJtaXR0ZWQgPSBmb3JtTW9kZWwuZ2V0RXh0cmEoXCJ2aWRlb21haWxcIik7XG4gICAgY29uc3QgdmlkZW9tYWlsUmVjb3JkZWQgPSB0aGlzLnZhbGlkYXRlVmlkZW9tYWlsKCk7XG4gICAgY29uc3QgZXJyb3IgPSB0aGlzLmhhc0Vycm9ycyhmb3JtTW9kZWwpO1xuXG4gICAgLy8gaG9sZCBvbiB3aXRoIGZpbmFsIGZvcm0gc3VibWlzc2lvbiB3aGVuIG9uZSB3YXMgcmVjb3JkZWRcbiAgICAvLyBidXQgaGFzbid0IGJlZW4gc3VibWl0dGVkIHRvIHRoZSB2aWRlb21haWwgc2VydmVyIHlldFxuICAgIGlmICghdmlkZW9tYWlsU3VibWl0dGVkICYmICFlcnJvciAmJiB2aWRlb21haWxSZWNvcmRlZCkge1xuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuc3VibWl0KCk7XG4gICAgICBtYXliZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBtYXliZTtcbiAgfSxcblxuICBnZXRNZXJnZVRhZ1ZhbHVlOiBmdW5jdGlvbiAoZmllbGRLZXksIGZvcm1WYWx1ZXMpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KGZpZWxkS2V5KTtcblxuICAgIC8vIGl0IGNhbiBoYXBwZW4gdGhhdCB0aGUgdXNlciBoYXMgY29uZmlndXJlZCBzb21ldGhpbmcgd3JvbmcsXG4gICAgLy8gaS5FLiBhbiBlbXB0eSBlbWFpbF9mcm9tLiBpbiB0aGF0IGNhc2UganVzdCBpZ25vcmUgLi4uXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICAvLyBhZG1pbiBlbWFpbCBsb2NhbGl6ZWQgZnJvbSBiYWNrZW5kLCBhIGJpdCB1Z2x5XG4gICAgICAvLyB0b2RvIGFzayBmb3IgYW4gZW5kcG9pbnQgdG8gcHJvY2VzcyB0aG9zZSBzcGVjaWFsIG1lcmdlIHRhZ3NcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaW5hcnlraXRjaGVuL3ZpZGVvbWFpbC1mb3ItbmluamEtZm9ybXMvaXNzdWVzLzMwXG4gICAgICBpZiAodmFsdWUgPT09IFwie3dwOmFkbWluX2VtYWlsfVwiKSB7XG4gICAgICAgIHZhbHVlID0gd2luZG93Lm5mVmlkZW9tYWlsLmFkbWluX2VtYWlsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmF3RmllbGRLZXlNYXRjaGVzID0gdmFsdWUubWF0Y2goL3tmaWVsZDooLiopfS9pKTtcbiAgICAgICAgY29uc3QgcmF3RmllbGRLZXkgPSByYXdGaWVsZEtleU1hdGNoZXMgJiYgcmF3RmllbGRLZXlNYXRjaGVzWzFdO1xuXG4gICAgICAgIGlmIChyYXdGaWVsZEtleSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAvLyB5ZXMgaXQgd2FzIGEgbWVyZ2UgdGFnLCBzbyB1c2UgaXRcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL3tmaWVsZDooLiopfS9pLCBmb3JtVmFsdWVzW3Jhd0ZpZWxkS2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9LFxuXG4gIC8vIHJldHVybnMgYSBtYXAgbGlrZSB0aGlzOlxuICAvLyB7XG4gIC8vICAgZnJvbV9lbWFpbDogXCJtaWNLQGRlYWZvbnouZWhcIlxuICAvLyAgIGZyb21fbmFtZTogXCJNSFwiXG4gIC8vICAgbWVzc2FnZTogXCJzZGZzZGZzZGZcIlxuICAvLyAgIHN1YmplY3Q6IFwic2Rmc2RmXCJcbiAgLy8gICBzdWJtaXQ6IFwiXCJcbiAgLy8gICB2aWRlb19tZXNzYWdlOiBcIjExZWItNjFkNy1kZDU4MzMyMC1hZTYxLTJiODJiZTZjNmUzZVwiXG4gIC8vIH1cbiAgZ2V0Rm9ybVZhbHVlczogZnVuY3Rpb24gKCkge1xuICAgIGxldCBjb2xsZWN0aW9uO1xuICAgIGNvbnN0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKGZvcm1Nb2RlbCkge1xuICAgICAgY29sbGVjdGlvbiA9IGZvcm1Nb2RlbC5nZXQoXCJmaWVsZHNcIik7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHMpIHtcbiAgICAgIGNvbGxlY3Rpb24gPSB0aGlzLmZpZWxkTW9kZWwuY29sbGVjdGlvbi5vcHRpb25zLmZvcm1Nb2RlbC5nZXQoXCJmaWVsZHNcIikubW9kZWxzO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSBjb2xsZWN0aW9uLnJlZHVjZShmdW5jdGlvbiAobWVtbywgZmllbGQpIHtcbiAgICAgIG1lbW9bZmllbGQuZ2V0KFwia2V5XCIpXSA9IGZpZWxkLmdldChcInZhbHVlXCIpO1xuICAgICAgcmV0dXJuIG1lbW87XG4gICAgfSwge30pO1xuXG4gICAgcmV0dXJuIGZvcm1WYWx1ZXM7XG4gIH0sXG5cbiAgYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXI6IGZ1bmN0aW9uICh2aWRlb21haWwpIHtcbiAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5nZXRGb3JtVmFsdWVzKCk7XG5cbiAgICB2aWRlb21haWwuZnJvbSA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX2Zyb21cIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLnRvID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfdG9cIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLnN1YmplY3QgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9zdWJqZWN0XCIsIGZvcm1WYWx1ZXMpO1xuICAgIHZpZGVvbWFpbC5ib2R5ID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfYm9keVwiLCBmb3JtVmFsdWVzKTtcblxuICAgIHJldHVybiB2aWRlb21haWw7XG4gIH0sXG5cbiAgb25CZWZvcmVEZXN0cm95OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQudW5sb2FkKCk7XG4gICAgZGVsZXRlIHRoaXMudmlkZW9tYWlsQ2xpZW50O1xuICB9LFxufSk7XG5cbmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlcigpO1xufSk7XG4iXSwibmFtZXMiOlsibGV0IiwiREVCVUciLCJWaWRlb21haWxGaWVsZENvbnRyb2xsZXIiLCJNYXJpb25ldHRlIiwiT2JqZWN0IiwiZXh0ZW5kIiwidmlkZW9tYWlsQ2xpZW50IiwiZmllbGRNb2RlbCIsImNoYW5uZWwiLCJCYWNrYm9uZSIsIlJhZGlvIiwiaW5pdGlhbGl6ZSIsInRoaXMiLCJsaXN0ZW5Ub09uY2UiLCJyZWdpc3RlclZpZGVvbWFpbEZpZWxkIiwibG9hZFZpZGVvbWFpbENsaWVudCIsImxpc3RlblRvIiwiZXZlbnROYW1lIiwiY29uc29sZSIsImxvZyIsIm5mUmFkaW8iLCJwYXJhbXMiLCJjdXJyZW50TW9kZWxzIiwiY3VycmVudEVsZW1lbnQiLCJhdHRyaWJ1dGVzIiwiZm9ybUNvbnRlbnREYXRhIiwibW9kZWxzIiwiY3VycmVudENpZCIsImNpZCIsImZpbmQiLCJtb2RlbCIsInVubG9hZCIsImdldEZvcm1JZCIsImdldCIsInJlcGx5IiwidmFsaWRhdGVSZXF1aXJlZCIsInZhbGlkYXRlVmlkZW9tYWlsIiwibWF5YmVTdWJtaXQiLCJpbWFnZVF1YWxpdHlQZXJjZW50YWdlIiwidmVyYm9zZSIsIlZpZGVvbWFpbENsaWVudCIsInNpdGVOYW1lIiwidmlkZW8iLCJsaW1pdFNlY29uZHMiLCJ3aWR0aCIsInN0cmV0Y2giLCJjb3VudGRvd24iLCJhdWRpbyIsImVuYWJsZWQiLCJpbWFnZSIsInF1YWxpdHkiLCJzZWxlY3RvcnMiLCJjb250YWluZXJJZCIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwiY2FsbGJhY2tzIiwiYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nIiwiYWRqdXN0Rm9ybURhdGFCZWZvcmVQb3N0aW5nVG9WaWRlb21haWxTZXJ2ZXIiLCJiaW5kIiwibG9hZFVzZXJNZWRpYU9uUmVjb3JkIiwiZW5hYmxlQXV0b1ZhbGlkYXRpb24iLCJlbmFibGVBdXRvU3VibWlzc2lvbiIsInZlcnNpb25zIiwibmluamFGb3JtUGx1Z2luIiwib24iLCJvblByZXZpZXciLCJvblN1Ym1pdHRlZCIsIm9uR29pbmdCYWNrIiwic2hvdyIsImtleSIsInNldCIsInJlcXVlc3QiLCJyZXN1bHQiLCJmb3JtTW9kZWwiLCJjb2xsZWN0aW9uIiwib3B0aW9ucyIsInZpZGVvbWFpbCIsImludmFsaWRhdGUiLCJlbCIsInZhbGlkIiwiaGFzRXJyb3JzIiwibGVuZ3RoIiwibWF5YmUiLCJ2aWRlb21haWxTdWJtaXR0ZWQiLCJnZXRFeHRyYSIsInZpZGVvbWFpbFJlY29yZGVkIiwiZXJyb3IiLCJzdWJtaXQiLCJnZXRNZXJnZVRhZ1ZhbHVlIiwiZmllbGRLZXkiLCJmb3JtVmFsdWVzIiwidmFsdWUiLCJ3aW5kb3ciLCJuZlZpZGVvbWFpbCIsImFkbWluX2VtYWlsIiwicmF3RmllbGRLZXkiLCJyYXdGaWVsZEtleU1hdGNoZXMiLCJtYXRjaCIsInJlcGxhY2UiLCJnZXRGb3JtVmFsdWVzIiwicmVkdWNlIiwibWVtbyIsImZpZWxkIiwiZnJvbSIsInRvIiwic3ViamVjdCIsImJvZHkiLCJvbkJlZm9yZURlc3Ryb3kiLCJqUXVlcnkiLCJkb2N1bWVudCIsInJlYWR5Il0sIm1hcHBpbmdzIjoiQUFHQUEsSUFBSUMsTUFBUSxDQUFBLEVBS05DLHlCQUEyQkMsV0FBV0MsT0FBT0MsT0FBTyxDQUN4REMsZ0JBQWlCLEtBRWpCQyxXQUFZLEtBRVpDLFFBQVNDLFNBQVNDLE1BQU1GLFFBQVEsV0FBVyxFQUUzQ0csV0FBWSxXQUNWRixTQUFTQyxNQUFNVCxNQUFRQSxNQUV2QlcsS0FBS0MsYUFBYUQsS0FBS0osUUFBUyxhQUFjSSxLQUFLRSxzQkFBc0IsRUFDekVGLEtBQUtDLGFBQWFELEtBQUtKLFFBQVMsY0FBZUksS0FBS0csbUJBQW1CLEVBR3ZFSCxLQUFLSSxTQUFTSixLQUFLSixRQUFTLE1BQU8sU0FBVVMsR0FDM0NoQixPQUFTaUIsUUFBUUMsSUFBSSxxQ0FBc0NGLENBQVMsRUFJcEVMLEtBQUtJLFNBQVNJLFFBQVFaLFFBQVEsTUFBTSxFQUFHLGNBQWUsU0FBVWEsR0FDOURwQixPQUFTaUIsUUFBUUMsSUFBSSxnQ0FBaUMsYUFBYSxFQUU3REcsRUFDSkQsRUFBT0UsZ0JBQWdCQyxZQUFZQyxpQkFBaUJDLFFBQVUsR0FFaEUsSUFBTUMsRUFBYWYsS0FBS0wsV0FBV3FCLElBRWROLEVBQWNPLEtBQUssU0FBVUMsR0FDaEQsT0FBT0EsRUFBTUYsTUFBUUQsQ0FDdkIsQ0FBQyxFQUdDZixLQUFLRyxvQkFBb0IsRUFFekJILEtBQUtOLGdCQUFnQnlCLE9BQU8sQ0FFaEMsQ0FBQyxDQUNILENBQUMsQ0FDSCxFQUVBQyxVQUFXLFdBQ1QsT0FBT3BCLEtBQUtMLFdBQVcwQixJQUFJLFFBQVEsQ0FDckMsRUFFQW5CLHVCQUF3QixTQUFVUCxHQUNoQ0ssS0FBS0wsV0FBYUEsRUFJbEJLLEtBQUtKLFFBQVEwQixNQUFNLG9CQUFxQnRCLEtBQUt1QixpQkFBa0J2QixJQUFJLEVBRW5FQSxLQUFLSixRQUFRMEIsTUFBTSxxQkFBc0J0QixLQUFLd0Isa0JB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
     1let PLUGIN_VERSION="7.0.3",DEBUG=!1,VideomailFieldController=Marionette.Object.extend({videomailClient:null,fieldModel:null,channel:Backbone.Radio.channel("videomail"),initialize:function(){Backbone.Radio.DEBUG=DEBUG,this.listenToOnce(this.channel,"init:model",this.registerVideomailField),this.listenToOnce(this.channel,"attach:view",this.loadVideomailClient),this.listenTo(this.channel,"all",function(e){DEBUG&&console.log("Videomail channel event triggered:",e),this.listenTo(nfRadio.channel("nfMP"),"change:part",function(e){DEBUG&&console.log("nfMP channel event triggered:","change:part");e=e.currentElement?.attributes?.formContentData?.models||[];let i=this.fieldModel.cid;e.find(function(e){return e.cid===i})?this.loadVideomailClient():this.videomailClient.unload()})})},getFormId:function(){return this.fieldModel.get("formID")},registerVideomailField:function(e){this.fieldModel=e,this.channel.reply("validate:required",this.validateRequired,this),this.channel.reply("validate:modelData",this.validateVideomail,this),Backbone.Radio.channel("form-"+this.getFormId()).reply("maybe:submit",this.maybeSubmit,this,e)},loadVideomailClient:function(){let e=this.fieldModel.get("image_quality")||40;100<e?e=100:e<1&&(e=1);var i=this.fieldModel.get("verbose")||DEBUG;DEBUG=DEBUG||i,Backbone.Radio.DEBUG=Backbone.Radio.DEBUG||i,this.videomailClient=new VideomailClient.VideomailClient({siteName:this.fieldModel.get("site_name"),video:{limitSeconds:this.fieldModel.get("limit_seconds")||90,width:this.fieldModel.get("width")||320,stretch:this.fieldModel.get("stretch")||!1,countdown:this.fieldModel.get("countdown")||!1},audio:{enabled:this.fieldModel.get("audio_enabled")},image:{quality:e/100},selectors:{containerId:"videomail",submitButtonSelector:".submit-wrap input"},callbacks:{adjustFormDataBeforePosting:this.adjustFormDataBeforePostingToVideomailServer.bind(this)},loadUserMediaOnRecord:this.fieldModel.get("load_user_media_on_record"),enableAutoValidation:!1,enableAutoSubmission:!1,verbose:i,versions:{ninjaFormPlugin:PLUGIN_VERSION}}),this.videomailClient.on("PREVIEW",this.onPreview.bind(this)),this.videomailClient.on("SUBMITTED",this.onSubmitted.bind(this)),this.videomailClient.on("GOING_BACK",this.onGoingBack.bind(this)),this.videomailClient.show()},onPreview:function(e){this.fieldModel.set("videomail-key",e),this.fieldModel.set("value",e),Backbone.Radio.channel("fields").request("remove:error",this.fieldModel.get("id"),"required-error")},onSubmitted:function(e){let i=Backbone.Radio.channel("app").request("get:form",this.getFormId());i=i||this.fieldModel.collection.options.formModel,Backbone.Radio.channel("form-"+i.get("id")).request("add:extra","videomail",e.videomail),Backbone.Radio.channel("form-"+this.getFormId()).request("submit",i)},onGoingBack:function(){this.fieldModel.set("videomail-key",null),this.invalidate()},validateRequired:function(e,i){i=this.validateVideomail(i);return i||this.invalidate(),i},invalidate:function(){Backbone.Radio.channel("fields").request("add:error",this.fieldModel.get("id"),"required-error","Record and click on stop to see a preview video.")},validateVideomail:function(e){return(e=e||this.fieldModel).get("videomail-key")||!1},hasErrors:function(e){return 0<e.get("errors").length},maybeSubmit:function(e){let i=!0;var t=e.getExtra("videomail"),o=this.validateVideomail(),e=this.hasErrors(e);return t||e||!o||(this.videomailClient.submit(),i=!1),i},getMergeTagValue:function(e,i){let t=this.fieldModel.get(e);if(t&&("{wp:admin_email}"===t?t=window.nfVideomail.admin_email:(e=(e=t.match(/{field:(.*)}/i))&&e[1])!==t&&(t=t.replace(/{field:(.*)}/i,i[e]))),"undefined"!==t)return t},getFormValues:function(){let e;var i=Backbone.Radio.channel("app").request("get:form",this.getFormId()),i=(i?e=i.get("fields"):this.fieldModel.collection.options.formModel.get("fields").models&&(e=this.fieldModel.collection.options.formModel.get("fields").models),e.reduce(function(e,i){return e[i.get("key")]=i.get("value"),e},{}));return i},adjustFormDataBeforePostingToVideomailServer:function(e){var i=this.getFormValues();return e.from=this.getMergeTagValue("email_from",i),e.to=this.getMergeTagValue("email_to",i),e.subject=this.getMergeTagValue("email_subject",i),e.body=this.getMergeTagValue("email_body",i),e},onBeforeDestroy:function(){this.videomailClient.unload(),delete this.videomailClient}});jQuery(document).ready(function(){return new VideomailFieldController});
     2//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gUmVtZW1iZXIsIHlvdSBjYW4ndCB1c2UgYW55IGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHMgaGVyZVxuY29uc3QgUExVR0lOX1ZFUlNJT04gPSBcIjcuMC4zXCI7XG5cbi8vIG1hbnVhbCBzd2l0Y2ggdG8gaGF2ZSBtb3JlIHN0dWZmIHByaW50ZWQgdG8gY29uc29sZVxubGV0IERFQlVHID0gZmFsc2U7XG5cbi8vIGdvb2QgZG9jdW1lbnRhdGlvbiBvbiBiYWNrYm9uZSBldmVudCBoYW5kbGluZ1xuLy8gaHR0cDovL2JhY2tib25lanMub3JnLyNFdmVudHNcblxuY29uc3QgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyID0gTWFyaW9uZXR0ZS5PYmplY3QuZXh0ZW5kKHtcbiAgdmlkZW9tYWlsQ2xpZW50OiBudWxsLFxuXG4gIGZpZWxkTW9kZWw6IG51bGwsXG5cbiAgY2hhbm5lbDogQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcInZpZGVvbWFpbFwiKSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAoKSB7XG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBERUJVRztcblxuICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgXCJpbml0Om1vZGVsXCIsIHRoaXMucmVnaXN0ZXJWaWRlb21haWxGaWVsZCk7XG4gICAgdGhpcy5saXN0ZW5Ub09uY2UodGhpcy5jaGFubmVsLCBcImF0dGFjaDp2aWV3XCIsIHRoaXMubG9hZFZpZGVvbWFpbENsaWVudCk7XG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCBcImFsbFwiLCBmdW5jdGlvbiAoZXZlbnROYW1lKSB7XG4gICAgICBERUJVRyAmJiBjb25zb2xlLmxvZyhcIlZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDpcIiwgZXZlbnROYW1lKTtcblxuICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgLy8gdmlkZW9tYWlsIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGlzZWQuIHNvIGp1c3QgcmVzdW1lIGl0LlxuICAgICAgdGhpcy5saXN0ZW5UbyhuZlJhZGlvLmNoYW5uZWwoXCJuZk1QXCIpLCBcImNoYW5nZTpwYXJ0XCIsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coXCJuZk1QIGNoYW5uZWwgZXZlbnQgdHJpZ2dlcmVkOlwiLCBcImNoYW5nZTpwYXJ0XCIpO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb2RlbHMgPVxuICAgICAgICAgIHBhcmFtcy5jdXJyZW50RWxlbWVudD8uYXR0cmlidXRlcz8uZm9ybUNvbnRlbnREYXRhPy5tb2RlbHMgfHwgW107XG5cbiAgICAgICAgY29uc3QgY3VycmVudENpZCA9IHRoaXMuZmllbGRNb2RlbC5jaWQ7XG5cbiAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgIHJldHVybiBtb2RlbC5jaWQgPT09IGN1cnJlbnRDaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50TW9kZWwpIHtcbiAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgZ2V0Rm9ybUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRNb2RlbC5nZXQoXCJmb3JtSURcIik7XG4gIH0sXG5cbiAgcmVnaXN0ZXJWaWRlb21haWxGaWVsZDogZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICB0aGlzLmZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsO1xuXG4gICAgLy8gY3VzdG9tIGZpZWxkIHZhbGlkYXRpb24sIHNpbmNlIHdlIGFyZW4ndCB1c2luZyBhIHN0YW5kYXJkIGB2YWx1ZWBcbiAgICAvLyBmb3IgdGhlIHZpZGVvbWFpbCBpbnB1dFxuICAgIHRoaXMuY2hhbm5lbC5yZXBseShcInZhbGlkYXRlOnJlcXVpcmVkXCIsIHRoaXMudmFsaWRhdGVSZXF1aXJlZCwgdGhpcyk7XG5cbiAgICB0aGlzLmNoYW5uZWwucmVwbHkoXCJ2YWxpZGF0ZTptb2RlbERhdGFcIiwgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcyk7XG5cbiAgICAvLyBjb250cm9sIHN1Ym1pc3Npb24gcHJvZ3Jlc3MsXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJmb3JtLVwiICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICBcIm1heWJlOnN1Ym1pdFwiLFxuICAgICAgdGhpcy5tYXliZVN1Ym1pdCxcbiAgICAgIHRoaXMsXG4gICAgICBmaWVsZE1vZGVsLFxuICAgICk7XG4gIH0sXG5cbiAgbG9hZFZpZGVvbWFpbENsaWVudDogZnVuY3Rpb24gKCkge1xuICAgIGxldCBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gdGhpcy5maWVsZE1vZGVsLmdldChcImltYWdlX3F1YWxpdHlcIikgfHwgNDA7XG5cbiAgICBpZiAoaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA+IDEwMCkge1xuICAgICAgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IDEwMDtcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMTtcbiAgICB9XG5cbiAgICBjb25zdCB2ZXJib3NlID0gdGhpcy5maWVsZE1vZGVsLmdldChcInZlcmJvc2VcIikgfHwgREVCVUc7XG5cbiAgICAvLyBsYXRlIG92ZXJyaWRlc1xuICAgIERFQlVHID0gREVCVUcgfHwgdmVyYm9zZTtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IEJhY2tib25lLlJhZGlvLkRFQlVHIHx8IHZlcmJvc2U7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQuVmlkZW9tYWlsQ2xpZW50KHtcbiAgICAgIHNpdGVOYW1lOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwic2l0ZV9uYW1lXCIpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwibGltaXRfc2Vjb25kc1wiKSB8fCA5MCxcbiAgICAgICAgd2lkdGg6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJ3aWR0aFwiKSB8fCAzMjAsXG4gICAgICAgIC8vIFRPRE8gSW1wbGVtZW50IG9uIFZDIHNpZGVcbiAgICAgICAgc3RyZXRjaDogdGhpcy5maWVsZE1vZGVsLmdldChcInN0cmV0Y2hcIikgfHwgZmFsc2UsXG4gICAgICAgIGNvdW50ZG93bjogdGhpcy5maWVsZE1vZGVsLmdldChcImNvdW50ZG93blwiKSB8fCBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBhdWRpbzoge1xuICAgICAgICBlbmFibGVkOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KFwiYXVkaW9fZW5hYmxlZFwiKSxcbiAgICAgIH0sXG4gICAgICBpbWFnZToge1xuICAgICAgICBxdWFsaXR5OiBpbWFnZVF1YWxpdHlQZXJjZW50YWdlIC8gMTAwLCAvLyBtdXN0IGJlIGEgZmxvYXRcbiAgICAgIH0sXG4gICAgICBzZWxlY3RvcnM6IHtcbiAgICAgICAgY29udGFpbmVySWQ6IFwidmlkZW9tYWlsXCIsXG4gICAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiBcIi5zdWJtaXQtd3JhcCBpbnB1dFwiLFxuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAvLyB1Z2x5IG5hbWUgZWg/XG4gICAgICAgIGFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZzpcbiAgICAgICAgICB0aGlzLmFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyLmJpbmQodGhpcyksXG4gICAgICB9LFxuICAgICAgLy8gd2hlbiB0cnVlLCB1c2VyIG1lZGlhIGlzIGxvYWRlZCBvbmx5IHdoZW4gcmVjb3JkIGJ1dHRvbiBpcyBwcmVzc2VkXG4gICAgICBsb2FkVXNlck1lZGlhT25SZWNvcmQ6IHRoaXMuZmllbGRNb2RlbC5nZXQoXCJsb2FkX3VzZXJfbWVkaWFfb25fcmVjb3JkXCIpLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIHZhbGlkYXRlIHRoZSBpbnB1dHNcbiAgICAgIGVuYWJsZUF1dG9WYWxpZGF0aW9uOiBmYWxzZSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byBkZWFsIHdpdGggZm9ybSBzdWJtaXNzaW9uc1xuICAgICAgZW5hYmxlQXV0b1N1Ym1pc3Npb246IGZhbHNlLFxuXG4gICAgICAvLyBsb2cgYWN0aW9ucy9ldmVudHMgdG8gY29uc29sZVxuICAgICAgdmVyYm9zZSxcblxuICAgICAgdmVyc2lvbnM6IHtcbiAgICAgICAgbmluamFGb3JtUGx1Z2luOiBQTFVHSU5fVkVSU0lPTixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIlBSRVZJRVdcIiwgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKSk7XG4gICAgdGhpcy52aWRlb21haWxDbGllbnQub24oXCJTVUJNSVRURURcIiwgdGhpcy5vblN1Ym1pdHRlZC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcIkdPSU5HX0JBQ0tcIiwgdGhpcy5vbkdvaW5nQmFjay5iaW5kKHRoaXMpKTtcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnNob3coKTtcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIGtleSk7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldChcInZhbHVlXCIsIGtleSk7XG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpXG4gICAgICAvLyBjbGVhcnMgYW55IHByZXZpb3VzIGVycm9yc1xuICAgICAgLnJlcXVlc3QoXCJyZW1vdmU6ZXJyb3JcIiwgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLCBcInJlcXVpcmVkLWVycm9yXCIpO1xuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoXCJhcHBcIikucmVxdWVzdChcImdldDpmb3JtXCIsIHRoaXMuZ2V0Rm9ybUlkKCkpO1xuXG4gICAgaWYgKCFmb3JtTW9kZWwpIHtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgICAgZm9ybU1vZGVsID0gdGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgLy8gVE9ETyBJc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImZvcm0tXCIgKyBmb3JtTW9kZWwuZ2V0KFwiaWRcIikpLnJlcXVlc3QoXG4gICAgICBcImFkZDpleHRyYVwiLFxuICAgICAgXCJ2aWRlb21haWxcIixcbiAgICAgIHJlc3VsdC52aWRlb21haWwsXG4gICAgKTtcblxuICAgIC8vIHJlc3RhcnQgc3VibWlzc2lvbiBhZ2FpbiwgdGhpcyB0aW1lIHRvIHRoZSByZWFsIHdwIHNpdGVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZm9ybS1cIiArIHRoaXMuZ2V0Rm9ybUlkKCkpLnJlcXVlc3QoXCJzdWJtaXRcIiwgZm9ybU1vZGVsKTtcbiAgfSxcblxuICBvbkdvaW5nQmFjazogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoXCJ2aWRlb21haWwta2V5XCIsIG51bGwpO1xuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICB9LFxuXG4gIHZhbGlkYXRlUmVxdWlyZWQ6IGZ1bmN0aW9uIChlbCwgZmllbGRNb2RlbCkge1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZVZpZGVvbWFpbChmaWVsZE1vZGVsKTtcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfSxcblxuICBpbnZhbGlkYXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgLy8gb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBzbyB0aGF0IHdlIGNhbiBzZXQgb3VyIG93biBlcnJvciB0ZXh0IGhlcmVcbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKFwiZmllbGRzXCIpLnJlcXVlc3QoXG4gICAgICBcImFkZDplcnJvclwiLFxuICAgICAgdGhpcy5maWVsZE1vZGVsLmdldChcImlkXCIpLFxuICAgICAgXCJyZXF1aXJlZC1lcnJvclwiLFxuICAgICAgXCJSZWNvcmQgYW5kIGNsaWNrIG9uIHN0b3AgdG8gc2VlIGEgcHJldmlldyB2aWRlby5cIixcbiAgICApO1xuICB9LFxuXG4gIHZhbGlkYXRlVmlkZW9tYWlsOiBmdW5jdGlvbiAoZmllbGRNb2RlbCkge1xuICAgIGZpZWxkTW9kZWwgPSBmaWVsZE1vZGVsIHx8IHRoaXMuZmllbGRNb2RlbDtcbiAgICByZXR1cm4gZmllbGRNb2RlbC5nZXQoXCJ2aWRlb21haWwta2V5XCIpIHx8IGZhbHNlO1xuICB9LFxuXG4gIGhhc0Vycm9yczogZnVuY3Rpb24gKGZvcm1Nb2RlbCkge1xuICAgIHJldHVybiBmb3JtTW9kZWwuZ2V0KFwiZXJyb3JzXCIpLmxlbmd0aCA+IDA7XG4gIH0sXG5cbiAgbWF5YmVTdWJtaXQ6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICBsZXQgbWF5YmUgPSB0cnVlO1xuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYShcInZpZGVvbWFpbFwiKTtcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuaGFzRXJyb3JzKGZvcm1Nb2RlbCk7XG5cbiAgICAvLyBob2xkIG9uIHdpdGggZmluYWwgZm9ybSBzdWJtaXNzaW9uIHdoZW4gb25lIHdhcyByZWNvcmRlZFxuICAgIC8vIGJ1dCBoYXNuJ3QgYmVlbiBzdWJtaXR0ZWQgdG8gdGhlIHZpZGVvbWFpbCBzZXJ2ZXIgeWV0XG4gICAgaWYgKCF2aWRlb21haWxTdWJtaXR0ZWQgJiYgIWVycm9yICYmIHZpZGVvbWFpbFJlY29yZGVkKSB7XG4gICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zdWJtaXQoKTtcbiAgICAgIG1heWJlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1heWJlO1xuICB9LFxuXG4gIGdldE1lcmdlVGFnVmFsdWU6IGZ1bmN0aW9uIChmaWVsZEtleSwgZm9ybVZhbHVlcykge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoZmllbGRLZXkpO1xuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gXCJ7d3A6YWRtaW5fZW1haWx9XCIpIHtcbiAgICAgICAgdmFsdWUgPSB3aW5kb3cubmZWaWRlb21haWwuYWRtaW5fZW1haWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpO1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleSA9IHJhd0ZpZWxkS2V5TWF0Y2hlcyAmJiByYXdGaWVsZEtleU1hdGNoZXNbMV07XG5cbiAgICAgICAgaWYgKHJhd0ZpZWxkS2V5ICE9PSB2YWx1ZSkge1xuICAgICAgICAgIC8vIHllcyBpdCB3YXMgYSBtZXJnZSB0YWcsIHNvIHVzZSBpdFxuICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgve2ZpZWxkOiguKil9L2ksIGZvcm1WYWx1ZXNbcmF3RmllbGRLZXldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgLy8gcmV0dXJucyBhIG1hcCBsaWtlIHRoaXM6XG4gIC8vIHtcbiAgLy8gICBmcm9tX2VtYWlsOiBcIm1pY0tAZGVhZm9uei5laFwiXG4gIC8vICAgZnJvbV9uYW1lOiBcIk1IXCJcbiAgLy8gICBtZXNzYWdlOiBcInNkZnNkZnNkZlwiXG4gIC8vICAgc3ViamVjdDogXCJzZGZzZGZcIlxuICAvLyAgIHN1Ym1pdDogXCJcIlxuICAvLyAgIHZpZGVvX21lc3NhZ2U6IFwiMTFlYi02MWQ3LWRkNTgzMzIwLWFlNjEtMmI4MmJlNmM2ZTNlXCJcbiAgLy8gfVxuICBnZXRGb3JtVmFsdWVzOiBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGNvbGxlY3Rpb247XG4gICAgY29uc3QgZm9ybU1vZGVsID0gQmFja2JvbmUuUmFkaW8uY2hhbm5lbChcImFwcFwiKS5yZXF1ZXN0KFwiZ2V0OmZvcm1cIiwgdGhpcy5nZXRGb3JtSWQoKSk7XG5cbiAgICBpZiAoZm9ybU1vZGVsKSB7XG4gICAgICBjb2xsZWN0aW9uID0gZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKTtcbiAgICAgIC8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9uc1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZE1vZGVsLmNvbGxlY3Rpb24ub3B0aW9ucy5mb3JtTW9kZWwuZ2V0KFwiZmllbGRzXCIpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldChcImZpZWxkc1wiKS5tb2RlbHM7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoXCJrZXlcIildID0gZmllbGQuZ2V0KFwidmFsdWVcIik7XG4gICAgICByZXR1cm4gbWVtbztcbiAgICB9LCB7fSk7XG5cbiAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKTtcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKFwiZW1haWxfZnJvbVwiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF90b1wiLCBmb3JtVmFsdWVzKTtcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZShcImVtYWlsX3N1YmplY3RcIiwgZm9ybVZhbHVlcyk7XG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoXCJlbWFpbF9ib2R5XCIsIGZvcm1WYWx1ZXMpO1xuXG4gICAgcmV0dXJuIHZpZGVvbWFpbDtcbiAgfSxcblxuICBvbkJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKTtcbiAgICBkZWxldGUgdGhpcy52aWRlb21haWxDbGllbnQ7XG4gIH0sXG59KTtcblxualF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBuZXcgVmlkZW9tYWlsRmllbGRDb250cm9sbGVyKCk7XG59KTtcbiJdLCJuYW1lcyI6WyJQTFVHSU5fVkVSU0lPTiIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJsaXN0ZW5UbyIsImV2ZW50TmFtZSIsImNvbnNvbGUiLCJsb2ciLCJuZlJhZGlvIiwicGFyYW1zIiwiY3VycmVudE1vZGVscyIsImN1cnJlbnRFbGVtZW50IiwiYXR0cmlidXRlcyIsImZvcm1Db250ZW50RGF0YSIsIm1vZGVscyIsImN1cnJlbnRDaWQiLCJjaWQiLCJmaW5kIiwibW9kZWwiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwibGV0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJzdHJldGNoIiwiY291bnRkb3duIiwiYXVkaW8iLCJlbmFibGVkIiwiaW1hZ2UiLCJxdWFsaXR5Iiwic2VsZWN0b3JzIiwiY29udGFpbmVySWQiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJ2ZXJzaW9ucyIsIm5pbmphRm9ybVBsdWdpbiIsIm9uIiwib25QcmV2aWV3Iiwib25TdWJtaXR0ZWQiLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwicmVzdWx0IiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJ2aWRlb21haWwiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImZyb20iLCJ0byIsInN1YmplY3QiLCJib2R5Iiwib25CZWZvcmVEZXN0cm95IiwialF1ZXJ5IiwiZG9jdW1lbnQiLCJyZWFkeSJdLCJtYXBwaW5ncyI6IkFBQ0EsSUFBTUEsZUFBaUIsUUFHbkJDLE1BQVEsQ0FBQSxFQUtOQyx5QkFBMkJDLFdBQVdDLE9BQU9DLE9BQU8sQ0FDeERDLGdCQUFpQixLQUVqQkMsV0FBWSxLQUVaQyxRQUFTQyxTQUFTQyxNQUFNRixRQUFRLFdBQVcsRUFFM0NHLFdBQVksV0FDVkYsU0FBU0MsTUFBTVQsTUFBUUEsTUFFdkJXLEtBQUtDLGFBQWFELEtBQUtKLFFBQVMsYUFBY0ksS0FBS0Usc0JBQXNCLEVBQ3pFRixLQUFLQyxhQUFhRCxLQUFLSixRQUFTLGNBQWVJLEtBQUtHLG1CQUFtQixFQUd2RUgsS0FBS0ksU0FBU0osS0FBS0osUUFBUyxNQUFPLFNBQVVTLEdBQzNDaEIsT0FBU2lCLFFBQVFDLElBQUkscUNBQXNDRixDQUFTLEVBSXBFTCxLQUFLSSxTQUFTSSxRQUFRWixRQUFRLE1BQU0sRUFBRyxjQUFlLFNBQVVhLEdBQzlEcEIsT0FBU2lCLFFBQVFDLElBQUksZ0NBQWlDLGFBQWEsRUFFN0RHLEVBQ0pELEVBQU9FLGdCQUFnQkMsWUFBWUMsaUJBQWlCQyxRQUFVLEdBRWhFLElBQU1DLEVBQWFmLEtBQUtMLFdBQVdxQixJQUVkTixFQUFjTyxLQUFLLFNBQVVDLEdBQ2hELE9BQU9BLEVBQU1GLE1BQVFELENBQ3ZCLENBQUMsRUFHQ2YsS0FBS0csb0JBQW9CLEVBRXpCSCxLQUFLTixnQkFBZ0J5QixPQUFPLENBRWhDLENBQUMsQ0FDSCxDQUFDLENBQ0gsRUFFQUMsVUFBVyxXQUNULE9BQU9wQixLQUFLTCxXQUFXMEIsSUFBSSxRQUFRLENBQ3JDLEVBRUFuQix1QkFBd0IsU0FBVVAsR0FDaENLLEtBQUtMLFdBQWFBLEVBSWxCSyxLQUFLSixRQUFRMEIsTUFBTSxvQkFBcUJ0QixLQUFLdUIsaUJBQWtCdkIsSUFBSSxFQUVuRUEsS0FBS0osUUFBUTBCLE1BQU0scUJBQXNCdEIsS0FBS3dCLGtCQUFtQnhCLElBQUksRUFJckVILFNBQVNDLE1BQU1GLFFBQVEsUUFBVUksS0FBS29CLFVBQVUsQ0FBQyxFQUFFRSxNQUNqRCxlQUNBdEIsS0FBS3lCLFlBQ0x6QixLQUNBTCxDQUNGLENBQ0YsRUFFQVEsb0JBQXFCLFdBQ25CdUIsSUFBSUMsRUFBeUIzQixLQUFLTCxXQUFXMEIsSUFBSSxlQUFlLEdBQUssR0FFeEMsSUFBekJNLEVBQ0ZBLEVBQXlCLElBQ2hCQSxFQUF5QixJQUNsQ0EsRUFBeUIsR0FHM0IsSUFBTUMsRUFBVTVCLEtBQUtMLFdBQVcwQixJQUFJLFNBQVMsR0FBS2hDLE1BR2xEQSxNQUFRQSxPQUFTdUMsRUFDakIvQixTQUFTQyxNQUFNVCxNQUFRUSxTQUFTQyxNQUFNVCxPQUFTdUMsRUFFL0M1QixLQUFLTixnQkFBa0IsSUFBSW1DLGdCQUFnQkEsZ0JBQWdCLENBQ3pEQyxTQUFVOUIsS0FBS0wsV0FBVzBCLElBQUksV0FBVyxFQUN6Q1UsTUFBTyxDQUNMQyxhQUFjaEMsS0FBS0wsV0FBVzBCLElBQUksZUFBZSxHQUFLLEdBQ3REWSxNQUFPakMsS0FBS0wsV0FBVzBCLElBQUksT0FBTyxHQUFLLElBRXZDYSxRQUFTbEMsS0FBS0wsV0FBVzBCLElBQUksU0FBUyxHQUFLLENBQUEsRUFDM0NjLFVBQVduQyxLQUFLTCxXQUFXMEIsSUFBSSxXQUFXLEdBQUssQ0FBQSxDQUNqRCxFQUNBZSxNQUFPLENBQ0xDLFFBQVNyQyxLQUFLTCxXQUFXMEIsSUFBSSxlQUFlLENBQzlDLEVBQ0FpQixNQUFPLENBQ0xDLFFBQVNaLEVBQXlCLEdBQ3BDLEVBQ0FhLFVBQVcsQ0FDVEMsWUFBYSxZQUNiQyxxQkFBc0Isb0JBQ3hCLEVBQ0FDLFVBQVcsQ0FFVEMsNEJBQ0U1QyxLQUFLNkMsNkNBQTZDQyxLQUFLOUMsSUFBSSxDQUMvRCxFQUVBK0Msc0JBQXVCL0MsS0FBS0wsV0FBVzBCLElBQUksMkJBQTJCLEVBR3RFMkIscUJBQXNCLENBQUEsRUFHdEJDLHFCQUFzQixDQUFBLEVBR3RCckIsUUFBQUEsRUFFQXNCLFNBQVUsQ0FDUkMsZ0JBQWlCL0QsY0FDbkIsQ0FDRixDQUFDLEVBRURZLEtBQUtOLGdCQUFnQjBELEdBQUcsVUFBV3BELEtBQUtxRCxVQUFVUCxLQUFLOUMsSUFBSSxDQUFDLEVBQzVEQSxLQUFLTixnQkFBZ0IwRCxHQUFHLFlBQWFwRCxLQUFLc0QsWUFBWVIsS0FBSzlDLElBQUksQ0FBQyxFQUNoRUEsS0FBS04sZ0JBQWdCMEQsR0FBRyxhQUFjcEQsS0FBS3VELFlBQVlULEtBQUs5QyxJQUFJLENBQUMsRUFFakVBLEtBQUtOLGdCQUFnQjhELEtBQUssQ0FDNUIsRUFJQUgsVUFBVyxTQUFVSSxHQUNuQnpELEtBQUtMLFdBQVcrRCxJQUFJLGdCQUFpQkQsQ0FBRyxFQUN4Q3pELEtBQUtMLFdBQVcrRCxJQUFJLFFBQVNELENBQUcsRUFFaEM1RCxTQUFTQyxNQUFNRixRQUFRLFFBQVEsRUFFNUIrRCxRQUFRLGVBQWdCM0QsS0FBS0wsV0FBVzBCLElBQUksSUFBSSxFQUFHLGdCQUFnQixDQUN4RSxFQUVBaUMsWUFBYSxTQUFVTSxHQUNyQmxDLElBQUltQyxFQUFZaEUsU0FBU0MsTUFBTUYsUUFBUSxLQUFLLEVBQUUrRCxRQUFRLFdBQVkzRCxLQUFLb0IsVUFBVSxDQUFDLEVBRTdFeUMsRUFBQUEsR0FFUzdELEtBQUtMLFdBQVdtRSxXQUFXQyxRQUFRRixVQUlqRGhFLFNBQVNDLE1BQU1GLFFBQVEsUUFBVWlFLEVBQVV4QyxJQUFJLElBQUksQ0FBQyxFQUFFc0MsUUFDcEQsWUFDQSxZQUNBQyxFQUFPSSxTQUNULEVBR0FuRSxTQUFTQyxNQUFNRixRQUFRLFFBQVVJLEtBQUtvQixVQUFVLENBQUMsRUFBRXVDLFFBQVEsU0FBVUUsQ0FBUyxDQUNoRixFQUVBTixZQUFhLFdBQ1h2RCxLQUFLTCxXQUFXK0QsSUFBSSxnQkFBaUIsSUFBSSxFQUN6QzFELEtBQUtpRSxXQUFXLENBQ2xCLEVBRUExQyxpQkFBa0IsU0FBVTJDLEVBQUl2RSxHQUN4QndFLEVBQVFuRSxLQUFLd0Isa0JBQWtCN0IsQ0FBVSxFQU0vQyxPQUpLd0UsR0FDSG5FLEtBQUtpRSxXQUFXLEVBR1hFLENBQ1QsRUFFQUYsV0FBWSxXQUVWcEUsU0FBU0MsTUFBTUYsUUFBUSxRQUFRLEVBQUUrRCxRQUMvQixZQUNBM0QsS0FBS0wsV0FBVzBCLElBQUksSUFBSSxFQUN4QixpQkFDQSxrREFDRixDQUNGLEVBRUFHLGtCQUFtQixTQUFVN0IsR0FFM0IsT0FEQUEsRUFBYUEsR0FBY0ssS0FBS0wsWUFDZDBCLElBQUksZUFBZSxHQUFLLENBQUEsQ0FDNUMsRUFFQStDLFVBQVcsU0FBVVAsR0FDbkIsT0FBd0MsRUFBakNBLEVBQVV4QyxJQUFJLFFBQVEsRUFBRWdELE1BQ2pDLEVBRUE1QyxZQUFhLFNBQVVvQyxHQUNyQm5DLElBQUk0QyxFQUFRLENBQUEsRUFDWixJQUFNQyxFQUFxQlYsRUFBVVcsU0FBUyxXQUFXLEVBQ25EQyxFQUFvQnpFLEtBQUt3QixrQkFBa0IsRUFDM0NrRCxFQUFRMUUsS0FBS29FLFVBQVVQLENBQVMsRUFTdEMsT0FMS1UsR0FBdUJHLEdBQVNELENBQUFBLElBQ25DekUsS0FBS04sZ0JBQWdCaUYsT0FBTyxFQUM1QkwsRUFBUSxDQUFBLEdBR0hBLENBQ1QsRUFFQU0saUJBQWtCLFNBQVVDLEVBQVVDLEdBQ3BDcEQsSUFBSXFELEVBQVEvRSxLQUFLTCxXQUFXMEIsSUFBSXdELENBQVEsRUFxQnhDLEdBakJJRSxJQUlZLHFCQUFWQSxFQUNGQSxFQUFRQyxPQUFPQyxZQUFZQyxhQUdyQkMsR0FEQUMsRUFBcUJMLEVBQU1NLE1BQU0sZUFBZSxJQUNaRCxFQUFtQixNQUV6Q0wsSUFFbEJBLEVBQVFBLEVBQU1PLFFBQVEsZ0JBQWlCUixFQUFXSyxFQUFZLElBS3RELGNBQVZKLEVBSUosT0FBT0EsQ0FDVCxFQVdBUSxjQUFlLFdBQ2I3RCxJQUFJb0MsRUFDSixJQUFNRCxFQUFZaEUsU0FBU0MsTUFBTUYsUUFBUSxLQUFLLEVBQUUrRCxRQUFRLFdBQVkzRCxLQUFLb0IsVUFBVSxDQUFDLEVBUzlFMEQsR0FQRmpCLEVBQ0ZDLEVBQWFELEVBQVV4QyxJQUFJLFFBQVEsRUFFMUJyQixLQUFLTCxXQUFXbUUsV0FBV0MsUUFBUUYsVUFBVXhDLElBQUksUUFBUSxFQUFFUCxTQUNwRWdELEVBQWE5RCxLQUFLTCxXQUFXbUUsV0FBV0MsUUFBUUYsVUFBVXhDLElBQUksUUFBUSxFQUFFUCxRQUd2RGdELEVBQVcwQixPQUFPLFNBQVVDLEVBQU1DLEdBRW5ELE9BREFELEVBQUtDLEVBQU1yRSxJQUFJLEtBQUssR0FBS3FFLEVBQU1yRSxJQUFJLE9BQU8sRUFDbkNvRSxDQUNULEVBQUcsRUFBRSxHQUVMLE9BQU9YLENBQ1QsRUFFQWpDLDZDQUE4QyxTQUFVbUIsR0FDdEQsSUFBTWMsRUFBYTlFLEtBQUt1RixjQUFjLEVBT3RDLE9BTEF2QixFQUFVMkIsS0FBTzNGLEtBQUs0RSxpQkFBaUIsYUFBY0UsQ0FBVSxFQUMvRGQsRUFBVTRCLEdBQUs1RixLQUFLNEUsaUJBQWlCLFdBQVlFLENBQVUsRUFDM0RkLEVBQVU2QixRQUFVN0YsS0FBSzRFLGlCQUFpQixnQkFBaUJFLENBQVUsRUFDckVkLEVBQVU4QixLQUFPOUYsS0FBSzRFLGlCQUFpQixhQUFjRSxDQUFVLEVBRXhEZCxDQUNULEVBRUErQixnQkFBaUIsV0FDZi9GLEtBQUtOLGdCQUFnQnlCLE9BQU8sRUFDNUIsT0FBT25CLEtBQUtOLGVBQ2QsQ0FDRixDQUFDLEVBRURzRyxPQUFPQyxRQUFRLEVBQUVDLE1BQU0sV0FDckIsT0FBTyxJQUFJNUcsd0JBQ2IsQ0FBQyJ9
  • videomail-for-ninja-forms/trunk/target/php/videomail.php

    r3231806 r3232399  
    33
    44  const NAME = 'Videomail';
    5   const VERSION = '7.0.2';
     5  const VERSION = '7.0.3';
    66  const AUTHOR = 'Michael Heuberger + Kyle B. Johnson';
    77  const SLUG = 'videomail';
  • videomail-for-ninja-forms/trunk/videomail-for-ninja-forms.php

    r3231806 r3232399  
    44Plugin URI: https://github.com/binarykitchen/videomail-for-ninja-forms
    55Description: Express yourself in more than just words. Record and send a short video from your webcam.
    6 Version: 7.0.2
     6Version: 7.0.3
    77Author: Michael Heuberger + Kyle B. Johnson
    88Author URI: https://videomail.io
     
    1010Text Domain: videomail-for-ninja-forms
    1111
    12 Copyright 2024 Michael Heuberger + Kyle B. Johnson
     12Copyright 2025 Michael Heuberger + Kyle B. Johnson
    1313*/
    1414
Note: See TracChangeset for help on using the changeset viewer.