Plugin Directory

Changeset 3102043


Ignore:
Timestamp:
06/13/2024 01:14:47 AM (22 months ago)
Author:
michael.heuberger
Message:

Update to version 5.1.1 from GitHub

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

Legend:

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

    r3040427 r3102043  
    11=== Videomail for Ninja Forms ===
    22Contributors: michael.heuberger, kbjohnson90
    3 Tags: form, video, email, audio, webcam, recorder, sign language, deaf
     3Tags: video, email, recorder, sign language
    44
    55Requires at least: 6.0
    6 Tested up to: 6.2.2
    7 Stable tag: 5.1.0
     6Tested up to: 6.5.4
     7Stable tag: 5.1.1
    88Requires PHP: 7.4.0
    99Donate link: https://videomail.io/faq
     
    7070
    7171== Changelog ==
     72= 5.1.1 (13 Jun 2024) =
     73*Change:*
     74* Upgrade Node.js and npm
     75* Tested on WordPress v6.5.4
     76
     77*Bugs:*
     78* Correct invalid tags
     79
    7280= 5.1.0 (24 Feb 2024) =
    7381*Improvement:*
  • videomail-for-ninja-forms/tags/5.1.1/target/js/main.min.js

    r3040427 r3102043  
    1 let DEBUG=!1;const VideomailFieldController=Marionette.Object.extend({videomailClient:null,fieldModel:null,channel:Backbone.Radio.channel("videomail"),initialize:function(){Backbone.Radio.DEBUG=DEBUG,this.listenTo(this.channel,"all",function(e){DEBUG&&console.log("Videomail channel event triggered:",e),this.videomailClient||(this.listenToOnce(this.channel,"init:model",this.registerVideomailField),this.listenTo(nfRadio.channel("nfMP"),"change:part",function(e){DEBUG&&console.log("nfMP channel event triggered:","change:part");e=e.currentElement?.attributes?.formContentData?.models||[];const 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.videomailClient||(this.fieldModel=e,this.loadVideomailClient(),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({siteName:this.fieldModel.get("site_name"),video:{limitSeconds:this.fieldModel.get("limit_seconds")||90,width:this.fieldModel.get("width")||320,countdown:this.fieldModel.get("countdown")||!1},audio:{enabled:this.fieldModel.get("audio_enabled")},image:{quality:e/100},selectors:{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}),this.videomailClient.on(this.videomailClient.events.PREVIEW,this.onPreview.bind(this)),this.videomailClient.on(this.videomailClient.events.SUBMITTED,this.onSubmitted.bind(this)),this.videomailClient.on(this.videomailClient.events.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),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());return 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},{})},adjustFormDataBeforePostingToVideomailServer:function(e,i){var t=this.getFormValues();e.from=this.getMergeTagValue("email_from",t),e.to=this.getMergeTagValue("email_to",t),e.subject=this.getMergeTagValue("email_subject",t),e.body=this.getMergeTagValue("email_body",t),i(null,e)},onBeforeDestroy:function(){this.videomailClient.unload(),delete this.videomailClient}});jQuery(document).ready(function(){return new VideomailFieldController});
    2 //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gbWFudWFsIHN3aXRjaCB0byBoYXZlIG1vcmUgc3R1ZmYgcHJpbnRlZCB0byBjb25zb2xlXG5sZXQgREVCVUcgPSBmYWxzZVxuXG4vLyBnb29kIGRvY3VtZW50YXRpb24gb24gYmFja2JvbmUgZXZlbnQgaGFuZGxpbmdcbi8vIGh0dHA6Ly9iYWNrYm9uZWpzLm9yZy8jRXZlbnRzXG5cbmNvbnN0IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlciA9IE1hcmlvbmV0dGUuT2JqZWN0LmV4dGVuZCh7XG4gIHZpZGVvbWFpbENsaWVudDogbnVsbCxcblxuICBmaWVsZE1vZGVsOiBudWxsLFxuXG4gIGNoYW5uZWw6IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ3ZpZGVvbWFpbCcpLFxuXG4gIGluaXRpYWxpemU6IGZ1bmN0aW9uICgpIHtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IERFQlVHXG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCAnYWxsJywgZnVuY3Rpb24gKGV2ZW50TmFtZSkge1xuICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coJ1ZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDonLCBldmVudE5hbWUpXG5cbiAgICAgIGlmICghdGhpcy52aWRlb21haWxDbGllbnQpIHtcbiAgICAgICAgLy8gb25seSBzdGFydCByZWdpc3RlcmluZyBhbmQgbGlzdGVuaW5nIGF0IHRoaXMgcG9pbnQuXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlIGNvbmRpdGlvbmFsIHBsdWdpbiBpcyByZXNldHRpbmcgZXZlbnQgaGFuZGxlcnMuXG4gICAgICAgIC8vIHdpdGhvdXQgdGhlIGFib3ZlLCB3ZSdkIGJlIHJlZ2lzdGVyaW5nIHRvbyBlYXJseSBhbmQgdGhlXG4gICAgICAgIC8vIGNvbmRpdGlvbmFsIHBsdWdpbiBvdmVycmlkZXMuXG4gICAgICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgJ2luaXQ6bW9kZWwnLCB0aGlzLnJlZ2lzdGVyVmlkZW9tYWlsRmllbGQpXG5cbiAgICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgICAvLyB2aWRlb21haWwgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXNlZC4gc28ganVzdCByZXN1bWUgaXQuXG4gICAgICAgIHRoaXMubGlzdGVuVG8obmZSYWRpby5jaGFubmVsKCduZk1QJyksICdjaGFuZ2U6cGFydCcsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgICBERUJVRyAmJiBjb25zb2xlLmxvZygnbmZNUCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDonLCAnY2hhbmdlOnBhcnQnKVxuXG4gICAgICAgICAgY29uc3QgY3VycmVudE1vZGVscyA9XG4gICAgICAgICAgICBwYXJhbXMuY3VycmVudEVsZW1lbnQ/LmF0dHJpYnV0ZXM/LmZvcm1Db250ZW50RGF0YT8ubW9kZWxzIHx8IFtdXG5cbiAgICAgICAgICBjb25zdCBjdXJyZW50Q2lkID0gdGhpcy5maWVsZE1vZGVsLmNpZFxuXG4gICAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuIG1vZGVsLmNpZCA9PT0gY3VycmVudENpZFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBpZiAoY3VycmVudE1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuXG4gIGdldEZvcm1JZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdmb3JtSUQnKVxuICB9LFxuXG4gIHJlZ2lzdGVyVmlkZW9tYWlsRmllbGQ6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgLy8gd29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3dwbmluamFzL25pbmphLWZvcm1zL2lzc3Vlcy8yNjc1XG4gICAgLy8gYWxzbyBwcmV2ZW50cyBmcm9tIGV2ZW50IGVtaXR0ZXIgbGVha3MgdW5kZXIgcmFjZSBjb25kaXRpb25zXG4gICAgaWYgKCF0aGlzLnZpZGVvbWFpbENsaWVudCkge1xuICAgICAgdGhpcy5maWVsZE1vZGVsID0gZmllbGRNb2RlbFxuXG4gICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKVxuXG4gICAgICAvLyBjdXN0b20gZmllbGQgdmFsaWRhdGlvbiwgc2luY2Ugd2UgYXJlbid0IHVzaW5nIGEgc3RhbmRhcmQgYHZhbHVlYFxuICAgICAgLy8gZm9yIHRoZSB2aWRlb21haWwgaW5wdXRcbiAgICAgIHRoaXMuY2hhbm5lbC5yZXBseSgndmFsaWRhdGU6cmVxdWlyZWQnLCB0aGlzLnZhbGlkYXRlUmVxdWlyZWQsIHRoaXMpXG5cbiAgICAgIHRoaXMuY2hhbm5lbC5yZXBseSgndmFsaWRhdGU6bW9kZWxEYXRhJywgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcylcblxuICAgICAgLy8gY29udHJvbCBzdWJtaXNzaW9uIHByb2dyZXNzLFxuICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbCgnZm9ybS0nICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICAgICdtYXliZTpzdWJtaXQnLFxuICAgICAgICB0aGlzLm1heWJlU3VibWl0LFxuICAgICAgICB0aGlzLFxuICAgICAgICBmaWVsZE1vZGVsXG4gICAgICApXG4gICAgfVxuICB9LFxuXG4gIGxvYWRWaWRlb21haWxDbGllbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoJ2ltYWdlX3F1YWxpdHknKSB8fCA0MFxuXG4gICAgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgIGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPSAxMDBcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMVxuICAgIH1cblxuICAgIGNvbnN0IHZlcmJvc2UgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KCd2ZXJib3NlJykgfHwgREVCVUdcblxuICAgIC8vIGxhdGUgb3ZlcnJpZGVzXG4gICAgREVCVUcgPSBERUJVRyB8fCB2ZXJib3NlXG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBCYWNrYm9uZS5SYWRpby5ERUJVRyB8fCB2ZXJib3NlXG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQoe1xuICAgICAgc2l0ZU5hbWU6IHRoaXMuZmllbGRNb2RlbC5nZXQoJ3NpdGVfbmFtZScpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdsaW1pdF9zZWNvbmRzJykgfHwgOTAsXG4gICAgICAgIHdpZHRoOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCd3aWR0aCcpIHx8IDMyMCxcbiAgICAgICAgY291bnRkb3duOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdjb3VudGRvd24nKSB8fCBmYWxzZVxuICAgICAgfSxcbiAgICAgIGF1ZGlvOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRoaXMuZmllbGRNb2RlbC5nZXQoJ2F1ZGlvX2VuYWJsZWQnKVxuICAgICAgfSxcbiAgICAgIGltYWdlOiB7XG4gICAgICAgIHF1YWxpdHk6IGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgLyAxMDAgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiAnLnN1Ym1pdC13cmFwIGlucHV0J1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAvLyB1Z2x5IG5hbWUgZWg/XG4gICAgICAgIGFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZzpcbiAgICAgICAgICB0aGlzLmFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyLmJpbmQodGhpcylcbiAgICAgIH0sXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldCgnbG9hZF91c2VyX21lZGlhX29uX3JlY29yZCcpLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIHZhbGlkYXRlIHRoZSBpbnB1dHNcbiAgICAgIGVuYWJsZUF1dG9WYWxpZGF0aW9uOiBmYWxzZSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byBkZWFsIHdpdGggZm9ybSBzdWJtaXNzaW9uc1xuICAgICAgZW5hYmxlQXV0b1N1Ym1pc3Npb246IGZhbHNlLFxuXG4gICAgICAvLyBsb2cgYWN0aW9ucy9ldmVudHMgdG8gY29uc29sZVxuICAgICAgdmVyYm9zZVxuICAgIH0pXG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcbiAgICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LmV2ZW50cy5QUkVWSUVXLFxuICAgICAgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKVxuICAgIClcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFxuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuZXZlbnRzLlNVQk1JVFRFRCxcbiAgICAgIHRoaXMub25TdWJtaXR0ZWQuYmluZCh0aGlzKVxuICAgIClcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFxuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuZXZlbnRzLkdPSU5HX0JBQ0ssXG4gICAgICB0aGlzLm9uR29pbmdCYWNrLmJpbmQodGhpcylcbiAgICApXG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zaG93KClcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoJ3ZpZGVvbWFpbC1rZXknLCBrZXkpXG4gICAgdGhpcy5maWVsZE1vZGVsLnNldCgndmFsdWUnLCBrZXkpXG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKCdmaWVsZHMnKVxuICAgICAgLy8gY2xlYXJzIGFueSBwcmV2aW91cyBlcnJvcnNcbiAgICAgIC5yZXF1ZXN0KCdyZW1vdmU6ZXJyb3InLCB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdpZCcpLCAncmVxdWlyZWQtZXJyb3InKVxuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAodmlkZW9tYWlsKSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ2FwcCcpLnJlcXVlc3QoJ2dldDpmb3JtJywgdGhpcy5nZXRGb3JtSWQoKSlcblxuICAgIGlmICghZm9ybU1vZGVsKSB7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICAgIGZvcm1Nb2RlbCA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsXG4gICAgfVxuXG4gICAgLy8gdG9kbyBpc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbCgnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSkucmVxdWVzdChcbiAgICAgICdhZGQ6ZXh0cmEnLFxuICAgICAgJ3ZpZGVvbWFpbCcsXG4gICAgICB2aWRlb21haWxcbiAgICApXG5cbiAgICAvLyByZXN0YXJ0IHN1Ym1pc3Npb24gYWdhaW4sIHRoaXMgdGltZSB0byB0aGUgcmVhbCB3cCBzaXRlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbCgnZm9ybS0nICsgdGhpcy5nZXRGb3JtSWQoKSkucmVxdWVzdCgnc3VibWl0JywgZm9ybU1vZGVsKVxuICB9LFxuXG4gIG9uR29pbmdCYWNrOiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldCgndmlkZW9tYWlsLWtleScsIG51bGwpXG4gICAgdGhpcy5pbnZhbGlkYXRlKClcbiAgfSxcblxuICB2YWxpZGF0ZVJlcXVpcmVkOiBmdW5jdGlvbiAoZWwsIGZpZWxkTW9kZWwpIHtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoZmllbGRNb2RlbClcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkXG4gIH0sXG5cbiAgaW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIC8vIG92ZXJyaWRlIGRlZmF1bHQgYmVoYXZpb3VyIHNvIHRoYXQgd2UgY2FuIHNldCBvdXIgb3duIGVycm9yIHRleHQgaGVyZVxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ2ZpZWxkcycpLnJlcXVlc3QoXG4gICAgICAnYWRkOmVycm9yJyxcbiAgICAgIHRoaXMuZmllbGRNb2RlbC5nZXQoJ2lkJyksXG4gICAgICAncmVxdWlyZWQtZXJyb3InLFxuICAgICAgJ1JlY29yZCBhbmQgY2xpY2sgb24gc3RvcCB0byBzZWUgYSBwcmV2aWV3IHZpZGVvLidcbiAgICApXG4gIH0sXG5cbiAgdmFsaWRhdGVWaWRlb21haWw6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgZmllbGRNb2RlbCA9IGZpZWxkTW9kZWwgfHwgdGhpcy5maWVsZE1vZGVsXG4gICAgcmV0dXJuIGZpZWxkTW9kZWwuZ2V0KCd2aWRlb21haWwta2V5JykgfHwgZmFsc2VcbiAgfSxcblxuICBoYXNFcnJvcnM6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICByZXR1cm4gZm9ybU1vZGVsLmdldCgnZXJyb3JzJykubGVuZ3RoID4gMFxuICB9LFxuXG4gIG1heWJlU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgbGV0IG1heWJlID0gdHJ1ZVxuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYSgndmlkZW9tYWlsJylcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKVxuICAgIGNvbnN0IGVycm9yID0gdGhpcy5oYXNFcnJvcnMoZm9ybU1vZGVsKVxuXG4gICAgLy8gaG9sZCBvbiB3aXRoIGZpbmFsIGZvcm0gc3VibWlzc2lvbiB3aGVuIG9uZSB3YXMgcmVjb3JkZWRcbiAgICAvLyBidXQgaGFzbid0IGJlZW4gc3VibWl0dGVkIHRvIHRoZSB2aWRlb21haWwgc2VydmVyIHlldFxuICAgIGlmICghdmlkZW9tYWlsU3VibWl0dGVkICYmICFlcnJvciAmJiB2aWRlb21haWxSZWNvcmRlZCkge1xuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuc3VibWl0KClcbiAgICAgIG1heWJlID0gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gbWF5YmVcbiAgfSxcblxuICBnZXRNZXJnZVRhZ1ZhbHVlOiBmdW5jdGlvbiAoZmllbGRLZXksIGZvcm1WYWx1ZXMpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KGZpZWxkS2V5KVxuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gJ3t3cDphZG1pbl9lbWFpbH0nKSB7XG4gICAgICAgIHZhbHVlID0gd2luZG93Lm5mVmlkZW9tYWlsLmFkbWluX2VtYWlsXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpXG4gICAgICAgIGNvbnN0IHJhd0ZpZWxkS2V5ID0gcmF3RmllbGRLZXlNYXRjaGVzICYmIHJhd0ZpZWxkS2V5TWF0Y2hlc1sxXVxuXG4gICAgICAgIGlmIChyYXdGaWVsZEtleSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAvLyB5ZXMgaXQgd2FzIGEgbWVyZ2UgdGFnLCBzbyB1c2UgaXRcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL3tmaWVsZDooLiopfS9pLCBmb3JtVmFsdWVzW3Jhd0ZpZWxkS2V5XSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfSxcblxuICAvLyByZXR1cm5zIGEgbWFwIGxpa2UgdGhpczpcbiAgLy8ge1xuICAvLyAgIGZyb21fZW1haWw6IFwibWljS0BkZWFmb256LmVoXCJcbiAgLy8gICBmcm9tX25hbWU6IFwiTUhcIlxuICAvLyAgIG1lc3NhZ2U6IFwic2Rmc2Rmc2RmXCJcbiAgLy8gICBzdWJqZWN0OiBcInNkZnNkZlwiXG4gIC8vICAgc3VibWl0OiBcIlwiXG4gIC8vICAgdmlkZW9fbWVzc2FnZTogXCIxMWViLTYxZDctZGQ1ODMzMjAtYWU2MS0yYjgyYmU2YzZlM2VcIlxuICAvLyB9XG4gIGdldEZvcm1WYWx1ZXM6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgY29sbGVjdGlvblxuICAgIGNvbnN0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ2FwcCcpLnJlcXVlc3QoJ2dldDpmb3JtJywgdGhpcy5nZXRGb3JtSWQoKSlcblxuICAgIGlmIChmb3JtTW9kZWwpIHtcbiAgICAgIGNvbGxlY3Rpb24gPSBmb3JtTW9kZWwuZ2V0KCdmaWVsZHMnKVxuICAgICAgLy8gZmFsbGJhY2sgZm9yIG9sZGVyIHZlcnNpb25zXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkTW9kZWwuY29sbGVjdGlvbi5vcHRpb25zLmZvcm1Nb2RlbC5nZXQoJ2ZpZWxkcycpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldCgnZmllbGRzJykubW9kZWxzXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoJ2tleScpXSA9IGZpZWxkLmdldCgndmFsdWUnKVxuICAgICAgcmV0dXJuIG1lbW9cbiAgICB9LCB7fSlcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCwgY2IpIHtcbiAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5nZXRGb3JtVmFsdWVzKClcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKCdlbWFpbF9mcm9tJywgZm9ybVZhbHVlcylcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoJ2VtYWlsX3RvJywgZm9ybVZhbHVlcylcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZSgnZW1haWxfc3ViamVjdCcsIGZvcm1WYWx1ZXMpXG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoJ2VtYWlsX2JvZHknLCBmb3JtVmFsdWVzKVxuXG4gICAgY2IobnVsbCwgdmlkZW9tYWlsKVxuICB9LFxuXG4gIG9uQmVmb3JlRGVzdHJveTogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnVubG9hZCgpXG4gICAgZGVsZXRlIHRoaXMudmlkZW9tYWlsQ2xpZW50XG4gIH1cbn0pXG5cbmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlcigpXG59KVxuIl0sIm5hbWVzIjpbImxldCIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG8iLCJldmVudE5hbWUiLCJjb25zb2xlIiwibG9nIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsIm5mUmFkaW8iLCJwYXJhbXMiLCJjdXJyZW50TW9kZWxzIiwiY3VycmVudEVsZW1lbnQiLCJhdHRyaWJ1dGVzIiwiZm9ybUNvbnRlbnREYXRhIiwibW9kZWxzIiwiY3VycmVudENpZCIsImNpZCIsImZpbmQiLCJtb2RlbCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJjb3VudGRvd24iLCJhdWRpbyIsImVuYWJsZWQiLCJpbWFnZSIsInF1YWxpdHkiLCJzZWxlY3RvcnMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJvbiIsImV2ZW50cyIsIlBSRVZJRVciLCJvblByZXZpZXciLCJTVUJNSVRURUQiLCJvblN1Ym1pdHRlZCIsIkdPSU5HX0JBQ0siLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwidmlkZW9tYWlsIiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImNiIiwiZnJvbSIsInRvIiwic3ViamVjdCIsImJvZHkiLCJvbkJlZm9yZURlc3Ryb3kiLCJqUXVlcnkiLCJkb2N1bWVudCIsInJlYWR5Il0sIm1hcHBpbmdzIjoiQUFDQUEsSUFBSUMsTUFBUSxDQUFBLEVBS1osTUFBTUMseUJBQTJCQyxXQUFXQyxPQUFPQyxPQUFPLENBQ3hEQyxnQkFBaUIsS0FFakJDLFdBQVksS0FFWkMsUUFBU0MsU0FBU0MsTUFBTUYsUUFBUSxXQUFXLEVBRTNDRyxXQUFZLFdBQ1ZGLFNBQVNDLE1BQU1ULE1BQVFBLE1BR3ZCVyxLQUFLQyxTQUFTRCxLQUFLSixRQUFTLE1BQU8sU0FBVU0sR0FDM0NiLE9BQVNjLFFBQVFDLElBQUkscUNBQXNDRixDQUFTLEVBRS9ERixLQUFLTixrQkFLUk0sS0FBS0ssYUFBYUwsS0FBS0osUUFBUyxhQUFjSSxLQUFLTSxzQkFBc0IsRUFJekVOLEtBQUtDLFNBQVNNLFFBQVFYLFFBQVEsTUFBTSxFQUFHLGNBQWUsU0FBVVksR0FDOURuQixPQUFTYyxRQUFRQyxJQUFJLGdDQUFpQyxhQUFhLEVBRTdESyxFQUNKRCxFQUFPRSxnQkFBZ0JDLFlBQVlDLGlCQUFpQkMsUUFBVSxHQUVoRSxNQUFNQyxFQUFhZCxLQUFLTCxXQUFXb0IsSUFFZE4sRUFBY08sS0FBSyxTQUFVQyxHQUNoRCxPQUFPQSxFQUFNRixNQUFRRCxDQUN2QixDQUFDLEVBR0NkLEtBQUtrQixvQkFBb0IsRUFFekJsQixLQUFLTixnQkFBZ0J5QixPQUFPLENBRWhDLENBQUMsRUFFTCxDQUFDLENBQ0gsRUFFQUMsVUFBVyxXQUNULE9BQU9wQixLQUFLTCxXQUFXMEIsSUFBSSxRQUFRLENBQ3JDLEVBRUFmLHVCQUF3QixTQUFVWCxHQUczQkssS0FBS04sa0JBQ1JNLEtBQUtMLFdBQWFBLEVBRWxCSyxLQUFLa0Isb0JBQW9CLEVBSXpCbEIsS0FBS0osUUFB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
     1let DEBUG=!1,VideomailFieldController=Marionette.Object.extend({videomailClient:null,fieldModel:null,channel:Backbone.Radio.channel("videomail"),initialize:function(){Backbone.Radio.DEBUG=DEBUG,this.listenTo(this.channel,"all",function(e){DEBUG&&console.log("Videomail channel event triggered:",e),this.videomailClient||(this.listenToOnce(this.channel,"init:model",this.registerVideomailField),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.videomailClient||(this.fieldModel=e,this.loadVideomailClient(),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({siteName:this.fieldModel.get("site_name"),video:{limitSeconds:this.fieldModel.get("limit_seconds")||90,width:this.fieldModel.get("width")||320,countdown:this.fieldModel.get("countdown")||!1},audio:{enabled:this.fieldModel.get("audio_enabled")},image:{quality:e/100},selectors:{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}),this.videomailClient.on(this.videomailClient.events.PREVIEW,this.onPreview.bind(this)),this.videomailClient.on(this.videomailClient.events.SUBMITTED,this.onSubmitted.bind(this)),this.videomailClient.on(this.videomailClient.events.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),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());return 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},{})},adjustFormDataBeforePostingToVideomailServer:function(e,i){var t=this.getFormValues();e.from=this.getMergeTagValue("email_from",t),e.to=this.getMergeTagValue("email_to",t),e.subject=this.getMergeTagValue("email_subject",t),e.body=this.getMergeTagValue("email_body",t),i(null,e)},onBeforeDestroy:function(){this.videomailClient.unload(),delete this.videomailClient}});jQuery(document).ready(function(){return new VideomailFieldController});
     2//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gbWFudWFsIHN3aXRjaCB0byBoYXZlIG1vcmUgc3R1ZmYgcHJpbnRlZCB0byBjb25zb2xlXG5sZXQgREVCVUcgPSBmYWxzZVxuXG4vLyBnb29kIGRvY3VtZW50YXRpb24gb24gYmFja2JvbmUgZXZlbnQgaGFuZGxpbmdcbi8vIGh0dHA6Ly9iYWNrYm9uZWpzLm9yZy8jRXZlbnRzXG5cbmNvbnN0IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlciA9IE1hcmlvbmV0dGUuT2JqZWN0LmV4dGVuZCh7XG4gIHZpZGVvbWFpbENsaWVudDogbnVsbCxcblxuICBmaWVsZE1vZGVsOiBudWxsLFxuXG4gIGNoYW5uZWw6IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ3ZpZGVvbWFpbCcpLFxuXG4gIGluaXRpYWxpemU6IGZ1bmN0aW9uICgpIHtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IERFQlVHXG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCAnYWxsJywgZnVuY3Rpb24gKGV2ZW50TmFtZSkge1xuICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coJ1ZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDonLCBldmVudE5hbWUpXG5cbiAgICAgIGlmICghdGhpcy52aWRlb21haWxDbGllbnQpIHtcbiAgICAgICAgLy8gb25seSBzdGFydCByZWdpc3RlcmluZyBhbmQgbGlzdGVuaW5nIGF0IHRoaXMgcG9pbnQuXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlIGNvbmRpdGlvbmFsIHBsdWdpbiBpcyByZXNldHRpbmcgZXZlbnQgaGFuZGxlcnMuXG4gICAgICAgIC8vIHdpdGhvdXQgdGhlIGFib3ZlLCB3ZSdkIGJlIHJlZ2lzdGVyaW5nIHRvbyBlYXJseSBhbmQgdGhlXG4gICAgICAgIC8vIGNvbmRpdGlvbmFsIHBsdWdpbiBvdmVycmlkZXMuXG4gICAgICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgJ2luaXQ6bW9kZWwnLCB0aGlzLnJlZ2lzdGVyVmlkZW9tYWlsRmllbGQpXG5cbiAgICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgICAvLyB2aWRlb21haWwgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXNlZC4gc28ganVzdCByZXN1bWUgaXQuXG4gICAgICAgIHRoaXMubGlzdGVuVG8obmZSYWRpby5jaGFubmVsKCduZk1QJyksICdjaGFuZ2U6cGFydCcsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgICBERUJVRyAmJiBjb25zb2xlLmxvZygnbmZNUCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDonLCAnY2hhbmdlOnBhcnQnKVxuXG4gICAgICAgICAgY29uc3QgY3VycmVudE1vZGVscyA9XG4gICAgICAgICAgICBwYXJhbXMuY3VycmVudEVsZW1lbnQ/LmF0dHJpYnV0ZXM/LmZvcm1Db250ZW50RGF0YT8ubW9kZWxzIHx8IFtdXG5cbiAgICAgICAgICBjb25zdCBjdXJyZW50Q2lkID0gdGhpcy5maWVsZE1vZGVsLmNpZFxuXG4gICAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuIG1vZGVsLmNpZCA9PT0gY3VycmVudENpZFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBpZiAoY3VycmVudE1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuXG4gIGdldEZvcm1JZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdmb3JtSUQnKVxuICB9LFxuXG4gIHJlZ2lzdGVyVmlkZW9tYWlsRmllbGQ6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgLy8gd29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3dwbmluamFzL25pbmphLWZvcm1zL2lzc3Vlcy8yNjc1XG4gICAgLy8gYWxzbyBwcmV2ZW50cyBmcm9tIGV2ZW50IGVtaXR0ZXIgbGVha3MgdW5kZXIgcmFjZSBjb25kaXRpb25zXG4gICAgaWYgKCF0aGlzLnZpZGVvbWFpbENsaWVudCkge1xuICAgICAgdGhpcy5maWVsZE1vZGVsID0gZmllbGRNb2RlbFxuXG4gICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKVxuXG4gICAgICAvLyBjdXN0b20gZmllbGQgdmFsaWRhdGlvbiwgc2luY2Ugd2UgYXJlbid0IHVzaW5nIGEgc3RhbmRhcmQgYHZhbHVlYFxuICAgICAgLy8gZm9yIHRoZSB2aWRlb21haWwgaW5wdXRcbiAgICAgIHRoaXMuY2hhbm5lbC5yZXBseSgndmFsaWRhdGU6cmVxdWlyZWQnLCB0aGlzLnZhbGlkYXRlUmVxdWlyZWQsIHRoaXMpXG5cbiAgICAgIHRoaXMuY2hhbm5lbC5yZXBseSgndmFsaWRhdGU6bW9kZWxEYXRhJywgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcylcblxuICAgICAgLy8gY29udHJvbCBzdWJtaXNzaW9uIHByb2dyZXNzLFxuICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbCgnZm9ybS0nICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICAgICdtYXliZTpzdWJtaXQnLFxuICAgICAgICB0aGlzLm1heWJlU3VibWl0LFxuICAgICAgICB0aGlzLFxuICAgICAgICBmaWVsZE1vZGVsXG4gICAgICApXG4gICAgfVxuICB9LFxuXG4gIGxvYWRWaWRlb21haWxDbGllbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoJ2ltYWdlX3F1YWxpdHknKSB8fCA0MFxuXG4gICAgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgIGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPSAxMDBcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMVxuICAgIH1cblxuICAgIGNvbnN0IHZlcmJvc2UgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KCd2ZXJib3NlJykgfHwgREVCVUdcblxuICAgIC8vIGxhdGUgb3ZlcnJpZGVzXG4gICAgREVCVUcgPSBERUJVRyB8fCB2ZXJib3NlXG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBCYWNrYm9uZS5SYWRpby5ERUJVRyB8fCB2ZXJib3NlXG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQoe1xuICAgICAgc2l0ZU5hbWU6IHRoaXMuZmllbGRNb2RlbC5nZXQoJ3NpdGVfbmFtZScpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdsaW1pdF9zZWNvbmRzJykgfHwgOTAsXG4gICAgICAgIHdpZHRoOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCd3aWR0aCcpIHx8IDMyMCxcbiAgICAgICAgY291bnRkb3duOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdjb3VudGRvd24nKSB8fCBmYWxzZVxuICAgICAgfSxcbiAgICAgIGF1ZGlvOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRoaXMuZmllbGRNb2RlbC5nZXQoJ2F1ZGlvX2VuYWJsZWQnKVxuICAgICAgfSxcbiAgICAgIGltYWdlOiB7XG4gICAgICAgIHF1YWxpdHk6IGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgLyAxMDAgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiAnLnN1Ym1pdC13cmFwIGlucHV0J1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAvLyB1Z2x5IG5hbWUgZWg/XG4gICAgICAgIGFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZzpcbiAgICAgICAgICB0aGlzLmFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyLmJpbmQodGhpcylcbiAgICAgIH0sXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldCgnbG9hZF91c2VyX21lZGlhX29uX3JlY29yZCcpLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIHZhbGlkYXRlIHRoZSBpbnB1dHNcbiAgICAgIGVuYWJsZUF1dG9WYWxpZGF0aW9uOiBmYWxzZSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byBkZWFsIHdpdGggZm9ybSBzdWJtaXNzaW9uc1xuICAgICAgZW5hYmxlQXV0b1N1Ym1pc3Npb246IGZhbHNlLFxuXG4gICAgICAvLyBsb2cgYWN0aW9ucy9ldmVudHMgdG8gY29uc29sZVxuICAgICAgdmVyYm9zZVxuICAgIH0pXG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcbiAgICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LmV2ZW50cy5QUkVWSUVXLFxuICAgICAgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKVxuICAgIClcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFxuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuZXZlbnRzLlNVQk1JVFRFRCxcbiAgICAgIHRoaXMub25TdWJtaXR0ZWQuYmluZCh0aGlzKVxuICAgIClcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFxuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuZXZlbnRzLkdPSU5HX0JBQ0ssXG4gICAgICB0aGlzLm9uR29pbmdCYWNrLmJpbmQodGhpcylcbiAgICApXG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zaG93KClcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoJ3ZpZGVvbWFpbC1rZXknLCBrZXkpXG4gICAgdGhpcy5maWVsZE1vZGVsLnNldCgndmFsdWUnLCBrZXkpXG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKCdmaWVsZHMnKVxuICAgICAgLy8gY2xlYXJzIGFueSBwcmV2aW91cyBlcnJvcnNcbiAgICAgIC5yZXF1ZXN0KCdyZW1vdmU6ZXJyb3InLCB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdpZCcpLCAncmVxdWlyZWQtZXJyb3InKVxuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAodmlkZW9tYWlsKSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ2FwcCcpLnJlcXVlc3QoJ2dldDpmb3JtJywgdGhpcy5nZXRGb3JtSWQoKSlcblxuICAgIGlmICghZm9ybU1vZGVsKSB7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICAgIGZvcm1Nb2RlbCA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsXG4gICAgfVxuXG4gICAgLy8gdG9kbyBpc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbCgnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSkucmVxdWVzdChcbiAgICAgICdhZGQ6ZXh0cmEnLFxuICAgICAgJ3ZpZGVvbWFpbCcsXG4gICAgICB2aWRlb21haWxcbiAgICApXG5cbiAgICAvLyByZXN0YXJ0IHN1Ym1pc3Npb24gYWdhaW4sIHRoaXMgdGltZSB0byB0aGUgcmVhbCB3cCBzaXRlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbCgnZm9ybS0nICsgdGhpcy5nZXRGb3JtSWQoKSkucmVxdWVzdCgnc3VibWl0JywgZm9ybU1vZGVsKVxuICB9LFxuXG4gIG9uR29pbmdCYWNrOiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldCgndmlkZW9tYWlsLWtleScsIG51bGwpXG4gICAgdGhpcy5pbnZhbGlkYXRlKClcbiAgfSxcblxuICB2YWxpZGF0ZVJlcXVpcmVkOiBmdW5jdGlvbiAoZWwsIGZpZWxkTW9kZWwpIHtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoZmllbGRNb2RlbClcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkXG4gIH0sXG5cbiAgaW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIC8vIG92ZXJyaWRlIGRlZmF1bHQgYmVoYXZpb3VyIHNvIHRoYXQgd2UgY2FuIHNldCBvdXIgb3duIGVycm9yIHRleHQgaGVyZVxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ2ZpZWxkcycpLnJlcXVlc3QoXG4gICAgICAnYWRkOmVycm9yJyxcbiAgICAgIHRoaXMuZmllbGRNb2RlbC5nZXQoJ2lkJyksXG4gICAgICAncmVxdWlyZWQtZXJyb3InLFxuICAgICAgJ1JlY29yZCBhbmQgY2xpY2sgb24gc3RvcCB0byBzZWUgYSBwcmV2aWV3IHZpZGVvLidcbiAgICApXG4gIH0sXG5cbiAgdmFsaWRhdGVWaWRlb21haWw6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgZmllbGRNb2RlbCA9IGZpZWxkTW9kZWwgfHwgdGhpcy5maWVsZE1vZGVsXG4gICAgcmV0dXJuIGZpZWxkTW9kZWwuZ2V0KCd2aWRlb21haWwta2V5JykgfHwgZmFsc2VcbiAgfSxcblxuICBoYXNFcnJvcnM6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICByZXR1cm4gZm9ybU1vZGVsLmdldCgnZXJyb3JzJykubGVuZ3RoID4gMFxuICB9LFxuXG4gIG1heWJlU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgbGV0IG1heWJlID0gdHJ1ZVxuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYSgndmlkZW9tYWlsJylcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKVxuICAgIGNvbnN0IGVycm9yID0gdGhpcy5oYXNFcnJvcnMoZm9ybU1vZGVsKVxuXG4gICAgLy8gaG9sZCBvbiB3aXRoIGZpbmFsIGZvcm0gc3VibWlzc2lvbiB3aGVuIG9uZSB3YXMgcmVjb3JkZWRcbiAgICAvLyBidXQgaGFzbid0IGJlZW4gc3VibWl0dGVkIHRvIHRoZSB2aWRlb21haWwgc2VydmVyIHlldFxuICAgIGlmICghdmlkZW9tYWlsU3VibWl0dGVkICYmICFlcnJvciAmJiB2aWRlb21haWxSZWNvcmRlZCkge1xuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuc3VibWl0KClcbiAgICAgIG1heWJlID0gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gbWF5YmVcbiAgfSxcblxuICBnZXRNZXJnZVRhZ1ZhbHVlOiBmdW5jdGlvbiAoZmllbGRLZXksIGZvcm1WYWx1ZXMpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KGZpZWxkS2V5KVxuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gJ3t3cDphZG1pbl9lbWFpbH0nKSB7XG4gICAgICAgIHZhbHVlID0gd2luZG93Lm5mVmlkZW9tYWlsLmFkbWluX2VtYWlsXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpXG4gICAgICAgIGNvbnN0IHJhd0ZpZWxkS2V5ID0gcmF3RmllbGRLZXlNYXRjaGVzICYmIHJhd0ZpZWxkS2V5TWF0Y2hlc1sxXVxuXG4gICAgICAgIGlmIChyYXdGaWVsZEtleSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAvLyB5ZXMgaXQgd2FzIGEgbWVyZ2UgdGFnLCBzbyB1c2UgaXRcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL3tmaWVsZDooLiopfS9pLCBmb3JtVmFsdWVzW3Jhd0ZpZWxkS2V5XSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfSxcblxuICAvLyByZXR1cm5zIGEgbWFwIGxpa2UgdGhpczpcbiAgLy8ge1xuICAvLyAgIGZyb21fZW1haWw6IFwibWljS0BkZWFmb256LmVoXCJcbiAgLy8gICBmcm9tX25hbWU6IFwiTUhcIlxuICAvLyAgIG1lc3NhZ2U6IFwic2Rmc2Rmc2RmXCJcbiAgLy8gICBzdWJqZWN0OiBcInNkZnNkZlwiXG4gIC8vICAgc3VibWl0OiBcIlwiXG4gIC8vICAgdmlkZW9fbWVzc2FnZTogXCIxMWViLTYxZDctZGQ1ODMzMjAtYWU2MS0yYjgyYmU2YzZlM2VcIlxuICAvLyB9XG4gIGdldEZvcm1WYWx1ZXM6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgY29sbGVjdGlvblxuICAgIGNvbnN0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ2FwcCcpLnJlcXVlc3QoJ2dldDpmb3JtJywgdGhpcy5nZXRGb3JtSWQoKSlcblxuICAgIGlmIChmb3JtTW9kZWwpIHtcbiAgICAgIGNvbGxlY3Rpb24gPSBmb3JtTW9kZWwuZ2V0KCdmaWVsZHMnKVxuICAgICAgLy8gZmFsbGJhY2sgZm9yIG9sZGVyIHZlcnNpb25zXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkTW9kZWwuY29sbGVjdGlvbi5vcHRpb25zLmZvcm1Nb2RlbC5nZXQoJ2ZpZWxkcycpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldCgnZmllbGRzJykubW9kZWxzXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoJ2tleScpXSA9IGZpZWxkLmdldCgndmFsdWUnKVxuICAgICAgcmV0dXJuIG1lbW9cbiAgICB9LCB7fSlcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCwgY2IpIHtcbiAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5nZXRGb3JtVmFsdWVzKClcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKCdlbWFpbF9mcm9tJywgZm9ybVZhbHVlcylcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoJ2VtYWlsX3RvJywgZm9ybVZhbHVlcylcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZSgnZW1haWxfc3ViamVjdCcsIGZvcm1WYWx1ZXMpXG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoJ2VtYWlsX2JvZHknLCBmb3JtVmFsdWVzKVxuXG4gICAgY2IobnVsbCwgdmlkZW9tYWlsKVxuICB9LFxuXG4gIG9uQmVmb3JlRGVzdHJveTogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnVubG9hZCgpXG4gICAgZGVsZXRlIHRoaXMudmlkZW9tYWlsQ2xpZW50XG4gIH1cbn0pXG5cbmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlcigpXG59KVxuIl0sIm5hbWVzIjpbImxldCIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG8iLCJldmVudE5hbWUiLCJjb25zb2xlIiwibG9nIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsIm5mUmFkaW8iLCJwYXJhbXMiLCJjdXJyZW50TW9kZWxzIiwiY3VycmVudEVsZW1lbnQiLCJhdHRyaWJ1dGVzIiwiZm9ybUNvbnRlbnREYXRhIiwibW9kZWxzIiwiY3VycmVudENpZCIsImNpZCIsImZpbmQiLCJtb2RlbCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJjb3VudGRvd24iLCJhdWRpbyIsImVuYWJsZWQiLCJpbWFnZSIsInF1YWxpdHkiLCJzZWxlY3RvcnMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJvbiIsImV2ZW50cyIsIlBSRVZJRVciLCJvblByZXZpZXciLCJTVUJNSVRURUQiLCJvblN1Ym1pdHRlZCIsIkdPSU5HX0JBQ0siLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwidmlkZW9tYWlsIiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImNiIiwiZnJvbSIsInRvIiwic3ViamVjdCIsImJvZHkiLCJvbkJlZm9yZURlc3Ryb3kiLCJqUXVlcnkiLCJkb2N1bWVudCIsInJlYWR5Il0sIm1hcHBpbmdzIjoiQUFDQUEsSUFBSUMsTUFBUSxDQUFBLEVBS05DLHlCQUEyQkMsV0FBV0MsT0FBT0MsT0FBTyxDQUN4REMsZ0JBQWlCLEtBRWpCQyxXQUFZLEtBRVpDLFFBQVNDLFNBQVNDLE1BQU1GLFFBQVEsV0FBVyxFQUUzQ0csV0FBWSxXQUNWRixTQUFTQyxNQUFNVCxNQUFRQSxNQUd2QlcsS0FBS0MsU0FBU0QsS0FBS0osUUFBUyxNQUFPLFNBQVVNLEdBQzNDYixPQUFTYyxRQUFRQyxJQUFJLHFDQUFzQ0YsQ0FBUyxFQUUvREYsS0FBS04sa0JBS1JNLEtBQUtLLGFBQWFMLEtBQUtKLFFBQVMsYUFBY0ksS0FBS00sc0JBQXNCLEVBSXpFTixLQUFLQyxTQUFTTSxRQUFRWCxRQUFRLE1BQU0sRUFBRyxjQUFlLFNBQVVZLEdBQzlEbkIsT0FBU2MsUUFBUUMsSUFBSSxnQ0FBaUMsYUFBYSxFQUU3REssRUFDSkQsRUFBT0UsZ0JBQWdCQyxZQUFZQyxpQkFBaUJDLFFBQVUsR0FFaEUsSUFBTUMsRUFBYWQsS0FBS0wsV0FBV29CLElBRWROLEVBQWNPLEtBQUssU0FBVUMsR0FDaEQsT0FBT0EsRUFBTUYsTUFBUUQsQ0FDdkIsQ0FBQyxFQUdDZCxLQUFLa0Isb0JBQW9CLEVBRXpCbEIsS0FBS04sZ0JBQWdCeUIsT0FBTyxDQUVoQyxDQUFDLEVBRUwsQ0FBQyxDQUNILEVBRUFDLFVBQVcsV0FDVCxPQUFPcEIsS0FBS0wsV0FBVzBCLElBQUksUUFBUSxDQUNyQyxFQUVBZix1QkFBd0IsU0FBVVgsR0FHM0JLLEtBQUtOLGtCQUNSTSxLQUFLTCxXQUFhQSxFQUVsQkssS0FBS2tCLG9CQUFvQixFQUl6QmxCLEtBQUtKLFFBQVEwQixN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
  • videomail-for-ninja-forms/tags/5.1.1/target/php/videomail.php

    r3040427 r3102043  
    33
    44  const NAME = 'Videomail';
    5   const VERSION = '5.1.0';
     5  const VERSION = '5.1.1';
    66  const AUTHOR = 'Michael Heuberger + Kyle B. Johnson';
    77  const SLUG = 'videomail';
  • videomail-for-ninja-forms/tags/5.1.1/videomail-for-ninja-forms.php

    r3040427 r3102043  
    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: 5.1.0
     6Version: 5.1.1
    77Author: Michael Heuberger + Kyle B. Johnson
    88Author URI: https://videomail.io
     
    1010Text Domain: videomail-for-ninja-forms
    1111
    12 Copyright 2023 Michael Heuberger + Kyle B. Johnson
     12Copyright 2024 Michael Heuberger + Kyle B. Johnson
    1313*/
    1414
  • videomail-for-ninja-forms/trunk/readme.txt

    r3040427 r3102043  
    11=== Videomail for Ninja Forms ===
    22Contributors: michael.heuberger, kbjohnson90
    3 Tags: form, video, email, audio, webcam, recorder, sign language, deaf
     3Tags: video, email, recorder, sign language
    44
    55Requires at least: 6.0
    6 Tested up to: 6.2.2
    7 Stable tag: 5.1.0
     6Tested up to: 6.5.4
     7Stable tag: 5.1.1
    88Requires PHP: 7.4.0
    99Donate link: https://videomail.io/faq
     
    7070
    7171== Changelog ==
     72= 5.1.1 (13 Jun 2024) =
     73*Change:*
     74* Upgrade Node.js and npm
     75* Tested on WordPress v6.5.4
     76
     77*Bugs:*
     78* Correct invalid tags
     79
    7280= 5.1.0 (24 Feb 2024) =
    7381*Improvement:*
  • videomail-for-ninja-forms/trunk/target/js/main.min.js

    r3040427 r3102043  
    1 let DEBUG=!1;const VideomailFieldController=Marionette.Object.extend({videomailClient:null,fieldModel:null,channel:Backbone.Radio.channel("videomail"),initialize:function(){Backbone.Radio.DEBUG=DEBUG,this.listenTo(this.channel,"all",function(e){DEBUG&&console.log("Videomail channel event triggered:",e),this.videomailClient||(this.listenToOnce(this.channel,"init:model",this.registerVideomailField),this.listenTo(nfRadio.channel("nfMP"),"change:part",function(e){DEBUG&&console.log("nfMP channel event triggered:","change:part");e=e.currentElement?.attributes?.formContentData?.models||[];const 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.videomailClient||(this.fieldModel=e,this.loadVideomailClient(),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({siteName:this.fieldModel.get("site_name"),video:{limitSeconds:this.fieldModel.get("limit_seconds")||90,width:this.fieldModel.get("width")||320,countdown:this.fieldModel.get("countdown")||!1},audio:{enabled:this.fieldModel.get("audio_enabled")},image:{quality:e/100},selectors:{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}),this.videomailClient.on(this.videomailClient.events.PREVIEW,this.onPreview.bind(this)),this.videomailClient.on(this.videomailClient.events.SUBMITTED,this.onSubmitted.bind(this)),this.videomailClient.on(this.videomailClient.events.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),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());return 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},{})},adjustFormDataBeforePostingToVideomailServer:function(e,i){var t=this.getFormValues();e.from=this.getMergeTagValue("email_from",t),e.to=this.getMergeTagValue("email_to",t),e.subject=this.getMergeTagValue("email_subject",t),e.body=this.getMergeTagValue("email_body",t),i(null,e)},onBeforeDestroy:function(){this.videomailClient.unload(),delete this.videomailClient}});jQuery(document).ready(function(){return new VideomailFieldController});
    2 //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gbWFudWFsIHN3aXRjaCB0byBoYXZlIG1vcmUgc3R1ZmYgcHJpbnRlZCB0byBjb25zb2xlXG5sZXQgREVCVUcgPSBmYWxzZVxuXG4vLyBnb29kIGRvY3VtZW50YXRpb24gb24gYmFja2JvbmUgZXZlbnQgaGFuZGxpbmdcbi8vIGh0dHA6Ly9iYWNrYm9uZWpzLm9yZy8jRXZlbnRzXG5cbmNvbnN0IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlciA9IE1hcmlvbmV0dGUuT2JqZWN0LmV4dGVuZCh7XG4gIHZpZGVvbWFpbENsaWVudDogbnVsbCxcblxuICBmaWVsZE1vZGVsOiBudWxsLFxuXG4gIGNoYW5uZWw6IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ3ZpZGVvbWFpbCcpLFxuXG4gIGluaXRpYWxpemU6IGZ1bmN0aW9uICgpIHtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IERFQlVHXG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCAnYWxsJywgZnVuY3Rpb24gKGV2ZW50TmFtZSkge1xuICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coJ1ZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDonLCBldmVudE5hbWUpXG5cbiAgICAgIGlmICghdGhpcy52aWRlb21haWxDbGllbnQpIHtcbiAgICAgICAgLy8gb25seSBzdGFydCByZWdpc3RlcmluZyBhbmQgbGlzdGVuaW5nIGF0IHRoaXMgcG9pbnQuXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlIGNvbmRpdGlvbmFsIHBsdWdpbiBpcyByZXNldHRpbmcgZXZlbnQgaGFuZGxlcnMuXG4gICAgICAgIC8vIHdpdGhvdXQgdGhlIGFib3ZlLCB3ZSdkIGJlIHJlZ2lzdGVyaW5nIHRvbyBlYXJseSBhbmQgdGhlXG4gICAgICAgIC8vIGNvbmRpdGlvbmFsIHBsdWdpbiBvdmVycmlkZXMuXG4gICAgICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgJ2luaXQ6bW9kZWwnLCB0aGlzLnJlZ2lzdGVyVmlkZW9tYWlsRmllbGQpXG5cbiAgICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgICAvLyB2aWRlb21haWwgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXNlZC4gc28ganVzdCByZXN1bWUgaXQuXG4gICAgICAgIHRoaXMubGlzdGVuVG8obmZSYWRpby5jaGFubmVsKCduZk1QJyksICdjaGFuZ2U6cGFydCcsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgICBERUJVRyAmJiBjb25zb2xlLmxvZygnbmZNUCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDonLCAnY2hhbmdlOnBhcnQnKVxuXG4gICAgICAgICAgY29uc3QgY3VycmVudE1vZGVscyA9XG4gICAgICAgICAgICBwYXJhbXMuY3VycmVudEVsZW1lbnQ/LmF0dHJpYnV0ZXM/LmZvcm1Db250ZW50RGF0YT8ubW9kZWxzIHx8IFtdXG5cbiAgICAgICAgICBjb25zdCBjdXJyZW50Q2lkID0gdGhpcy5maWVsZE1vZGVsLmNpZFxuXG4gICAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuIG1vZGVsLmNpZCA9PT0gY3VycmVudENpZFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBpZiAoY3VycmVudE1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuXG4gIGdldEZvcm1JZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdmb3JtSUQnKVxuICB9LFxuXG4gIHJlZ2lzdGVyVmlkZW9tYWlsRmllbGQ6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgLy8gd29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3dwbmluamFzL25pbmphLWZvcm1zL2lzc3Vlcy8yNjc1XG4gICAgLy8gYWxzbyBwcmV2ZW50cyBmcm9tIGV2ZW50IGVtaXR0ZXIgbGVha3MgdW5kZXIgcmFjZSBjb25kaXRpb25zXG4gICAgaWYgKCF0aGlzLnZpZGVvbWFpbENsaWVudCkge1xuICAgICAgdGhpcy5maWVsZE1vZGVsID0gZmllbGRNb2RlbFxuXG4gICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKVxuXG4gICAgICAvLyBjdXN0b20gZmllbGQgdmFsaWRhdGlvbiwgc2luY2Ugd2UgYXJlbid0IHVzaW5nIGEgc3RhbmRhcmQgYHZhbHVlYFxuICAgICAgLy8gZm9yIHRoZSB2aWRlb21haWwgaW5wdXRcbiAgICAgIHRoaXMuY2hhbm5lbC5yZXBseSgndmFsaWRhdGU6cmVxdWlyZWQnLCB0aGlzLnZhbGlkYXRlUmVxdWlyZWQsIHRoaXMpXG5cbiAgICAgIHRoaXMuY2hhbm5lbC5yZXBseSgndmFsaWRhdGU6bW9kZWxEYXRhJywgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcylcblxuICAgICAgLy8gY29udHJvbCBzdWJtaXNzaW9uIHByb2dyZXNzLFxuICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbCgnZm9ybS0nICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICAgICdtYXliZTpzdWJtaXQnLFxuICAgICAgICB0aGlzLm1heWJlU3VibWl0LFxuICAgICAgICB0aGlzLFxuICAgICAgICBmaWVsZE1vZGVsXG4gICAgICApXG4gICAgfVxuICB9LFxuXG4gIGxvYWRWaWRlb21haWxDbGllbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoJ2ltYWdlX3F1YWxpdHknKSB8fCA0MFxuXG4gICAgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgIGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPSAxMDBcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMVxuICAgIH1cblxuICAgIGNvbnN0IHZlcmJvc2UgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KCd2ZXJib3NlJykgfHwgREVCVUdcblxuICAgIC8vIGxhdGUgb3ZlcnJpZGVzXG4gICAgREVCVUcgPSBERUJVRyB8fCB2ZXJib3NlXG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBCYWNrYm9uZS5SYWRpby5ERUJVRyB8fCB2ZXJib3NlXG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQoe1xuICAgICAgc2l0ZU5hbWU6IHRoaXMuZmllbGRNb2RlbC5nZXQoJ3NpdGVfbmFtZScpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdsaW1pdF9zZWNvbmRzJykgfHwgOTAsXG4gICAgICAgIHdpZHRoOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCd3aWR0aCcpIHx8IDMyMCxcbiAgICAgICAgY291bnRkb3duOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdjb3VudGRvd24nKSB8fCBmYWxzZVxuICAgICAgfSxcbiAgICAgIGF1ZGlvOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRoaXMuZmllbGRNb2RlbC5nZXQoJ2F1ZGlvX2VuYWJsZWQnKVxuICAgICAgfSxcbiAgICAgIGltYWdlOiB7XG4gICAgICAgIHF1YWxpdHk6IGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgLyAxMDAgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiAnLnN1Ym1pdC13cmFwIGlucHV0J1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAvLyB1Z2x5IG5hbWUgZWg/XG4gICAgICAgIGFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZzpcbiAgICAgICAgICB0aGlzLmFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyLmJpbmQodGhpcylcbiAgICAgIH0sXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldCgnbG9hZF91c2VyX21lZGlhX29uX3JlY29yZCcpLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIHZhbGlkYXRlIHRoZSBpbnB1dHNcbiAgICAgIGVuYWJsZUF1dG9WYWxpZGF0aW9uOiBmYWxzZSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byBkZWFsIHdpdGggZm9ybSBzdWJtaXNzaW9uc1xuICAgICAgZW5hYmxlQXV0b1N1Ym1pc3Npb246IGZhbHNlLFxuXG4gICAgICAvLyBsb2cgYWN0aW9ucy9ldmVudHMgdG8gY29uc29sZVxuICAgICAgdmVyYm9zZVxuICAgIH0pXG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcbiAgICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LmV2ZW50cy5QUkVWSUVXLFxuICAgICAgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKVxuICAgIClcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFxuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuZXZlbnRzLlNVQk1JVFRFRCxcbiAgICAgIHRoaXMub25TdWJtaXR0ZWQuYmluZCh0aGlzKVxuICAgIClcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFxuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuZXZlbnRzLkdPSU5HX0JBQ0ssXG4gICAgICB0aGlzLm9uR29pbmdCYWNrLmJpbmQodGhpcylcbiAgICApXG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zaG93KClcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoJ3ZpZGVvbWFpbC1rZXknLCBrZXkpXG4gICAgdGhpcy5maWVsZE1vZGVsLnNldCgndmFsdWUnLCBrZXkpXG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKCdmaWVsZHMnKVxuICAgICAgLy8gY2xlYXJzIGFueSBwcmV2aW91cyBlcnJvcnNcbiAgICAgIC5yZXF1ZXN0KCdyZW1vdmU6ZXJyb3InLCB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdpZCcpLCAncmVxdWlyZWQtZXJyb3InKVxuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAodmlkZW9tYWlsKSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ2FwcCcpLnJlcXVlc3QoJ2dldDpmb3JtJywgdGhpcy5nZXRGb3JtSWQoKSlcblxuICAgIGlmICghZm9ybU1vZGVsKSB7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICAgIGZvcm1Nb2RlbCA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsXG4gICAgfVxuXG4gICAgLy8gdG9kbyBpc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbCgnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSkucmVxdWVzdChcbiAgICAgICdhZGQ6ZXh0cmEnLFxuICAgICAgJ3ZpZGVvbWFpbCcsXG4gICAgICB2aWRlb21haWxcbiAgICApXG5cbiAgICAvLyByZXN0YXJ0IHN1Ym1pc3Npb24gYWdhaW4sIHRoaXMgdGltZSB0byB0aGUgcmVhbCB3cCBzaXRlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbCgnZm9ybS0nICsgdGhpcy5nZXRGb3JtSWQoKSkucmVxdWVzdCgnc3VibWl0JywgZm9ybU1vZGVsKVxuICB9LFxuXG4gIG9uR29pbmdCYWNrOiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldCgndmlkZW9tYWlsLWtleScsIG51bGwpXG4gICAgdGhpcy5pbnZhbGlkYXRlKClcbiAgfSxcblxuICB2YWxpZGF0ZVJlcXVpcmVkOiBmdW5jdGlvbiAoZWwsIGZpZWxkTW9kZWwpIHtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoZmllbGRNb2RlbClcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkXG4gIH0sXG5cbiAgaW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIC8vIG92ZXJyaWRlIGRlZmF1bHQgYmVoYXZpb3VyIHNvIHRoYXQgd2UgY2FuIHNldCBvdXIgb3duIGVycm9yIHRleHQgaGVyZVxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ2ZpZWxkcycpLnJlcXVlc3QoXG4gICAgICAnYWRkOmVycm9yJyxcbiAgICAgIHRoaXMuZmllbGRNb2RlbC5nZXQoJ2lkJyksXG4gICAgICAncmVxdWlyZWQtZXJyb3InLFxuICAgICAgJ1JlY29yZCBhbmQgY2xpY2sgb24gc3RvcCB0byBzZWUgYSBwcmV2aWV3IHZpZGVvLidcbiAgICApXG4gIH0sXG5cbiAgdmFsaWRhdGVWaWRlb21haWw6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgZmllbGRNb2RlbCA9IGZpZWxkTW9kZWwgfHwgdGhpcy5maWVsZE1vZGVsXG4gICAgcmV0dXJuIGZpZWxkTW9kZWwuZ2V0KCd2aWRlb21haWwta2V5JykgfHwgZmFsc2VcbiAgfSxcblxuICBoYXNFcnJvcnM6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICByZXR1cm4gZm9ybU1vZGVsLmdldCgnZXJyb3JzJykubGVuZ3RoID4gMFxuICB9LFxuXG4gIG1heWJlU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgbGV0IG1heWJlID0gdHJ1ZVxuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYSgndmlkZW9tYWlsJylcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKVxuICAgIGNvbnN0IGVycm9yID0gdGhpcy5oYXNFcnJvcnMoZm9ybU1vZGVsKVxuXG4gICAgLy8gaG9sZCBvbiB3aXRoIGZpbmFsIGZvcm0gc3VibWlzc2lvbiB3aGVuIG9uZSB3YXMgcmVjb3JkZWRcbiAgICAvLyBidXQgaGFzbid0IGJlZW4gc3VibWl0dGVkIHRvIHRoZSB2aWRlb21haWwgc2VydmVyIHlldFxuICAgIGlmICghdmlkZW9tYWlsU3VibWl0dGVkICYmICFlcnJvciAmJiB2aWRlb21haWxSZWNvcmRlZCkge1xuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuc3VibWl0KClcbiAgICAgIG1heWJlID0gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gbWF5YmVcbiAgfSxcblxuICBnZXRNZXJnZVRhZ1ZhbHVlOiBmdW5jdGlvbiAoZmllbGRLZXksIGZvcm1WYWx1ZXMpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KGZpZWxkS2V5KVxuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gJ3t3cDphZG1pbl9lbWFpbH0nKSB7XG4gICAgICAgIHZhbHVlID0gd2luZG93Lm5mVmlkZW9tYWlsLmFkbWluX2VtYWlsXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpXG4gICAgICAgIGNvbnN0IHJhd0ZpZWxkS2V5ID0gcmF3RmllbGRLZXlNYXRjaGVzICYmIHJhd0ZpZWxkS2V5TWF0Y2hlc1sxXVxuXG4gICAgICAgIGlmIChyYXdGaWVsZEtleSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAvLyB5ZXMgaXQgd2FzIGEgbWVyZ2UgdGFnLCBzbyB1c2UgaXRcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL3tmaWVsZDooLiopfS9pLCBmb3JtVmFsdWVzW3Jhd0ZpZWxkS2V5XSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfSxcblxuICAvLyByZXR1cm5zIGEgbWFwIGxpa2UgdGhpczpcbiAgLy8ge1xuICAvLyAgIGZyb21fZW1haWw6IFwibWljS0BkZWFmb256LmVoXCJcbiAgLy8gICBmcm9tX25hbWU6IFwiTUhcIlxuICAvLyAgIG1lc3NhZ2U6IFwic2Rmc2Rmc2RmXCJcbiAgLy8gICBzdWJqZWN0OiBcInNkZnNkZlwiXG4gIC8vICAgc3VibWl0OiBcIlwiXG4gIC8vICAgdmlkZW9fbWVzc2FnZTogXCIxMWViLTYxZDctZGQ1ODMzMjAtYWU2MS0yYjgyYmU2YzZlM2VcIlxuICAvLyB9XG4gIGdldEZvcm1WYWx1ZXM6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgY29sbGVjdGlvblxuICAgIGNvbnN0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ2FwcCcpLnJlcXVlc3QoJ2dldDpmb3JtJywgdGhpcy5nZXRGb3JtSWQoKSlcblxuICAgIGlmIChmb3JtTW9kZWwpIHtcbiAgICAgIGNvbGxlY3Rpb24gPSBmb3JtTW9kZWwuZ2V0KCdmaWVsZHMnKVxuICAgICAgLy8gZmFsbGJhY2sgZm9yIG9sZGVyIHZlcnNpb25zXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkTW9kZWwuY29sbGVjdGlvbi5vcHRpb25zLmZvcm1Nb2RlbC5nZXQoJ2ZpZWxkcycpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldCgnZmllbGRzJykubW9kZWxzXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoJ2tleScpXSA9IGZpZWxkLmdldCgndmFsdWUnKVxuICAgICAgcmV0dXJuIG1lbW9cbiAgICB9LCB7fSlcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCwgY2IpIHtcbiAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5nZXRGb3JtVmFsdWVzKClcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKCdlbWFpbF9mcm9tJywgZm9ybVZhbHVlcylcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoJ2VtYWlsX3RvJywgZm9ybVZhbHVlcylcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZSgnZW1haWxfc3ViamVjdCcsIGZvcm1WYWx1ZXMpXG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoJ2VtYWlsX2JvZHknLCBmb3JtVmFsdWVzKVxuXG4gICAgY2IobnVsbCwgdmlkZW9tYWlsKVxuICB9LFxuXG4gIG9uQmVmb3JlRGVzdHJveTogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnVubG9hZCgpXG4gICAgZGVsZXRlIHRoaXMudmlkZW9tYWlsQ2xpZW50XG4gIH1cbn0pXG5cbmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlcigpXG59KVxuIl0sIm5hbWVzIjpbImxldCIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG8iLCJldmVudE5hbWUiLCJjb25zb2xlIiwibG9nIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsIm5mUmFkaW8iLCJwYXJhbXMiLCJjdXJyZW50TW9kZWxzIiwiY3VycmVudEVsZW1lbnQiLCJhdHRyaWJ1dGVzIiwiZm9ybUNvbnRlbnREYXRhIiwibW9kZWxzIiwiY3VycmVudENpZCIsImNpZCIsImZpbmQiLCJtb2RlbCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJjb3VudGRvd24iLCJhdWRpbyIsImVuYWJsZWQiLCJpbWFnZSIsInF1YWxpdHkiLCJzZWxlY3RvcnMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJvbiIsImV2ZW50cyIsIlBSRVZJRVciLCJvblByZXZpZXciLCJTVUJNSVRURUQiLCJvblN1Ym1pdHRlZCIsIkdPSU5HX0JBQ0siLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwidmlkZW9tYWlsIiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImNiIiwiZnJvbSIsInRvIiwic3ViamVjdCIsImJvZHkiLCJvbkJlZm9yZURlc3Ryb3kiLCJqUXVlcnkiLCJkb2N1bWVudCIsInJlYWR5Il0sIm1hcHBpbmdzIjoiQUFDQUEsSUFBSUMsTUFBUSxDQUFBLEVBS1osTUFBTUMseUJBQTJCQyxXQUFXQyxPQUFPQyxPQUFPLENBQ3hEQyxnQkFBaUIsS0FFakJDLFdBQVksS0FFWkMsUUFBU0MsU0FBU0MsTUFBTUYsUUFBUSxXQUFXLEVBRTNDRyxXQUFZLFdBQ1ZGLFNBQVNDLE1BQU1ULE1BQVFBLE1BR3ZCVyxLQUFLQyxTQUFTRCxLQUFLSixRQUFTLE1BQU8sU0FBVU0sR0FDM0NiLE9BQVNjLFFBQVFDLElBQUkscUNBQXNDRixDQUFTLEVBRS9ERixLQUFLTixrQkFLUk0sS0FBS0ssYUFBYUwsS0FBS0osUUFBUyxhQUFjSSxLQUFLTSxzQkFBc0IsRUFJekVOLEtBQUtDLFNBQVNNLFFBQVFYLFFBQVEsTUFBTSxFQUFHLGNBQWUsU0FBVVksR0FDOURuQixPQUFTYyxRQUFRQyxJQUFJLGdDQUFpQyxhQUFhLEVBRTdESyxFQUNKRCxFQUFPRSxnQkFBZ0JDLFlBQVlDLGlCQUFpQkMsUUFBVSxHQUVoRSxNQUFNQyxFQUFhZCxLQUFLTCxXQUFXb0IsSUFFZE4sRUFBY08sS0FBSyxTQUFVQyxHQUNoRCxPQUFPQSxFQUFNRixNQUFRRCxDQUN2QixDQUFDLEVBR0NkLEtBQUtrQixvQkFBb0IsRUFFekJsQixLQUFLTixnQkFBZ0J5QixPQUFPLENBRWhDLENBQUMsRUFFTCxDQUFDLENBQ0gsRUFFQUMsVUFBVyxXQUNULE9BQU9wQixLQUFLTCxXQUFXMEIsSUFBSSxRQUFRLENBQ3JDLEVBRUFmLHVCQUF3QixTQUFVWCxHQUczQkssS0FBS04sa0JBQ1JNLEtBQUtMLFdBQWFBLEVBRWxCSyxLQUFLa0Isb0JBQW9CLEVBSXpCbEIsS0FBS0osUUFB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
     1let DEBUG=!1,VideomailFieldController=Marionette.Object.extend({videomailClient:null,fieldModel:null,channel:Backbone.Radio.channel("videomail"),initialize:function(){Backbone.Radio.DEBUG=DEBUG,this.listenTo(this.channel,"all",function(e){DEBUG&&console.log("Videomail channel event triggered:",e),this.videomailClient||(this.listenToOnce(this.channel,"init:model",this.registerVideomailField),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.videomailClient||(this.fieldModel=e,this.loadVideomailClient(),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({siteName:this.fieldModel.get("site_name"),video:{limitSeconds:this.fieldModel.get("limit_seconds")||90,width:this.fieldModel.get("width")||320,countdown:this.fieldModel.get("countdown")||!1},audio:{enabled:this.fieldModel.get("audio_enabled")},image:{quality:e/100},selectors:{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}),this.videomailClient.on(this.videomailClient.events.PREVIEW,this.onPreview.bind(this)),this.videomailClient.on(this.videomailClient.events.SUBMITTED,this.onSubmitted.bind(this)),this.videomailClient.on(this.videomailClient.events.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),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());return 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},{})},adjustFormDataBeforePostingToVideomailServer:function(e,i){var t=this.getFormValues();e.from=this.getMergeTagValue("email_from",t),e.to=this.getMergeTagValue("email_to",t),e.subject=this.getMergeTagValue("email_subject",t),e.body=this.getMergeTagValue("email_body",t),i(null,e)},onBeforeDestroy:function(){this.videomailClient.unload(),delete this.videomailClient}});jQuery(document).ready(function(){return new VideomailFieldController});
     2//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5taW4uanMiLCJzb3VyY2VzIjpbIm1haW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gbWFudWFsIHN3aXRjaCB0byBoYXZlIG1vcmUgc3R1ZmYgcHJpbnRlZCB0byBjb25zb2xlXG5sZXQgREVCVUcgPSBmYWxzZVxuXG4vLyBnb29kIGRvY3VtZW50YXRpb24gb24gYmFja2JvbmUgZXZlbnQgaGFuZGxpbmdcbi8vIGh0dHA6Ly9iYWNrYm9uZWpzLm9yZy8jRXZlbnRzXG5cbmNvbnN0IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlciA9IE1hcmlvbmV0dGUuT2JqZWN0LmV4dGVuZCh7XG4gIHZpZGVvbWFpbENsaWVudDogbnVsbCxcblxuICBmaWVsZE1vZGVsOiBudWxsLFxuXG4gIGNoYW5uZWw6IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ3ZpZGVvbWFpbCcpLFxuXG4gIGluaXRpYWxpemU6IGZ1bmN0aW9uICgpIHtcbiAgICBCYWNrYm9uZS5SYWRpby5ERUJVRyA9IERFQlVHXG5cbiAgICAvLyB1Z2x5IHdvcmthcm91bmQgdG8gbWFrZSBpdCB3b3JrIHdpdGggdGhlIGNvbmRpdGlvbmFsIHBsdWdpblxuICAgIHRoaXMubGlzdGVuVG8odGhpcy5jaGFubmVsLCAnYWxsJywgZnVuY3Rpb24gKGV2ZW50TmFtZSkge1xuICAgICAgREVCVUcgJiYgY29uc29sZS5sb2coJ1ZpZGVvbWFpbCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDonLCBldmVudE5hbWUpXG5cbiAgICAgIGlmICghdGhpcy52aWRlb21haWxDbGllbnQpIHtcbiAgICAgICAgLy8gb25seSBzdGFydCByZWdpc3RlcmluZyBhbmQgbGlzdGVuaW5nIGF0IHRoaXMgcG9pbnQuXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlIGNvbmRpdGlvbmFsIHBsdWdpbiBpcyByZXNldHRpbmcgZXZlbnQgaGFuZGxlcnMuXG4gICAgICAgIC8vIHdpdGhvdXQgdGhlIGFib3ZlLCB3ZSdkIGJlIHJlZ2lzdGVyaW5nIHRvbyBlYXJseSBhbmQgdGhlXG4gICAgICAgIC8vIGNvbmRpdGlvbmFsIHBsdWdpbiBvdmVycmlkZXMuXG4gICAgICAgIHRoaXMubGlzdGVuVG9PbmNlKHRoaXMuY2hhbm5lbCwgJ2luaXQ6bW9kZWwnLCB0aGlzLnJlZ2lzdGVyVmlkZW9tYWlsRmllbGQpXG5cbiAgICAgICAgLy8gbXVzdCBiZSBjb21pbmcgYmFjayBmcm9tIGEgbXVsdGktc3RlcCB3aGVyZVxuICAgICAgICAvLyB2aWRlb21haWwgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXNlZC4gc28ganVzdCByZXN1bWUgaXQuXG4gICAgICAgIHRoaXMubGlzdGVuVG8obmZSYWRpby5jaGFubmVsKCduZk1QJyksICdjaGFuZ2U6cGFydCcsIGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgICBERUJVRyAmJiBjb25zb2xlLmxvZygnbmZNUCBjaGFubmVsIGV2ZW50IHRyaWdnZXJlZDonLCAnY2hhbmdlOnBhcnQnKVxuXG4gICAgICAgICAgY29uc3QgY3VycmVudE1vZGVscyA9XG4gICAgICAgICAgICBwYXJhbXMuY3VycmVudEVsZW1lbnQ/LmF0dHJpYnV0ZXM/LmZvcm1Db250ZW50RGF0YT8ubW9kZWxzIHx8IFtdXG5cbiAgICAgICAgICBjb25zdCBjdXJyZW50Q2lkID0gdGhpcy5maWVsZE1vZGVsLmNpZFxuXG4gICAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3VycmVudE1vZGVscy5maW5kKGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgICAgcmV0dXJuIG1vZGVsLmNpZCA9PT0gY3VycmVudENpZFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBpZiAoY3VycmVudE1vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZpZGVvbWFpbENsaWVudC51bmxvYWQoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuXG4gIGdldEZvcm1JZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdmb3JtSUQnKVxuICB9LFxuXG4gIHJlZ2lzdGVyVmlkZW9tYWlsRmllbGQ6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgLy8gd29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL3dwbmluamFzL25pbmphLWZvcm1zL2lzc3Vlcy8yNjc1XG4gICAgLy8gYWxzbyBwcmV2ZW50cyBmcm9tIGV2ZW50IGVtaXR0ZXIgbGVha3MgdW5kZXIgcmFjZSBjb25kaXRpb25zXG4gICAgaWYgKCF0aGlzLnZpZGVvbWFpbENsaWVudCkge1xuICAgICAgdGhpcy5maWVsZE1vZGVsID0gZmllbGRNb2RlbFxuXG4gICAgICB0aGlzLmxvYWRWaWRlb21haWxDbGllbnQoKVxuXG4gICAgICAvLyBjdXN0b20gZmllbGQgdmFsaWRhdGlvbiwgc2luY2Ugd2UgYXJlbid0IHVzaW5nIGEgc3RhbmRhcmQgYHZhbHVlYFxuICAgICAgLy8gZm9yIHRoZSB2aWRlb21haWwgaW5wdXRcbiAgICAgIHRoaXMuY2hhbm5lbC5yZXBseSgndmFsaWRhdGU6cmVxdWlyZWQnLCB0aGlzLnZhbGlkYXRlUmVxdWlyZWQsIHRoaXMpXG5cbiAgICAgIHRoaXMuY2hhbm5lbC5yZXBseSgndmFsaWRhdGU6bW9kZWxEYXRhJywgdGhpcy52YWxpZGF0ZVZpZGVvbWFpbCwgdGhpcylcblxuICAgICAgLy8gY29udHJvbCBzdWJtaXNzaW9uIHByb2dyZXNzLFxuICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gUE9TVCB0byB0aGUgVmlkZW9tYWlsIHNlcnZlciBmaXJzdFxuICAgICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbCgnZm9ybS0nICsgdGhpcy5nZXRGb3JtSWQoKSkucmVwbHkoXG4gICAgICAgICdtYXliZTpzdWJtaXQnLFxuICAgICAgICB0aGlzLm1heWJlU3VibWl0LFxuICAgICAgICB0aGlzLFxuICAgICAgICBmaWVsZE1vZGVsXG4gICAgICApXG4gICAgfVxuICB9LFxuXG4gIGxvYWRWaWRlb21haWxDbGllbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSA9IHRoaXMuZmllbGRNb2RlbC5nZXQoJ2ltYWdlX3F1YWxpdHknKSB8fCA0MFxuXG4gICAgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgIGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPSAxMDBcbiAgICB9IGVsc2UgaWYgKGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgPCAxKSB7XG4gICAgICBpbWFnZVF1YWxpdHlQZXJjZW50YWdlID0gMVxuICAgIH1cblxuICAgIGNvbnN0IHZlcmJvc2UgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KCd2ZXJib3NlJykgfHwgREVCVUdcblxuICAgIC8vIGxhdGUgb3ZlcnJpZGVzXG4gICAgREVCVUcgPSBERUJVRyB8fCB2ZXJib3NlXG4gICAgQmFja2JvbmUuUmFkaW8uREVCVUcgPSBCYWNrYm9uZS5SYWRpby5ERUJVRyB8fCB2ZXJib3NlXG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudCA9IG5ldyBWaWRlb21haWxDbGllbnQoe1xuICAgICAgc2l0ZU5hbWU6IHRoaXMuZmllbGRNb2RlbC5nZXQoJ3NpdGVfbmFtZScpLFxuICAgICAgdmlkZW86IHtcbiAgICAgICAgbGltaXRTZWNvbmRzOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdsaW1pdF9zZWNvbmRzJykgfHwgOTAsXG4gICAgICAgIHdpZHRoOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCd3aWR0aCcpIHx8IDMyMCxcbiAgICAgICAgY291bnRkb3duOiB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdjb3VudGRvd24nKSB8fCBmYWxzZVxuICAgICAgfSxcbiAgICAgIGF1ZGlvOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRoaXMuZmllbGRNb2RlbC5nZXQoJ2F1ZGlvX2VuYWJsZWQnKVxuICAgICAgfSxcbiAgICAgIGltYWdlOiB7XG4gICAgICAgIHF1YWxpdHk6IGltYWdlUXVhbGl0eVBlcmNlbnRhZ2UgLyAxMDAgLy8gbXVzdCBiZSBhIGZsb2F0XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3JzOiB7XG4gICAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yOiAnLnN1Ym1pdC13cmFwIGlucHV0J1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAvLyB1Z2x5IG5hbWUgZWg/XG4gICAgICAgIGFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZzpcbiAgICAgICAgICB0aGlzLmFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyLmJpbmQodGhpcylcbiAgICAgIH0sXG4gICAgICAvLyB3aGVuIHRydWUsIHVzZXIgbWVkaWEgaXMgbG9hZGVkIG9ubHkgd2hlbiByZWNvcmQgYnV0dG9uIGlzIHByZXNzZWRcbiAgICAgIGxvYWRVc2VyTWVkaWFPblJlY29yZDogdGhpcy5maWVsZE1vZGVsLmdldCgnbG9hZF91c2VyX21lZGlhX29uX3JlY29yZCcpLFxuXG4gICAgICAvLyBsZWF2ZSBpdCB0byBuaW5qYSBmb3JtIHRvIHZhbGlkYXRlIHRoZSBpbnB1dHNcbiAgICAgIGVuYWJsZUF1dG9WYWxpZGF0aW9uOiBmYWxzZSxcblxuICAgICAgLy8gbGVhdmUgaXQgdG8gbmluamEgZm9ybSB0byBkZWFsIHdpdGggZm9ybSBzdWJtaXNzaW9uc1xuICAgICAgZW5hYmxlQXV0b1N1Ym1pc3Npb246IGZhbHNlLFxuXG4gICAgICAvLyBsb2cgYWN0aW9ucy9ldmVudHMgdG8gY29uc29sZVxuICAgICAgdmVyYm9zZVxuICAgIH0pXG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5vbihcbiAgICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LmV2ZW50cy5QUkVWSUVXLFxuICAgICAgdGhpcy5vblByZXZpZXcuYmluZCh0aGlzKVxuICAgIClcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFxuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuZXZlbnRzLlNVQk1JVFRFRCxcbiAgICAgIHRoaXMub25TdWJtaXR0ZWQuYmluZCh0aGlzKVxuICAgIClcblxuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50Lm9uKFxuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuZXZlbnRzLkdPSU5HX0JBQ0ssXG4gICAgICB0aGlzLm9uR29pbmdCYWNrLmJpbmQodGhpcylcbiAgICApXG5cbiAgICB0aGlzLnZpZGVvbWFpbENsaWVudC5zaG93KClcbiAgfSxcblxuICAvLyBuZWVkZWQgdG8gZ2V0IHRoZSB2aWRlb21haWwga2V5IHdoaWNoIGlzIHJlcXVpcmVkIGJlZm9yZVxuICAvLyBzdWJtaXR0aW5nIHRvIHRoZSB2aWRlb21haWwgc2VydmVyXG4gIG9uUHJldmlldzogZnVuY3Rpb24gKGtleSkge1xuICAgIHRoaXMuZmllbGRNb2RlbC5zZXQoJ3ZpZGVvbWFpbC1rZXknLCBrZXkpXG4gICAgdGhpcy5maWVsZE1vZGVsLnNldCgndmFsdWUnLCBrZXkpXG5cbiAgICBCYWNrYm9uZS5SYWRpby5jaGFubmVsKCdmaWVsZHMnKVxuICAgICAgLy8gY2xlYXJzIGFueSBwcmV2aW91cyBlcnJvcnNcbiAgICAgIC5yZXF1ZXN0KCdyZW1vdmU6ZXJyb3InLCB0aGlzLmZpZWxkTW9kZWwuZ2V0KCdpZCcpLCAncmVxdWlyZWQtZXJyb3InKVxuICB9LFxuXG4gIG9uU3VibWl0dGVkOiBmdW5jdGlvbiAodmlkZW9tYWlsKSB7XG4gICAgbGV0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ2FwcCcpLnJlcXVlc3QoJ2dldDpmb3JtJywgdGhpcy5nZXRGb3JtSWQoKSlcblxuICAgIGlmICghZm9ybU1vZGVsKSB7XG4gICAgICAvLyBmYWxsYmFjayBmb3Igb2xkZXIgdmVyc2lvbnNcbiAgICAgIGZvcm1Nb2RlbCA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsXG4gICAgfVxuXG4gICAgLy8gdG9kbyBpc24ndCAnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSB0aGUgc2FtZSBhcyB0aGUgZm9ybUlEIGFscmVhZHk/XG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbCgnZm9ybS0nICsgZm9ybU1vZGVsLmdldCgnaWQnKSkucmVxdWVzdChcbiAgICAgICdhZGQ6ZXh0cmEnLFxuICAgICAgJ3ZpZGVvbWFpbCcsXG4gICAgICB2aWRlb21haWxcbiAgICApXG5cbiAgICAvLyByZXN0YXJ0IHN1Ym1pc3Npb24gYWdhaW4sIHRoaXMgdGltZSB0byB0aGUgcmVhbCB3cCBzaXRlXG4gICAgQmFja2JvbmUuUmFkaW8uY2hhbm5lbCgnZm9ybS0nICsgdGhpcy5nZXRGb3JtSWQoKSkucmVxdWVzdCgnc3VibWl0JywgZm9ybU1vZGVsKVxuICB9LFxuXG4gIG9uR29pbmdCYWNrOiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5maWVsZE1vZGVsLnNldCgndmlkZW9tYWlsLWtleScsIG51bGwpXG4gICAgdGhpcy5pbnZhbGlkYXRlKClcbiAgfSxcblxuICB2YWxpZGF0ZVJlcXVpcmVkOiBmdW5jdGlvbiAoZWwsIGZpZWxkTW9kZWwpIHtcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoZmllbGRNb2RlbClcblxuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMuaW52YWxpZGF0ZSgpXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkXG4gIH0sXG5cbiAgaW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIC8vIG92ZXJyaWRlIGRlZmF1bHQgYmVoYXZpb3VyIHNvIHRoYXQgd2UgY2FuIHNldCBvdXIgb3duIGVycm9yIHRleHQgaGVyZVxuICAgIEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ2ZpZWxkcycpLnJlcXVlc3QoXG4gICAgICAnYWRkOmVycm9yJyxcbiAgICAgIHRoaXMuZmllbGRNb2RlbC5nZXQoJ2lkJyksXG4gICAgICAncmVxdWlyZWQtZXJyb3InLFxuICAgICAgJ1JlY29yZCBhbmQgY2xpY2sgb24gc3RvcCB0byBzZWUgYSBwcmV2aWV3IHZpZGVvLidcbiAgICApXG4gIH0sXG5cbiAgdmFsaWRhdGVWaWRlb21haWw6IGZ1bmN0aW9uIChmaWVsZE1vZGVsKSB7XG4gICAgZmllbGRNb2RlbCA9IGZpZWxkTW9kZWwgfHwgdGhpcy5maWVsZE1vZGVsXG4gICAgcmV0dXJuIGZpZWxkTW9kZWwuZ2V0KCd2aWRlb21haWwta2V5JykgfHwgZmFsc2VcbiAgfSxcblxuICBoYXNFcnJvcnM6IGZ1bmN0aW9uIChmb3JtTW9kZWwpIHtcbiAgICByZXR1cm4gZm9ybU1vZGVsLmdldCgnZXJyb3JzJykubGVuZ3RoID4gMFxuICB9LFxuXG4gIG1heWJlU3VibWl0OiBmdW5jdGlvbiAoZm9ybU1vZGVsKSB7XG4gICAgbGV0IG1heWJlID0gdHJ1ZVxuICAgIGNvbnN0IHZpZGVvbWFpbFN1Ym1pdHRlZCA9IGZvcm1Nb2RlbC5nZXRFeHRyYSgndmlkZW9tYWlsJylcbiAgICBjb25zdCB2aWRlb21haWxSZWNvcmRlZCA9IHRoaXMudmFsaWRhdGVWaWRlb21haWwoKVxuICAgIGNvbnN0IGVycm9yID0gdGhpcy5oYXNFcnJvcnMoZm9ybU1vZGVsKVxuXG4gICAgLy8gaG9sZCBvbiB3aXRoIGZpbmFsIGZvcm0gc3VibWlzc2lvbiB3aGVuIG9uZSB3YXMgcmVjb3JkZWRcbiAgICAvLyBidXQgaGFzbid0IGJlZW4gc3VibWl0dGVkIHRvIHRoZSB2aWRlb21haWwgc2VydmVyIHlldFxuICAgIGlmICghdmlkZW9tYWlsU3VibWl0dGVkICYmICFlcnJvciAmJiB2aWRlb21haWxSZWNvcmRlZCkge1xuICAgICAgdGhpcy52aWRlb21haWxDbGllbnQuc3VibWl0KClcbiAgICAgIG1heWJlID0gZmFsc2VcbiAgICB9XG5cbiAgICByZXR1cm4gbWF5YmVcbiAgfSxcblxuICBnZXRNZXJnZVRhZ1ZhbHVlOiBmdW5jdGlvbiAoZmllbGRLZXksIGZvcm1WYWx1ZXMpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmZpZWxkTW9kZWwuZ2V0KGZpZWxkS2V5KVxuXG4gICAgLy8gaXQgY2FuIGhhcHBlbiB0aGF0IHRoZSB1c2VyIGhhcyBjb25maWd1cmVkIHNvbWV0aGluZyB3cm9uZyxcbiAgICAvLyBpLkUuIGFuIGVtcHR5IGVtYWlsX2Zyb20uIGluIHRoYXQgY2FzZSBqdXN0IGlnbm9yZSAuLi5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIGFkbWluIGVtYWlsIGxvY2FsaXplZCBmcm9tIGJhY2tlbmQsIGEgYml0IHVnbHlcbiAgICAgIC8vIHRvZG8gYXNrIGZvciBhbiBlbmRwb2ludCB0byBwcm9jZXNzIHRob3NlIHNwZWNpYWwgbWVyZ2UgdGFnc1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpbmFyeWtpdGNoZW4vdmlkZW9tYWlsLWZvci1uaW5qYS1mb3Jtcy9pc3N1ZXMvMzBcbiAgICAgIGlmICh2YWx1ZSA9PT0gJ3t3cDphZG1pbl9lbWFpbH0nKSB7XG4gICAgICAgIHZhbHVlID0gd2luZG93Lm5mVmlkZW9tYWlsLmFkbWluX2VtYWlsXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCByYXdGaWVsZEtleU1hdGNoZXMgPSB2YWx1ZS5tYXRjaCgve2ZpZWxkOiguKil9L2kpXG4gICAgICAgIGNvbnN0IHJhd0ZpZWxkS2V5ID0gcmF3RmllbGRLZXlNYXRjaGVzICYmIHJhd0ZpZWxkS2V5TWF0Y2hlc1sxXVxuXG4gICAgICAgIGlmIChyYXdGaWVsZEtleSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAvLyB5ZXMgaXQgd2FzIGEgbWVyZ2UgdGFnLCBzbyB1c2UgaXRcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL3tmaWVsZDooLiopfS9pLCBmb3JtVmFsdWVzW3Jhd0ZpZWxkS2V5XSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfSxcblxuICAvLyByZXR1cm5zIGEgbWFwIGxpa2UgdGhpczpcbiAgLy8ge1xuICAvLyAgIGZyb21fZW1haWw6IFwibWljS0BkZWFmb256LmVoXCJcbiAgLy8gICBmcm9tX25hbWU6IFwiTUhcIlxuICAvLyAgIG1lc3NhZ2U6IFwic2Rmc2Rmc2RmXCJcbiAgLy8gICBzdWJqZWN0OiBcInNkZnNkZlwiXG4gIC8vICAgc3VibWl0OiBcIlwiXG4gIC8vICAgdmlkZW9fbWVzc2FnZTogXCIxMWViLTYxZDctZGQ1ODMzMjAtYWU2MS0yYjgyYmU2YzZlM2VcIlxuICAvLyB9XG4gIGdldEZvcm1WYWx1ZXM6IGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgY29sbGVjdGlvblxuICAgIGNvbnN0IGZvcm1Nb2RlbCA9IEJhY2tib25lLlJhZGlvLmNoYW5uZWwoJ2FwcCcpLnJlcXVlc3QoJ2dldDpmb3JtJywgdGhpcy5nZXRGb3JtSWQoKSlcblxuICAgIGlmIChmb3JtTW9kZWwpIHtcbiAgICAgIGNvbGxlY3Rpb24gPSBmb3JtTW9kZWwuZ2V0KCdmaWVsZHMnKVxuICAgICAgLy8gZmFsbGJhY2sgZm9yIG9sZGVyIHZlcnNpb25zXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkTW9kZWwuY29sbGVjdGlvbi5vcHRpb25zLmZvcm1Nb2RlbC5nZXQoJ2ZpZWxkcycpLm1vZGVscykge1xuICAgICAgY29sbGVjdGlvbiA9IHRoaXMuZmllbGRNb2RlbC5jb2xsZWN0aW9uLm9wdGlvbnMuZm9ybU1vZGVsLmdldCgnZmllbGRzJykubW9kZWxzXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbGxlY3Rpb24ucmVkdWNlKGZ1bmN0aW9uIChtZW1vLCBmaWVsZCkge1xuICAgICAgbWVtb1tmaWVsZC5nZXQoJ2tleScpXSA9IGZpZWxkLmdldCgndmFsdWUnKVxuICAgICAgcmV0dXJuIG1lbW9cbiAgICB9LCB7fSlcbiAgfSxcblxuICBhZGp1c3RGb3JtRGF0YUJlZm9yZVBvc3RpbmdUb1ZpZGVvbWFpbFNlcnZlcjogZnVuY3Rpb24gKHZpZGVvbWFpbCwgY2IpIHtcbiAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5nZXRGb3JtVmFsdWVzKClcblxuICAgIHZpZGVvbWFpbC5mcm9tID0gdGhpcy5nZXRNZXJnZVRhZ1ZhbHVlKCdlbWFpbF9mcm9tJywgZm9ybVZhbHVlcylcbiAgICB2aWRlb21haWwudG8gPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoJ2VtYWlsX3RvJywgZm9ybVZhbHVlcylcbiAgICB2aWRlb21haWwuc3ViamVjdCA9IHRoaXMuZ2V0TWVyZ2VUYWdWYWx1ZSgnZW1haWxfc3ViamVjdCcsIGZvcm1WYWx1ZXMpXG4gICAgdmlkZW9tYWlsLmJvZHkgPSB0aGlzLmdldE1lcmdlVGFnVmFsdWUoJ2VtYWlsX2JvZHknLCBmb3JtVmFsdWVzKVxuXG4gICAgY2IobnVsbCwgdmlkZW9tYWlsKVxuICB9LFxuXG4gIG9uQmVmb3JlRGVzdHJveTogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMudmlkZW9tYWlsQ2xpZW50LnVubG9hZCgpXG4gICAgZGVsZXRlIHRoaXMudmlkZW9tYWlsQ2xpZW50XG4gIH1cbn0pXG5cbmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IFZpZGVvbWFpbEZpZWxkQ29udHJvbGxlcigpXG59KVxuIl0sIm5hbWVzIjpbImxldCIsIkRFQlVHIiwiVmlkZW9tYWlsRmllbGRDb250cm9sbGVyIiwiTWFyaW9uZXR0ZSIsIk9iamVjdCIsImV4dGVuZCIsInZpZGVvbWFpbENsaWVudCIsImZpZWxkTW9kZWwiLCJjaGFubmVsIiwiQmFja2JvbmUiLCJSYWRpbyIsImluaXRpYWxpemUiLCJ0aGlzIiwibGlzdGVuVG8iLCJldmVudE5hbWUiLCJjb25zb2xlIiwibG9nIiwibGlzdGVuVG9PbmNlIiwicmVnaXN0ZXJWaWRlb21haWxGaWVsZCIsIm5mUmFkaW8iLCJwYXJhbXMiLCJjdXJyZW50TW9kZWxzIiwiY3VycmVudEVsZW1lbnQiLCJhdHRyaWJ1dGVzIiwiZm9ybUNvbnRlbnREYXRhIiwibW9kZWxzIiwiY3VycmVudENpZCIsImNpZCIsImZpbmQiLCJtb2RlbCIsImxvYWRWaWRlb21haWxDbGllbnQiLCJ1bmxvYWQiLCJnZXRGb3JtSWQiLCJnZXQiLCJyZXBseSIsInZhbGlkYXRlUmVxdWlyZWQiLCJ2YWxpZGF0ZVZpZGVvbWFpbCIsIm1heWJlU3VibWl0IiwiaW1hZ2VRdWFsaXR5UGVyY2VudGFnZSIsInZlcmJvc2UiLCJWaWRlb21haWxDbGllbnQiLCJzaXRlTmFtZSIsInZpZGVvIiwibGltaXRTZWNvbmRzIiwid2lkdGgiLCJjb3VudGRvd24iLCJhdWRpbyIsImVuYWJsZWQiLCJpbWFnZSIsInF1YWxpdHkiLCJzZWxlY3RvcnMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImNhbGxiYWNrcyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZyIsImFkanVzdEZvcm1EYXRhQmVmb3JlUG9zdGluZ1RvVmlkZW9tYWlsU2VydmVyIiwiYmluZCIsImxvYWRVc2VyTWVkaWFPblJlY29yZCIsImVuYWJsZUF1dG9WYWxpZGF0aW9uIiwiZW5hYmxlQXV0b1N1Ym1pc3Npb24iLCJvbiIsImV2ZW50cyIsIlBSRVZJRVciLCJvblByZXZpZXciLCJTVUJNSVRURUQiLCJvblN1Ym1pdHRlZCIsIkdPSU5HX0JBQ0siLCJvbkdvaW5nQmFjayIsInNob3ciLCJrZXkiLCJzZXQiLCJyZXF1ZXN0IiwidmlkZW9tYWlsIiwiZm9ybU1vZGVsIiwiY29sbGVjdGlvbiIsIm9wdGlvbnMiLCJpbnZhbGlkYXRlIiwiZWwiLCJ2YWxpZCIsImhhc0Vycm9ycyIsImxlbmd0aCIsIm1heWJlIiwidmlkZW9tYWlsU3VibWl0dGVkIiwiZ2V0RXh0cmEiLCJ2aWRlb21haWxSZWNvcmRlZCIsImVycm9yIiwic3VibWl0IiwiZ2V0TWVyZ2VUYWdWYWx1ZSIsImZpZWxkS2V5IiwiZm9ybVZhbHVlcyIsInZhbHVlIiwid2luZG93IiwibmZWaWRlb21haWwiLCJhZG1pbl9lbWFpbCIsInJhd0ZpZWxkS2V5IiwicmF3RmllbGRLZXlNYXRjaGVzIiwibWF0Y2giLCJyZXBsYWNlIiwiZ2V0Rm9ybVZhbHVlcyIsInJlZHVjZSIsIm1lbW8iLCJmaWVsZCIsImNiIiwiZnJvbSIsInRvIiwic3ViamVjdCIsImJvZHkiLCJvbkJlZm9yZURlc3Ryb3kiLCJqUXVlcnkiLCJkb2N1bWVudCIsInJlYWR5Il0sIm1hcHBpbmdzIjoiQUFDQUEsSUFBSUMsTUFBUSxDQUFBLEVBS05DLHlCQUEyQkMsV0FBV0MsT0FBT0MsT0FBTyxDQUN4REMsZ0JBQWlCLEtBRWpCQyxXQUFZLEtBRVpDLFFBQVNDLFNBQVNDLE1BQU1GLFFBQVEsV0FBVyxFQUUzQ0csV0FBWSxXQUNWRixTQUFTQyxNQUFNVCxNQUFRQSxNQUd2QlcsS0FBS0MsU0FBU0QsS0FBS0osUUFBUyxNQUFPLFNBQVVNLEdBQzNDYixPQUFTYyxRQUFRQyxJQUFJLHFDQUFzQ0YsQ0FBUyxFQUUvREYsS0FBS04sa0JBS1JNLEtBQUtLLGFBQWFMLEtBQUtKLFFBQVMsYUFBY0ksS0FBS00sc0JBQXNCLEVBSXpFTixLQUFLQyxTQUFTTSxRQUFRWCxRQUFRLE1BQU0sRUFBRyxjQUFlLFNBQVVZLEdBQzlEbkIsT0FBU2MsUUFBUUMsSUFBSSxnQ0FBaUMsYUFBYSxFQUU3REssRUFDSkQsRUFBT0UsZ0JBQWdCQyxZQUFZQyxpQkFBaUJDLFFBQVUsR0FFaEUsSUFBTUMsRUFBYWQsS0FBS0wsV0FBV29CLElBRWROLEVBQWNPLEtBQUssU0FBVUMsR0FDaEQsT0FBT0EsRUFBTUYsTUFBUUQsQ0FDdkIsQ0FBQyxFQUdDZCxLQUFLa0Isb0JBQW9CLEVBRXpCbEIsS0FBS04sZ0JBQWdCeUIsT0FBTyxDQUVoQyxDQUFDLEVBRUwsQ0FBQyxDQUNILEVBRUFDLFVBQVcsV0FDVCxPQUFPcEIsS0FBS0wsV0FBVzBCLElBQUksUUFBUSxDQUNyQyxFQUVBZix1QkFBd0IsU0FBVVgsR0FHM0JLLEtBQUtOLGtCQUNSTSxLQUFLTCxXQUFhQSxFQUVsQkssS0FBS2tCLG9CQUFvQixFQUl6QmxCLEtBQUtKLFFBQVEwQixN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
  • videomail-for-ninja-forms/trunk/target/php/videomail.php

    r3040427 r3102043  
    33
    44  const NAME = 'Videomail';
    5   const VERSION = '5.1.0';
     5  const VERSION = '5.1.1';
    66  const AUTHOR = 'Michael Heuberger + Kyle B. Johnson';
    77  const SLUG = 'videomail';
  • videomail-for-ninja-forms/trunk/videomail-for-ninja-forms.php

    r3040427 r3102043  
    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: 5.1.0
     6Version: 5.1.1
    77Author: Michael Heuberger + Kyle B. Johnson
    88Author URI: https://videomail.io
     
    1010Text Domain: videomail-for-ninja-forms
    1111
    12 Copyright 2023 Michael Heuberger + Kyle B. Johnson
     12Copyright 2024 Michael Heuberger + Kyle B. Johnson
    1313*/
    1414
Note: See TracChangeset for help on using the changeset viewer.