From e2cf451607d8e536e5f224c674ade0d342fa8c9e Mon Sep 17 00:00:00 2001 From: Quentin Rider Date: Wed, 10 May 2017 16:24:04 -0600 Subject: [PATCH 1/6] updated F2 to use JSON3 --- F2.latest.js | 25 +- Gruntfile.js | 10 +- dist/f2.basic.js | 2 +- dist/f2.basic.min.js | 4 +- dist/f2.debug.js | 1314 +++++++++++------ dist/f2.min.js | 25 +- dist/f2.min.map | 2 +- dist/f2.no-bootstrap.js | 2 +- dist/f2.no-bootstrap.min.js | 4 +- dist/f2.no-easyXDM.js | 2 +- dist/f2.no-easyXDM.min.js | 4 +- dist/f2.no-jquery-or-bootstrap.js | 2 +- dist/f2.no-jquery-or-bootstrap.min.js | 4 +- dist/f2.no-third-party.js | 2 +- docs/dist/extending-f2.html | 2 +- docs/dist/f2js-sdk.html | 2 +- docs/dist/sdk/classes/F2.App.html | 6 +- docs/dist/sdk/classes/F2.AppConfig.html | 34 +- docs/dist/sdk/classes/F2.AppHandlers.html | 14 +- .../classes/F2.AppManifest.AppContent.html | 8 +- docs/dist/sdk/classes/F2.AppManifest.html | 10 +- .../sdk/classes/F2.Constants.AppHandlers.html | 18 +- docs/dist/sdk/classes/F2.Constants.Css.html | 16 +- .../dist/sdk/classes/F2.Constants.Events.html | 16 +- .../sdk/classes/F2.Constants.Sockets.html | 12 +- docs/dist/sdk/classes/F2.Constants.Views.html | 14 +- docs/dist/sdk/classes/F2.Constants.html | 2 +- .../classes/F2.ContainerConfig.UI.Mask.html | 12 +- .../sdk/classes/F2.ContainerConfig.UI.html | 2 +- docs/dist/sdk/classes/F2.ContainerConfig.html | 34 +- docs/dist/sdk/classes/F2.Events.html | 14 +- docs/dist/sdk/classes/F2.Rpc.html | 22 +- docs/dist/sdk/classes/F2.UI.Modals.html | 6 +- docs/dist/sdk/classes/F2.UI.Views.html | 8 +- docs/dist/sdk/classes/F2.UI.html | 18 +- docs/dist/sdk/classes/F2.html | 78 +- docs/dist/sdk/data.json | 412 +++--- docs/dist/sdk/files/sdk_src_F2.js.html | 8 +- .../sdk/files/sdk_src_app_handlers.js.html | 8 +- docs/dist/sdk/files/sdk_src_classes.js.html | 8 +- docs/dist/sdk/files/sdk_src_constants.js.html | 8 +- docs/dist/sdk/files/sdk_src_container.js.html | 8 +- docs/dist/sdk/files/sdk_src_events.js.html | 8 +- docs/dist/sdk/files/sdk_src_rpc.js.html | 8 +- docs/dist/sdk/files/sdk_src_ui.js.html | 8 +- docs/dist/sdk/modules/f2.html | 2 +- sdk/f2.debug.js | 1314 +++++++++++------ sdk/f2.min.js | 25 +- sdk/f2.min.map | 2 +- sdk/f2.no-third-party.js | 2 +- sdk/f2.nuspec | 28 + sdk/packages/f2.basic.js | 1314 +++++++++++------ sdk/packages/f2.basic.min.js | 25 +- sdk/packages/f2.no-bootstrap.js | 1314 +++++++++++------ sdk/packages/f2.no-bootstrap.min.js | 25 +- sdk/packages/f2.no-easyXDM.js | 1314 +++++++++++------ sdk/packages/f2.no-easyXDM.min.js | 25 +- sdk/packages/f2.no-jquery-or-bootstrap.js | 1314 +++++++++++------ sdk/packages/f2.no-jquery-or-bootstrap.min.js | 26 +- sdk/src/third-party/json2.js | 495 ------- 60 files changed, 5644 insertions(+), 3807 deletions(-) create mode 100644 sdk/f2.nuspec delete mode 100644 sdk/src/third-party/json2.js diff --git a/F2.latest.js b/F2.latest.js index 3e4f9e11..c07ee815 100644 --- a/F2.latest.js +++ b/F2.latest.js @@ -1,25 +1,6 @@ -/*! F2 - v1.4.2 - 06-20-2016 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ -!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(a){return 10>a?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),/*! +!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ * @@ -48,7 +29,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.4",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidthe;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/Gruntfile.js b/Gruntfile.js index 0a124ed6..0ff24d1e 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -124,7 +124,7 @@ module.exports = function(grunt) { dist: { src: [ 'sdk/src/template/header.js.tmpl', - 'sdk/src/third-party/json2.js', + 'sdk/src/third-party/json3.js', 'sdk/src/third-party/jquery.js', 'sdk/src/third-party/jquery.noconflict.js', 'sdk/src/third-party/bootstrap-modal.js', @@ -146,7 +146,7 @@ module.exports = function(grunt) { 'no-jquery-or-bootstrap': { src: [ 'sdk/src/template/header.js.tmpl', - 'sdk/src/third-party/json2.js', + 'sdk/src/third-party/json3.js', 'sdk/src/third-party/eventemitter2.js', 'sdk/src/third-party/easyXDM/easyXDM.js', '<%= jshint.files %>', @@ -157,7 +157,7 @@ module.exports = function(grunt) { 'no-bootstrap': { src: [ 'sdk/src/template/header.js.tmpl', - 'sdk/src/third-party/json2.js', + 'sdk/src/third-party/json3.js', 'sdk/src/third-party/jquery.js', 'sdk/src/third-party/jquery.noconflict.js', 'sdk/src/third-party/eventemitter2.js', @@ -170,7 +170,7 @@ module.exports = function(grunt) { 'no-easyXDM': { src: [ 'sdk/src/template/header.js.tmpl', - 'sdk/src/third-party/json2.js', + 'sdk/src/third-party/json3.js', 'sdk/src/third-party/jquery.js', 'sdk/src/third-party/bootstrap-modal.js', 'sdk/src/third-party/jquery.noconflict.js', @@ -183,7 +183,7 @@ module.exports = function(grunt) { 'basic': { //reminiscent of F2 1.0, no secure apps and Container Provide must have jQuery & Bootstrap on page before F2. src: [ 'sdk/src/template/header.js.tmpl', - 'sdk/src/third-party/json2.js', + 'sdk/src/third-party/json3.js', 'sdk/src/third-party/eventemitter2.js', '<%= jshint.files %>', 'sdk/src/template/footer.js.tmpl' diff --git a/dist/f2.basic.js b/dist/f2.basic.js index b048f681..bccf2a23 100644 --- a/dist/f2.basic.js +++ b/dist/f2.basic.js @@ -1089,7 +1089,7 @@ if (typeof JSON !== 'object') { /*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/dist/f2.basic.min.js b/dist/f2.basic.min.js index 62b6b762..46c5ea8e 100644 --- a/dist/f2.basic.min.js +++ b/dist/f2.basic.min.js @@ -1,4 +1,4 @@ -/*! F2 - v1.4.2 - 06-20-2016 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! JSON.org requires the following notice to accompany json2: @@ -19,7 +19,7 @@ IN THE SOFTWARE. */ "object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(a){return 10>a?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } } - return value; - }); - - - This is a reference implementation. You are free to copy, modify, or - redistribute. -*/ - -/*jslint evil: true, regexp: true */ - -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ - - -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; } - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); }; + } - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; + result += useCharIndex ? symbols[index] : value.charAt(index); } + } + return result + '"'; + }; -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. + } - var j; + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; - function walk(holder, key) { + // Internal: Stores the parser state. + var Index, Source; -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; + } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); } - return reviver.call(holder, key, value); + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; + } + // Unrecognized token. + abort(); } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; } + // Unexpected token encountered. + abort(); + } + return value; + }; + + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; -// If the text is not JSON parseable, then a SyntaxError is thrown. + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; - throw new SyntaxError('JSON.parse'); + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; }; + } } -}()); + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); /*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ @@ -14362,7 +14768,7 @@ global.easyXDM = easyXDM; })(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent); /*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/dist/f2.min.js b/dist/f2.min.js index 3e4f9e11..c07ee815 100644 --- a/dist/f2.min.js +++ b/dist/f2.min.js @@ -1,25 +1,6 @@ -/*! F2 - v1.4.2 - 06-20-2016 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ -!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(a){return 10>a?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),/*! +!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ * @@ -48,7 +29,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.4",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidthe;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/dist/f2.min.map b/dist/f2.min.map index fb024412..fd932d8c 100644 --- a/dist/f2.min.map +++ b/dist/f2.min.map @@ -1 +1 @@ -{"version":3,"file":"f2.min.js","sources":["f2.debug.js"],"names":["exports","F2","F2_TESTING_MODE","JSON","f","n","quote","string","escapable","lastIndex","test","replace","a","c","meta","charCodeAt","toString","slice","str","key","holder","i","k","v","length","partial","mind","gap","value","toJSON","rep","call","isFinite","String","indent","Object","prototype","apply","join","push","hasOwnProperty","Date","this","valueOf","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","Number","Boolean","cx","\b","\t","\n","\f","\r","\"","\\","stringify","replacer","space","Error","parse","text","reviver","walk","undefined","j","eval","SyntaxError","global","factory","module","document","w","window","noGlobal","isArraylike","obj","type","jQuery","isWindow","nodeType","winnow","elements","qualifier","not","isFunction","grep","elem","risSimple","filter","inArray","sibling","cur","dir","createOptions","options","object","optionsCache","each","match","rnotwhite","_","flag","detach","addEventListener","removeEventListener","completed","detachEvent","event","readyState","ready","dataAttr","data","name","rmultiDash","toLowerCase","getAttribute","rbrace","parseJSON","e","isEmptyDataObject","isEmptyObject","internalData","pvt","acceptData","ret","thisCache","internalKey","expando","isNode","cache","id","deletedIds","pop","guid","noop","extend","camelCase","internalRemoveData","isArray","concat","map","split","cleanData","support","deleteExpando","returnTrue","returnFalse","safeActiveElement","activeElement","err","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","createElement","getAll","context","tag","elems","found","getElementsByTagName","strundefined","querySelectorAll","childNodes","nodeName","merge","fixDefaultChecked","rcheckableType","defaultChecked","checked","manipulationTarget","content","firstChild","appendChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","exec","removeAttribute","setGlobalEval","refElements","_data","cloneCopyEvent","src","dest","hasData","l","oldData","curData","events","handle","add","fixCloneNodeIssues","noCloneEvent","removeEvent","parentNode","outerHTML","html5Clone","innerHTML","trim","defaultSelected","selected","defaultValue","actualDisplay","doc","style","appendTo","body","display","getDefaultComputedStyle","css","defaultDisplay","elemdisplay","iframe","documentElement","contentWindow","contentDocument","write","close","addGetHookIf","conditionFn","hookFn","get","condition","arguments","vendorPropName","capName","charAt","toUpperCase","origName","cssPrefixes","showHide","show","hidden","values","index","isHidden","setPositiveNumber","subtract","matches","rnumsplit","Math","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","Tween","prop","end","easing","init","createFxNow","setTimeout","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","width","createTween","animation","tween","collection","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","checkDisplay","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","done","hide","_removeData","start","propFilter","specialEasing","cssHooks","expand","Animation","properties","result","stopped","animationPrefilters","deferred","Deferred","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","fx","timer","progress","complete","fail","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","error","buildParams","prefix","traditional","rbracket","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","getWindow","defaultView","parentWindow","indexOf","class2type","hasOwn","version","selector","fn","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","constructor","toArray","num","pushStack","prevObject","callback","args","first","eq","last","len","sort","splice","copyIsArray","copy","clone","isPlainObject","random","isReady","msg","Array","isNumeric","ownLast","globalEval","execScript","makeArray","arr","results","second","invert","callbackInverse","callbackExpect","arg","proxy","Sizzle","seed","m","groups","old","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","contains","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","setAttribute","toSelector","rsibling","testContext","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","removeChild","addHandle","handler","attrHandle","siblingCheck","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","outerCache","newCache","dirruns","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","compilerCache","sortOrder","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","fromCharCode","unloadHandler","els","node","hasCompare","parent","top","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","has","innerText","lang","elemLang","hash","location","root","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","r","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","stack","once","stopOnFalse","disable","remove","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","source","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","original","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","suffix","expanded","parts","unit","propHooks","eased","step","linear","p","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","requireNonComma","depth","comma","open","Function","parseXML","DOMParser","parseFromString","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","abort","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serialize","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","define","amd","_jQuery","_$","$","noConflict","Plugin","_relatedTarget","$this","Modal","DEFAULTS","element","$body","$element","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","VERSION","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","backdrop","keyboard","that","checkScrollbar","setScrollbar","escape","resize","transition","adjustDialog","enforceFocus","emulateTransitionEnd","hideModal","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","doAnimate","callbackRemove","modalIsOverflowing","clientHeight","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","right","abs","clientWidth","measureScrollbar","bodyPad","scrollDiv","modal","Constructor","$target","showEvent","_events","_conf","configure","conf","delimiter","maxListeners","wildcard","newListener","listenerTree","EventEmitter","searchListenerTree","tree","leaf","branch","xTree","xxTree","isolatedBranch","endReached","listeners","typeLength","currentType","nextType","_listeners","**","growListenerTree","listener","warned","defaultMaxListeners","console","trace","setMaxListeners","many","ttl","_origin","emit","_all","ns","onAny","addListener","leafs","iLeaf","offAny","removeListener","removeAllListeners","listenersAny","EventEmitter2","process","title","decodeURIComponent","isHostMethod","property","isHostObject","o","hasFlash","undef","navigator","plugins","description","mimeTypes","enabledPlugin","flashVersion","flash","GetVariable","notSupportedException","major","minor","HAS_FLASH_THROTTLED_BUG","dom_onReady","domIsReady","domReadyQueue","whenReady","scope","getParentObject","ii","easyXDM","_easyXDM","IFRAME_PREFIX","getDomainName","reURI","getPort","getLocation","proto","domain","port","resolveUrl","reDoubleSlash","path","substring","pathname","lastIndexOf","protocol","host","reParent","appendQueryParameters","parameters","q","useHash","destination","noOverwrite","member","testForNamePropertyBug","channelId","HAS_NAME_PROPERTY_BUG","createFrame","config","frame","frameBorder","allowTransparency","onLoad","usePost","action","checkAcl","acl","re","substr","prepareTransportStack","stackEls","isHost","query","xdm_p","channel","secret","swf","product","userAgent","remoteHelper","xdm_c","xdm_s","xdm_e","useResize","useParent","usePolling","local","images","search","xdm_pa","xdm_po","HashTransport","ReliableBehavior","QueueBehavior","encode","maxLength","VerifyBehavior","initiate","PostMessageTransport","NameTransport","NixTransport","SameOriginTransport","FrameElementTransport","FlashTransport","lazy","chainStack","stackElements","stackEl","defaults","incoming","message","origin","up","outgoing","recipient","down","destroy","removeFromStack","un","floor","emptyFn","sEvent","fpNotify","pair","evalJSON","getJSONObject","DomHelper","requiresJSON","_map","Fn","del","Socket","onMessage","onReady","postMessage","Rpc","jsonRpcConfig","RpcBehavior","pub","targetOrigin","onDOMReady","sendFn","addSwf","swfContainer","swfNoThrottle","flashVars","destroyChannel","swfdomain","createChannel","_getOrigin","uri","_window_onMessage","callerWindow","waitForReady","referrer","_sendMessage","sendMessage","_onReady","readyCount","_onMessage","remoteOrigin","_onLoad","remoteWindow","remoteUrl","_callerWindow","_msgNr","_handleHash","_lastMsg","_remoteOrigin","_pollHash","_listenerWindow","_attachListeners","_timer","pollInterval","tries","getRef","frames","ex","idOut","idIn","currentMessage","ack","waiting","destroying","doFragment","seq","fragments","startVerification","mySecret","theirSecret","_send","jsonrpc","serializer","_createMethod","definition","_callbacks","_callbackCounter","namedParams","_executeMethod","ex1","_absolutizeURI","removeDotSegments","output","_parseURI","authority","hostname","appConfigReplacer","Apps","overwrite","isFunc","S4","array","isLocalRequest","urlLower","isNativeDOMNode","testObject","bIsNode","Node","bIsElement","HTMLElement","log","_log","_logMethod","methods","_ct","_f2t","_handlerCollection","appCreateRoot","appRenderBefore","appDestroyBefore","appRenderAfter","appDestroyAfter","appRender","appDestroy","appScriptLoadFailed","_defaultMethods","appConfig","appHtml","$root","appInstance","app","appId","_createHandler","sNamespace","func_or_element","bDomNodeAppropriate","_validateToken","domNode","sToken","_removeHandler","eventKey","currentEventKey","eventCollection","newEvents","ec","currentEventHandler","newHandlerCollection","iCounter","hc","currentHandler","getToken","__f2GetToken","__trigger","passableArgs","hcl","$appRoot","arData","AppHandlers","APP_CREATE_ROOT","APP_RENDER_BEFORE","APP_RENDER","APP_RENDER_AFTER","APP_DESTROY_BEFORE","APP_DESTROY","APP_DESTROY_AFTER","APP_SCRIPT_LOAD_FAILED","App","appContent","AppConfig","enableBatchRequests","instanceId","isSecure","containerLocale","localeSupport","manifestUrl","minGridSize","ui","views","AppManifest","apps","inlineScripts","AppContent","ContainerConfig","afterAppRender","beforeAppRender","debugMode","locale","scriptErrorTimeout","isSecureAppPage","secureAppPagePath","supportedViews","UI","Mask","backgroundColor","loadingIcon","useClasses","appConfigs","loadScripts","inlines","loadStyles","Css","_PREFIX","APP","APP_CONTAINER","APP_TITLE","APP_VIEW","APP_VIEW_TRIGGER","MASK","MASK_CONTAINER","Events","_APP_EVENT_PREFIX","_CONTAINER_EVENT_PREFIX","APP_SCRIPTS_LOADED","APP_SYMBOL_CHANGE","APP_WIDTH_CHANGE","CONTAINER_SYMBOL_CHANGE","CONTAINER_WIDTH_CHANGE","CONTAINER_LOCALE_CHANGE","RESOURCE_FAILED_TO_LOAD","JSONP_CALLBACK","AppStatus","ERROR","SUCCESS","Sockets","EVENT","LOAD","RPC","RPC_CALLBACK","UI_RPC","Views","DATA_ATTRIBUTE","ABOUT","HELP","HOME","REMOVE","SETTINGS","_socketEmit","broadcast","Constants","timesToListen","_secureAppPagePath","_apps","_rEvents","_rRpc","_rRpcCallback","_rSocketLoad","_rUiCall","_createAppToContainerSocket","isLoaded","messagePlayback","socket","appParts","registerApps","_createContainerToAppSocket","appManifest","iframeProps","scrolling","_createRpcCallback","callbackId","parseFunction","functionName","parseMessage","regEx","callbacks","_registerCallback","messageType","cid","isRemote","register","_containerConfig","UI_Class","_appConfig","_updateHeight","outerHeight","_modalHtml","showCancel","hideMask","Modals","_renderAlert","_renderConfirm","alert","isInit","confirm","okCallback","cancelCallback","setTitle","showMask","showLoader","updateHeight","_rValidEvents","_isValid","containerConfig","showLoading","mask","background-color","background-image","background-position","background-repeat","min-height","z-index","_config","_bUsesAppHandlers","_sAppHandlerToken","_loadingScripts","_afterAppRender","appContainer","_appRender","_outerHtml","_beforeAppRender","_appScriptLoadFailed","scriptInfo","_createAppConfig","_getAppConfigFromElement","hasAttribute","contextJson","warn","_hasNonTextChildNodes","hasNodes","hasChildNodes","_hydrateContainerConfig","_initAppEvents","view","removeApp","_initContainerEvents","resizeTimeout","resizeHandler","_isPlaceholderElement","_isInit","_createAppInstance","_loadApps","_loadSecureApp","_findExistingScripts","_findExistingStyles","_loadStyles","cb","existingStyles","stylesFragment","useCreateStyleSheet","createStyleSheet","resourceUrl","_loadScripts","existingScripts","scriptCount","scriptsLoaded","insertBeforeEl","readyStates","loaded","_error","evtData","_checkComplete","_emptyWaitlist","resourceKey","errorEvt","waitlist","getTime","onerror","_loadInlineScripts","loadInlineScripts","exception","elementInDocument","_loadHtml","_validateApp","_validateContainerConfig","getContainerState","getContainerLocale","loadPlaceholders","addAll","appManifests","appStack","batches","callbackStack","haveManifests","preloaded","req","requests","manifestRequest","completeFunc","errorFunc","item","successFunc","requestFunc","successCallback","errorCallback","completeCallback","jqxhr","removeAllApps","autoloadEls"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"f2.min.js","sources":["f2.debug.js"],"names":["exports","F2","F2_TESTING_MODE","runInContext","context","has","name","undef","isSupported","value","serialized","stringify","stringifySupported","isExtended","toJSON","Number","String","getClass","a","Date","exception","parse","parseSupported","length","root","Object","SyntaxError","TypeError","Math","nativeJSON","isProperty","forEach","objectProto","prototype","toString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","functionClass","dateClass","numberClass","stringClass","arrayClass","booleanClass","charIndexBuggy","floor","Months","getDay","year","month","hasOwnProperty","property","constructor","members","__proto__","original","this","result","parent","call","object","callback","Properties","size","valueOf","isFunction","isConstructor","hasProperty","objectTypes","Escapes",92,34,8,12,10,13,9,"leadingZeroes","toPaddedString","width","slice","unicodePrefix","quote","index","useCharIndex","symbols","split","charCode","charCodeAt","charAt","serialize","properties","whitespace","indentation","stack","className","date","time","hours","minutes","seconds","milliseconds","results","element","prefix","push","join","pop","source","filter","Index","Source","fromCharCode","Unescapes",47,98,116,110,102,114,"abort","lex","begin","position","isSigned","get","hasMembers","update","walk","isLoader","define","amd","function","freeExports","nodeType","window","freeGlobal","module","global","JSON","previousJSON","isRestored","JSON3","noConflict","factory","document","w","Error","noGlobal","isArraylike","obj","type","jQuery","isWindow","winnow","elements","qualifier","not","grep","elem","i","risSimple","test","inArray","sibling","cur","dir","createOptions","options","optionsCache","each","match","rnotwhite","_","flag","detach","addEventListener","removeEventListener","completed","detachEvent","event","readyState","ready","dataAttr","key","data","undefined","replace","rmultiDash","toLowerCase","getAttribute","rbrace","parseJSON","e","isEmptyDataObject","isEmptyObject","internalData","pvt","acceptData","ret","thisCache","internalKey","expando","isNode","cache","id","deletedIds","guid","noop","extend","camelCase","internalRemoveData","isArray","concat","map","cleanData","support","deleteExpando","returnTrue","returnFalse","safeActiveElement","activeElement","err","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","createElement","getAll","tag","elems","found","getElementsByTagName","strundefined","querySelectorAll","childNodes","nodeName","merge","fixDefaultChecked","rcheckableType","defaultChecked","checked","manipulationTarget","content","firstChild","appendChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","exec","removeAttribute","setGlobalEval","refElements","_data","cloneCopyEvent","src","dest","hasData","l","oldData","curData","events","handle","add","fixCloneNodeIssues","noCloneEvent","removeEvent","text","parentNode","outerHTML","html5Clone","innerHTML","trim","defaultSelected","selected","defaultValue","actualDisplay","doc","style","appendTo","body","display","getDefaultComputedStyle","css","defaultDisplay","elemdisplay","iframe","documentElement","contentWindow","contentDocument","write","close","addGetHookIf","conditionFn","hookFn","condition","apply","arguments","vendorPropName","capName","toUpperCase","origName","cssPrefixes","showHide","show","hidden","values","isHidden","setPositiveNumber","subtract","matches","rnumsplit","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","Tween","prop","end","easing","init","createFxNow","setTimeout","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","createTween","animation","tween","collection","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","checkDisplay","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","done","hide","_removeData","start","propFilter","specialEasing","cssHooks","expand","Animation","stopped","animationPrefilters","deferred","Deferred","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","fx","timer","progress","complete","fail","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","error","buildParams","traditional","v","rbracket","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","getWindow","defaultView","parentWindow","indexOf","class2type","hasOwn","version","selector","fn","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","toArray","num","pushStack","prevObject","args","first","eq","last","len","j","sort","splice","copyIsArray","copy","clone","isPlainObject","random","isReady","msg","Array","isNumeric","ownLast","globalEval","execScript","string","makeArray","arr","second","invert","callbackInverse","callbackExpect","arg","proxy","Sizzle","seed","m","groups","old","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","contains","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","setAttribute","toSelector","rsibling","testContext","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","removeChild","addHandle","handler","attrHandle","siblingCheck","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","outerCache","newCache","dirruns","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","compilerCache","sortOrder","push_native","booleans","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","unloadHandler","els","node","hasCompare","top","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","innerText","lang","elemLang","hash","location","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","n","r","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","once","stopOnFalse","disable","remove","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","suffix","expanded","parts","unit","propHooks","eased","step","linear","p","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","andSelf","_jQuery","_$","$","Plugin","_relatedTarget","$this","Modal","DEFAULTS","$body","$element","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","VERSION","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","backdrop","keyboard","that","checkScrollbar","setScrollbar","escape","resize","transition","adjustDialog","enforceFocus","emulateTransitionEnd","hideModal","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","doAnimate","callbackRemove","modalIsOverflowing","clientHeight","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","right","abs","clientWidth","measureScrollbar","bodyPad","scrollDiv","modal","Constructor","$target","showEvent","_events","_conf","configure","conf","delimiter","maxListeners","wildcard","newListener","listenerTree","EventEmitter","searchListenerTree","tree","leaf","branch","xTree","xxTree","isolatedBranch","endReached","listeners","typeLength","currentType","nextType","_listeners","**","growListenerTree","listener","warned","defaultMaxListeners","console","trace","setMaxListeners","many","ttl","_origin","emit","_all","ns","onAny","addListener","leafs","iLeaf","offAny","removeListener","removeAllListeners","listenersAny","EventEmitter2","process","title","decodeURIComponent","isHostMethod","isHostObject","o","hasFlash","navigator","plugins","description","mimeTypes","enabledPlugin","flashVersion","flash","GetVariable","notSupportedException","major","minor","HAS_FLASH_THROTTLED_BUG","dom_onReady","domIsReady","domReadyQueue","whenReady","scope","getParentObject","ii","easyXDM","_easyXDM","IFRAME_PREFIX","getDomainName","reURI","getPort","getLocation","proto","domain","port","resolveUrl","reDoubleSlash","path","substring","pathname","lastIndexOf","protocol","host","reParent","appendQueryParameters","parameters","q","useHash","destination","noOverwrite","member","testForNamePropertyBug","channelId","HAS_NAME_PROPERTY_BUG","createFrame","config","frame","frameBorder","allowTransparency","onLoad","usePost","action","checkAcl","acl","re","substr","prepareTransportStack","stackEls","isHost","query","xdm_p","channel","secret","swf","product","userAgent","remoteHelper","xdm_c","xdm_s","xdm_e","useResize","useParent","usePolling","local","images","search","xdm_pa","xdm_po","HashTransport","ReliableBehavior","QueueBehavior","encode","maxLength","VerifyBehavior","initiate","PostMessageTransport","NameTransport","NixTransport","SameOriginTransport","FrameElementTransport","FlashTransport","lazy","chainStack","stackElements","stackEl","defaults","incoming","message","origin","up","outgoing","recipient","down","destroy","removeFromStack","un","emptyFn","sEvent","fpNotify","pair","evalJSON","getJSONObject","DomHelper","requiresJSON","_map","Fn","del","Socket","onMessage","onReady","postMessage","Rpc","jsonRpcConfig","RpcBehavior","pub","targetOrigin","onDOMReady","sendFn","addSwf","swfContainer","swfNoThrottle","flashVars","destroyChannel","swfdomain","createChannel","_getOrigin","uri","_window_onMessage","callerWindow","waitForReady","referrer","_sendMessage","sendMessage","_onReady","readyCount","_onMessage","remoteOrigin","_onLoad","remoteWindow","remoteUrl","_callerWindow","_msgNr","_handleHash","_lastMsg","_remoteOrigin","_pollHash","_listenerWindow","_attachListeners","_timer","pollInterval","tries","getRef","frames","ex","idOut","idIn","currentMessage","ack","waiting","destroying","doFragment","seq","fragments","startVerification","mySecret","theirSecret","_send","jsonrpc","serializer","_createMethod","definition","_callbacks","_callbackCounter","namedParams","_executeMethod","ex1","_absolutizeURI","removeDotSegments","output","_parseURI","authority","hostname","appConfigReplacer","Apps","overwrite","isFunc","S4","array","isLocalRequest","urlLower","isNativeDOMNode","testObject","bIsNode","Node","bIsElement","HTMLElement","log","_log","_logMethod","methods","replacer","space","_ct","_f2t","_handlerCollection","appCreateRoot","appRenderBefore","appDestroyBefore","appRenderAfter","appDestroyAfter","appRender","appDestroy","appScriptLoadFailed","_defaultMethods","appConfig","appHtml","$root","appInstance","app","appId","_createHandler","sNamespace","func_or_element","bDomNodeAppropriate","_validateToken","domNode","sToken","_removeHandler","eventKey","currentEventKey","eventCollection","newEvents","ec","currentEventHandler","newHandlerCollection","iCounter","hc","currentHandler","getToken","__f2GetToken","__trigger","passableArgs","hcl","$appRoot","arData","AppHandlers","APP_CREATE_ROOT","APP_RENDER_BEFORE","APP_RENDER","APP_RENDER_AFTER","APP_DESTROY_BEFORE","APP_DESTROY","APP_DESTROY_AFTER","APP_SCRIPT_LOAD_FAILED","App","appContent","AppConfig","enableBatchRequests","instanceId","isSecure","containerLocale","localeSupport","manifestUrl","minGridSize","ui","views","AppManifest","apps","inlineScripts","AppContent","ContainerConfig","afterAppRender","beforeAppRender","debugMode","locale","scriptErrorTimeout","isSecureAppPage","secureAppPagePath","supportedViews","UI","Mask","backgroundColor","loadingIcon","useClasses","appConfigs","loadScripts","inlines","loadStyles","Css","_PREFIX","APP","APP_CONTAINER","APP_TITLE","APP_VIEW","APP_VIEW_TRIGGER","MASK","MASK_CONTAINER","Events","_APP_EVENT_PREFIX","_CONTAINER_EVENT_PREFIX","APP_SCRIPTS_LOADED","APP_SYMBOL_CHANGE","APP_WIDTH_CHANGE","CONTAINER_SYMBOL_CHANGE","CONTAINER_WIDTH_CHANGE","CONTAINER_LOCALE_CHANGE","RESOURCE_FAILED_TO_LOAD","JSONP_CALLBACK","AppStatus","ERROR","SUCCESS","Sockets","EVENT","LOAD","RPC","RPC_CALLBACK","UI_RPC","Views","DATA_ATTRIBUTE","ABOUT","HELP","HOME","REMOVE","SETTINGS","_socketEmit","broadcast","Constants","timesToListen","_secureAppPagePath","_apps","_rEvents","_rRpc","_rRpcCallback","_rSocketLoad","_rUiCall","_createAppToContainerSocket","isLoaded","messagePlayback","socket","appParts","registerApps","_createContainerToAppSocket","appManifest","iframeProps","scrolling","_createRpcCallback","callbackId","parseFunction","functionName","parseMessage","regEx","callbacks","c","_registerCallback","messageType","cid","isRemote","register","_containerConfig","UI_Class","_appConfig","_updateHeight","outerHeight","_modalHtml","showCancel","hideMask","Modals","_renderAlert","_renderConfirm","alert","isInit","confirm","okCallback","cancelCallback","setTitle","showMask","showLoader","updateHeight","_rValidEvents","_isValid","containerConfig","showLoading","mask","background-color","background-image","background-position","background-repeat","min-height","z-index","_config","_bUsesAppHandlers","_sAppHandlerToken","_loadingScripts","_afterAppRender","appContainer","_appRender","_outerHtml","_beforeAppRender","_appScriptLoadFailed","scriptInfo","_createAppConfig","_getAppConfigFromElement","hasAttribute","contextJson","warn","_hasNonTextChildNodes","hasNodes","hasChildNodes","_hydrateContainerConfig","_initAppEvents","view","removeApp","_initContainerEvents","resizeTimeout","resizeHandler","_isPlaceholderElement","_isInit","_createAppInstance","_loadApps","_loadSecureApp","_findExistingScripts","_findExistingStyles","_loadStyles","cb","existingStyles","stylesFragment","useCreateStyleSheet","createStyleSheet","resourceUrl","_loadScripts","existingScripts","scriptCount","scriptsLoaded","insertBeforeEl","readyStates","loaded","_error","evtData","_checkComplete","_emptyWaitlist","resourceKey","errorEvt","waitlist","getTime","onerror","_loadInlineScripts","loadInlineScripts","eval","elementInDocument","_loadHtml","_validateApp","_validateContainerConfig","getContainerState","getContainerLocale","loadPlaceholders","addAll","appManifests","appStack","batches","callbackStack","haveManifests","preloaded","req","requests","manifestRequest","completeFunc","errorFunc","item","successFunc","requestFunc","successCallback","errorCallback","completeCallback","jqxhr","removeAllApps","autoloadEls"],"mappings":"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"} \ No newline at end of file diff --git a/dist/f2.no-bootstrap.js b/dist/f2.no-bootstrap.js index 5e28f64a..0c394782 100644 --- a/dist/f2.no-bootstrap.js +++ b/dist/f2.no-bootstrap.js @@ -14025,7 +14025,7 @@ global.easyXDM = easyXDM; })(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent); /*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/dist/f2.no-bootstrap.min.js b/dist/f2.no-bootstrap.min.js index dea16c6d..cc1a668e 100644 --- a/dist/f2.no-bootstrap.min.js +++ b/dist/f2.no-bootstrap.min.js @@ -1,4 +1,4 @@ -/*! F2 - v1.4.2 - 06-20-2016 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! JSON.org requires the following notice to accompany json2: @@ -47,7 +47,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/dist/f2.no-easyXDM.js b/dist/f2.no-easyXDM.js index a76b394c..5baea3eb 100644 --- a/dist/f2.no-easyXDM.js +++ b/dist/f2.no-easyXDM.js @@ -11777,7 +11777,7 @@ var $, jQuery = $ = window.jQuery.noConflict(true); /*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/dist/f2.no-easyXDM.min.js b/dist/f2.no-easyXDM.min.js index 91b90576..555376f2 100644 --- a/dist/f2.no-easyXDM.min.js +++ b/dist/f2.no-easyXDM.min.js @@ -1,4 +1,4 @@ -/*! F2 - v1.4.2 - 06-20-2016 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! JSON.org requires the following notice to accompany json2: @@ -47,7 +47,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;ea?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/dist/f2.no-third-party.js b/dist/f2.no-third-party.js index 3edae601..89bafa0d 100644 --- a/dist/f2.no-third-party.js +++ b/dist/f2.no-third-party.js @@ -5,7 +5,7 @@ } /*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/docs/dist/extending-f2.html b/docs/dist/extending-f2.html index 8cfa6283..6737677d 100644 --- a/docs/dist/extending-f2.html +++ b/docs/dist/extending-f2.html @@ -165,7 +165,7 @@

There is a page on the wiki tracking deprecated features in F2. Starting with version 1.2, three ContainerConfig properties have been retired. As F2 features and/or F2.js APIs are deprecated, we will attempt to give reasonable advance notice via any or all of the F2 communication channels. In addition, we will strive to ensure that backward compatibility will be maintained for at least one major version of F2. For example, if Feature X is deprecated in version 1.3, we will attempt to maintain backward compatibility until the next major release (version 2.0). F2 documentation will be updated accordingly to reflect any changes, and the conversation behind deprecated features will be publicly available on GitHub.

F2 uses third party libraries inside F2.js (see Framework: Choices). These open-source libraries are all on their own release schedules. We cannot guarantee that we will always stay abreast and in tune with such latest releases, but in an effort to improve the F2 framework, we will attempt to update F2.js so that it uses the latest, most stable and most secure version of the third party software. These updates to F2 will be made through the normal release process on GitHub and comments will be open.

-

Have a question? Ask it on the F2 Google Group (or send an email to OpenF2@googlegroups.com) or start a discussion using Issues on GitHub.

+

Have a question? Ask it on the F2 Google Group (or send an email to OpenF2@googlegroups.com) or start a discussion using Issues on GitHub.

To track bugs, enhancements or other issues, F2 is using Issues on GitHub.


F2 is licensed under the Apache License version 2.0. Details are available in the project readme.

diff --git a/docs/dist/sdk/classes/F2.App.html b/docs/dist/sdk/classes/F2.App.html index f4458142..dde08618 100644 --- a/docs/dist/sdk/classes/F2.App.html +++ b/docs/dist/sdk/classes/F2.App.html @@ -214,7 +214,7 @@

F2.App Class

- Defined in: sdk\src\classes.js:6 + Defined in: sdk/src/classes.js:6
@@ -279,7 +279,7 @@

- sdk\src\classes.js:6 + sdk/src/classes.js:6

@@ -453,7 +453,7 @@

- sdk\src\classes.js:20 + sdk/src/classes.js:20

diff --git a/docs/dist/sdk/classes/F2.AppConfig.html b/docs/dist/sdk/classes/F2.AppConfig.html index 70245cce..63c2168a 100644 --- a/docs/dist/sdk/classes/F2.AppConfig.html +++ b/docs/dist/sdk/classes/F2.AppConfig.html @@ -211,7 +211,7 @@

F2.AppConfig Class

- Defined in: sdk\src\classes.js:29 + Defined in: sdk/src/classes.js:29
@@ -487,7 +487,7 @@

- sdk\src\classes.js:34 + sdk/src/classes.js:34

@@ -537,7 +537,7 @@

- sdk\src\classes.js:85 + sdk/src/classes.js:85

@@ -593,7 +593,7 @@

- sdk\src\classes.js:42 + sdk/src/classes.js:42

@@ -642,7 +642,7 @@

- sdk\src\classes.js:48 + sdk/src/classes.js:48

@@ -693,7 +693,7 @@

- sdk\src\classes.js:55 + sdk/src/classes.js:55

@@ -746,7 +746,7 @@

- sdk\src\classes.js:65 + sdk/src/classes.js:65

@@ -797,7 +797,7 @@

- sdk\src\classes.js:74 + sdk/src/classes.js:74

@@ -852,7 +852,7 @@

- sdk\src\classes.js:97 + sdk/src/classes.js:97

@@ -907,7 +907,7 @@

- sdk\src\classes.js:108 + sdk/src/classes.js:108

@@ -957,7 +957,7 @@

- sdk\src\classes.js:116 + sdk/src/classes.js:116

@@ -1009,7 +1009,7 @@

- sdk\src\classes.js:125 + sdk/src/classes.js:125

@@ -1063,7 +1063,7 @@

- sdk\src\classes.js:135 + sdk/src/classes.js:135

@@ -1117,7 +1117,7 @@

- sdk\src\classes.js:145 + sdk/src/classes.js:145

@@ -1166,7 +1166,7 @@

- sdk\src\classes.js:152 + sdk/src/classes.js:152

@@ -1217,7 +1217,7 @@

- sdk\src\classes.js:161 + sdk/src/classes.js:161

@@ -1268,7 +1268,7 @@

- sdk\src\classes.js:170 + sdk/src/classes.js:170

diff --git a/docs/dist/sdk/classes/F2.AppHandlers.html b/docs/dist/sdk/classes/F2.AppHandlers.html index 0d634d44..9779a86b 100644 --- a/docs/dist/sdk/classes/F2.AppHandlers.html +++ b/docs/dist/sdk/classes/F2.AppHandlers.html @@ -240,7 +240,7 @@

Order of Execution

@@ -508,7 +508,7 @@

- sdk\src\app_handlers.js:205 + sdk/src/app_handlers.js:205

@@ -585,7 +585,7 @@

- sdk\src\app_handlers.js:220 + sdk/src/app_handlers.js:220

@@ -680,7 +680,7 @@

- sdk\src\app_handlers.js:191 + sdk/src/app_handlers.js:191

@@ -755,7 +755,7 @@

- sdk\src\app_handlers.js:373 + sdk/src/app_handlers.js:373

@@ -886,7 +886,7 @@

- sdk\src\app_handlers.js:288 + sdk/src/app_handlers.js:288

@@ -1043,7 +1043,7 @@

- sdk\src\app_handlers.js:313 + sdk/src/app_handlers.js:313

diff --git a/docs/dist/sdk/classes/F2.AppManifest.AppContent.html b/docs/dist/sdk/classes/F2.AppManifest.AppContent.html index 6a3fe0bf..8db1f46c 100644 --- a/docs/dist/sdk/classes/F2.AppManifest.AppContent.html +++ b/docs/dist/sdk/classes/F2.AppManifest.AppContent.html @@ -211,7 +211,7 @@

F2.AppManifest.AppContent Class

- Defined in: sdk\src\classes.js:218 + Defined in: sdk/src/classes.js:218
@@ -323,7 +323,7 @@

- sdk\src\classes.js:223 + sdk/src/classes.js:223

@@ -372,7 +372,7 @@

- sdk\src\classes.js:230 + sdk/src/classes.js:230

@@ -421,7 +421,7 @@

- sdk\src\classes.js:237 + sdk/src/classes.js:237

diff --git a/docs/dist/sdk/classes/F2.AppManifest.html b/docs/dist/sdk/classes/F2.AppManifest.html index 2b4e8922..e2205847 100644 --- a/docs/dist/sdk/classes/F2.AppManifest.html +++ b/docs/dist/sdk/classes/F2.AppManifest.html @@ -211,7 +211,7 @@

F2.AppManifest Class

- Defined in: sdk\src\classes.js:183 + Defined in: sdk/src/classes.js:183
@@ -334,7 +334,7 @@

- sdk\src\classes.js:188 + sdk/src/classes.js:188

@@ -384,7 +384,7 @@

- sdk\src\classes.js:196 + sdk/src/classes.js:196

@@ -433,7 +433,7 @@

- sdk\src\classes.js:203 + sdk/src/classes.js:203

@@ -482,7 +482,7 @@

- sdk\src\classes.js:210 + sdk/src/classes.js:210

diff --git a/docs/dist/sdk/classes/F2.Constants.AppHandlers.html b/docs/dist/sdk/classes/F2.Constants.AppHandlers.html index 91e20e91..dee47fb2 100644 --- a/docs/dist/sdk/classes/F2.Constants.AppHandlers.html +++ b/docs/dist/sdk/classes/F2.Constants.AppHandlers.html @@ -211,7 +211,7 @@

F2.Constants.AppHandlers Class

@@ -409,7 +409,7 @@

- sdk\src\app_handlers.js:429 + sdk/src/app_handlers.js:429

@@ -483,7 +483,7 @@

- sdk\src\app_handlers.js:550 + sdk/src/app_handlers.js:550

@@ -568,7 +568,7 @@

- sdk\src\app_handlers.js:583 + sdk/src/app_handlers.js:583

@@ -640,7 +640,7 @@

- sdk\src\app_handlers.js:530 + sdk/src/app_handlers.js:530

@@ -712,7 +712,7 @@

- sdk\src\app_handlers.js:471 + sdk/src/app_handlers.js:471

@@ -803,7 +803,7 @@

- sdk\src\app_handlers.js:510 + sdk/src/app_handlers.js:510

@@ -875,7 +875,7 @@

- sdk\src\app_handlers.js:451 + sdk/src/app_handlers.js:451

@@ -947,7 +947,7 @@

- sdk\src\app_handlers.js:603 + sdk/src/app_handlers.js:603

diff --git a/docs/dist/sdk/classes/F2.Constants.Css.html b/docs/dist/sdk/classes/F2.Constants.Css.html index 62f83b70..f521a3ae 100644 --- a/docs/dist/sdk/classes/F2.Constants.Css.html +++ b/docs/dist/sdk/classes/F2.Constants.Css.html @@ -211,7 +211,7 @@

F2.Constants.Css Class

- Defined in: sdk\src\constants.js:7 + Defined in: sdk/src/constants.js:7
@@ -400,7 +400,7 @@

- sdk\src\constants.js:17 + sdk/src/constants.js:17

@@ -456,7 +456,7 @@

- sdk\src\constants.js:28 + sdk/src/constants.js:28

@@ -510,7 +510,7 @@

- sdk\src\constants.js:37 + sdk/src/constants.js:37

@@ -565,7 +565,7 @@

- sdk\src\constants.js:47 + sdk/src/constants.js:47

@@ -622,7 +622,7 @@

- sdk\src\constants.js:59 + sdk/src/constants.js:59

@@ -681,7 +681,7 @@

- sdk\src\constants.js:73 + sdk/src/constants.js:73

@@ -736,7 +736,7 @@

- sdk\src\constants.js:83 + sdk/src/constants.js:83

diff --git a/docs/dist/sdk/classes/F2.Constants.Events.html b/docs/dist/sdk/classes/F2.Constants.Events.html index 317ccd58..e2db3d62 100644 --- a/docs/dist/sdk/classes/F2.Constants.Events.html +++ b/docs/dist/sdk/classes/F2.Constants.Events.html @@ -211,7 +211,7 @@

F2.Constants.Events Class

- Defined in: sdk\src\constants.js:95 + Defined in: sdk/src/constants.js:95
@@ -401,7 +401,7 @@

- sdk\src\constants.js:106 + sdk/src/constants.js:106

@@ -455,7 +455,7 @@

- sdk\src\constants.js:115 + sdk/src/constants.js:115

@@ -511,7 +511,7 @@

- sdk\src\constants.js:128 + sdk/src/constants.js:128

@@ -568,7 +568,7 @@

- sdk\src\constants.js:165 + sdk/src/constants.js:165

@@ -625,7 +625,7 @@

- sdk\src\constants.js:142 + sdk/src/constants.js:142

@@ -682,7 +682,7 @@

- sdk\src\constants.js:156 + sdk/src/constants.js:156

@@ -738,7 +738,7 @@

- sdk\src\constants.js:179 + sdk/src/constants.js:179

diff --git a/docs/dist/sdk/classes/F2.Constants.Sockets.html b/docs/dist/sdk/classes/F2.Constants.Sockets.html index f4cd3446..10cb1b83 100644 --- a/docs/dist/sdk/classes/F2.Constants.Sockets.html +++ b/docs/dist/sdk/classes/F2.Constants.Sockets.html @@ -211,7 +211,7 @@

F2.Constants.Sockets Class

@@ -362,7 +362,7 @@

- sdk\src\constants.js:205 + sdk/src/constants.js:205

@@ -416,7 +416,7 @@

- sdk\src\constants.js:214 + sdk/src/constants.js:214

@@ -471,7 +471,7 @@

- sdk\src\constants.js:226 + sdk/src/constants.js:226

@@ -525,7 +525,7 @@

- sdk\src\constants.js:235 + sdk/src/constants.js:235

@@ -579,7 +579,7 @@

- sdk\src\constants.js:244 + sdk/src/constants.js:244

diff --git a/docs/dist/sdk/classes/F2.Constants.Views.html b/docs/dist/sdk/classes/F2.Constants.Views.html index 59c88a12..c41fd7c5 100644 --- a/docs/dist/sdk/classes/F2.Constants.Views.html +++ b/docs/dist/sdk/classes/F2.Constants.Views.html @@ -215,7 +215,7 @@

F2.Constants.Views Class

@@ -377,7 +377,7 @@

- sdk\src\constants.js:272 + sdk/src/constants.js:272

@@ -430,7 +430,7 @@

- sdk\src\constants.js:263 + sdk/src/constants.js:263

@@ -484,7 +484,7 @@

- sdk\src\constants.js:280 + sdk/src/constants.js:280

@@ -537,7 +537,7 @@

- sdk\src\constants.js:288 + sdk/src/constants.js:288

@@ -591,7 +591,7 @@

- sdk\src\constants.js:297 + sdk/src/constants.js:297

@@ -645,7 +645,7 @@

- sdk\src\constants.js:306 + sdk/src/constants.js:306

diff --git a/docs/dist/sdk/classes/F2.Constants.html b/docs/dist/sdk/classes/F2.Constants.html index f1824d2e..1b8b47d0 100644 --- a/docs/dist/sdk/classes/F2.Constants.html +++ b/docs/dist/sdk/classes/F2.Constants.html @@ -211,7 +211,7 @@

F2.Constants Class

- Defined in: sdk\src\constants.js:1 + Defined in: sdk/src/constants.js:1
diff --git a/docs/dist/sdk/classes/F2.ContainerConfig.UI.Mask.html b/docs/dist/sdk/classes/F2.ContainerConfig.UI.Mask.html index a6f71cea..442eaee7 100644 --- a/docs/dist/sdk/classes/F2.ContainerConfig.UI.Mask.html +++ b/docs/dist/sdk/classes/F2.ContainerConfig.UI.Mask.html @@ -213,7 +213,7 @@

F2.ContainerConfig.UI.Mask Class

- Defined in: sdk\src\classes.js:344 + Defined in: sdk/src/classes.js:344
@@ -347,7 +347,7 @@

- sdk\src\classes.js:351 + sdk/src/classes.js:351

@@ -398,7 +398,7 @@

- sdk\src\classes.js:358 + sdk/src/classes.js:358

@@ -447,7 +447,7 @@

- sdk\src\classes.js:364 + sdk/src/classes.js:364

@@ -498,7 +498,7 @@

- sdk\src\classes.js:371 + sdk/src/classes.js:371

@@ -551,7 +551,7 @@

- sdk\src\classes.js:380 + sdk/src/classes.js:380

diff --git a/docs/dist/sdk/classes/F2.ContainerConfig.UI.html b/docs/dist/sdk/classes/F2.ContainerConfig.UI.html index 06f0898d..0b63ce48 100644 --- a/docs/dist/sdk/classes/F2.ContainerConfig.UI.html +++ b/docs/dist/sdk/classes/F2.ContainerConfig.UI.html @@ -211,7 +211,7 @@

F2.ContainerConfig.UI Class

- Defined in: sdk\src\classes.js:339 + Defined in: sdk/src/classes.js:339
diff --git a/docs/dist/sdk/classes/F2.ContainerConfig.html b/docs/dist/sdk/classes/F2.ContainerConfig.html index c522d6f9..1805fbc9 100644 --- a/docs/dist/sdk/classes/F2.ContainerConfig.html +++ b/docs/dist/sdk/classes/F2.ContainerConfig.html @@ -212,7 +212,7 @@

F2.ContainerConfig Class

- Defined in: sdk\src\classes.js:245 + Defined in: sdk/src/classes.js:245
@@ -692,7 +692,7 @@

- sdk\src\classes.js:251 + sdk/src/classes.js:251

@@ -824,7 +824,7 @@

- sdk\src\classes.js:263 + sdk/src/classes.js:263

@@ -939,7 +939,7 @@

- sdk\src\classes.js:277 + sdk/src/classes.js:277

@@ -1071,7 +1071,7 @@

- sdk\src\classes.js:389 + sdk/src/classes.js:389

@@ -1284,7 +1284,7 @@

- sdk\src\classes.js:453 + sdk/src/classes.js:453

@@ -1429,7 +1429,7 @@

- sdk\src\classes.js:475 + sdk/src/classes.js:475

@@ -1574,7 +1574,7 @@

- sdk\src\classes.js:497 + sdk/src/classes.js:497

@@ -1703,7 +1703,7 @@

- sdk\src\classes.js:288 + sdk/src/classes.js:288

@@ -1754,7 +1754,7 @@

- sdk\src\classes.js:314 + sdk/src/classes.js:314

@@ -1804,7 +1804,7 @@

- sdk\src\classes.js:517 + sdk/src/classes.js:517

@@ -1868,7 +1868,7 @@

- sdk\src\classes.js:532 + sdk/src/classes.js:532

@@ -1932,7 +1932,7 @@

- sdk\src\classes.js:295 + sdk/src/classes.js:295

@@ -1988,7 +1988,7 @@

- sdk\src\classes.js:307 + sdk/src/classes.js:307

@@ -2039,7 +2039,7 @@

- sdk\src\classes.js:321 + sdk/src/classes.js:321

@@ -2090,7 +2090,7 @@

- sdk\src\classes.js:330 + sdk/src/classes.js:330

@@ -2141,7 +2141,7 @@

- sdk\src\classes.js:437 + sdk/src/classes.js:437

diff --git a/docs/dist/sdk/classes/F2.Events.html b/docs/dist/sdk/classes/F2.Events.html index 89d37b2e..aa82f0bc 100644 --- a/docs/dist/sdk/classes/F2.Events.html +++ b/docs/dist/sdk/classes/F2.Events.html @@ -212,7 +212,7 @@

F2.Events Class

- Defined in: sdk\src\events.js:1 + Defined in: sdk/src/events.js:1
@@ -521,7 +521,7 @@

- sdk\src\events.js:16 + sdk/src/events.js:16

@@ -636,7 +636,7 @@

- sdk\src\events.js:27 + sdk/src/events.js:27

@@ -757,7 +757,7 @@

- sdk\src\events.js:38 + sdk/src/events.js:38

@@ -888,7 +888,7 @@

- sdk\src\events.js:52 + sdk/src/events.js:52

@@ -999,7 +999,7 @@

- sdk\src\events.js:61 + sdk/src/events.js:61

@@ -1111,7 +1111,7 @@

- sdk\src\events.js:71 + sdk/src/events.js:71

diff --git a/docs/dist/sdk/classes/F2.Rpc.html b/docs/dist/sdk/classes/F2.Rpc.html index 5c2bbc19..ca60c405 100644 --- a/docs/dist/sdk/classes/F2.Rpc.html +++ b/docs/dist/sdk/classes/F2.Rpc.html @@ -211,7 +211,7 @@

F2.Rpc Class

- Defined in: sdk\src\rpc.js:1 + Defined in: sdk/src/rpc.js:1
@@ -618,7 +618,7 @@

- sdk\src\rpc.js:15 + sdk/src/rpc.js:15

@@ -692,7 +692,7 @@

- sdk\src\rpc.js:69 + sdk/src/rpc.js:69

@@ -806,7 +806,7 @@

- sdk\src\rpc.js:117 + sdk/src/rpc.js:117

@@ -938,7 +938,7 @@

- sdk\src\rpc.js:135 + sdk/src/rpc.js:135

@@ -1061,7 +1061,7 @@

- sdk\src\rpc.js:216 + sdk/src/rpc.js:216

@@ -1170,7 +1170,7 @@

- sdk\src\rpc.js:230 + sdk/src/rpc.js:230

@@ -1293,7 +1293,7 @@

- sdk\src\rpc.js:243 + sdk/src/rpc.js:243

@@ -1432,7 +1432,7 @@

- sdk\src\rpc.js:273 + sdk/src/rpc.js:273

@@ -1526,7 +1526,7 @@

- sdk\src\rpc.js:289 + sdk/src/rpc.js:289

@@ -1637,7 +1637,7 @@

- sdk\src\rpc.js:308 + sdk/src/rpc.js:308

diff --git a/docs/dist/sdk/classes/F2.UI.Modals.html b/docs/dist/sdk/classes/F2.UI.Modals.html index cea31e02..4c1560c6 100644 --- a/docs/dist/sdk/classes/F2.UI.Modals.html +++ b/docs/dist/sdk/classes/F2.UI.Modals.html @@ -211,7 +211,7 @@

F2.UI.Modals Class

- Defined in: sdk\src\ui.js:67 + Defined in: sdk/src/ui.js:67
@@ -383,7 +383,7 @@

- sdk\src\ui.js:83 + sdk/src/ui.js:83

@@ -502,7 +502,7 @@

- sdk\src\ui.js:118 + sdk/src/ui.js:118

diff --git a/docs/dist/sdk/classes/F2.UI.Views.html b/docs/dist/sdk/classes/F2.UI.Views.html index 69bbcfc7..e9a098f4 100644 --- a/docs/dist/sdk/classes/F2.UI.Views.html +++ b/docs/dist/sdk/classes/F2.UI.Views.html @@ -211,7 +211,7 @@

F2.UI.Views Class

- Defined in: sdk\src\ui.js:205 + Defined in: sdk/src/ui.js:205
@@ -397,7 +397,7 @@

- sdk\src\ui.js:228 + sdk/src/ui.js:228

@@ -495,7 +495,7 @@

- sdk\src\ui.js:260 + sdk/src/ui.js:260

@@ -606,7 +606,7 @@

- sdk\src\ui.js:272 + sdk/src/ui.js:272

diff --git a/docs/dist/sdk/classes/F2.UI.html b/docs/dist/sdk/classes/F2.UI.html index 2539aae8..aac46f75 100644 --- a/docs/dist/sdk/classes/F2.UI.html +++ b/docs/dist/sdk/classes/F2.UI.html @@ -211,7 +211,7 @@

F2.UI Class

- Defined in: sdk\src\ui.js:5 + Defined in: sdk/src/ui.js:5
@@ -264,7 +264,7 @@

- sdk\src\ui.js:5 + sdk/src/ui.js:5

@@ -614,7 +614,7 @@

- sdk\src\ui.js:58 + sdk/src/ui.js:58

@@ -712,7 +712,7 @@

- sdk\src\ui.js:290 + sdk/src/ui.js:290

@@ -820,7 +820,7 @@

- sdk\src\ui.js:332 + sdk/src/ui.js:332

@@ -908,7 +908,7 @@

- sdk\src\ui.js:163 + sdk/src/ui.js:163

@@ -1006,7 +1006,7 @@

- sdk\src\ui.js:187 + sdk/src/ui.js:187

@@ -1126,7 +1126,7 @@

- sdk\src\ui.js:345 + sdk/src/ui.js:345

@@ -1248,7 +1248,7 @@

- sdk\src\ui.js:197 + sdk/src/ui.js:197

diff --git a/docs/dist/sdk/classes/F2.html b/docs/dist/sdk/classes/F2.html index 57191651..917d90a0 100644 --- a/docs/dist/sdk/classes/F2.html +++ b/docs/dist/sdk/classes/F2.html @@ -211,7 +211,7 @@

F2 Class

- Defined in: sdk\src\container.js:1 + Defined in: sdk/src/container.js:1
@@ -1339,7 +1339,7 @@

- sdk\src\F2.js:39 + sdk/src/F2.js:39

@@ -1468,7 +1468,7 @@

- sdk\src\container.js:14 + sdk/src/container.js:14

@@ -1599,7 +1599,7 @@

- sdk\src\container.js:41 + sdk/src/container.js:41

@@ -1710,7 +1710,7 @@

- sdk\src\container.js:62 + sdk/src/container.js:62

@@ -1818,7 +1818,7 @@

- sdk\src\container.js:90 + sdk/src/container.js:90

@@ -1924,7 +1924,7 @@

- sdk\src\container.js:277 + sdk/src/container.js:277

@@ -2015,7 +2015,7 @@

- sdk\src\container.js:120 + sdk/src/container.js:120

@@ -2120,7 +2120,7 @@

- sdk\src\container.js:160 + sdk/src/container.js:160

@@ -2225,7 +2225,7 @@

- sdk\src\container.js:182 + sdk/src/container.js:182

@@ -2306,7 +2306,7 @@

- sdk\src\container.js:203 + sdk/src/container.js:203

@@ -2363,7 +2363,7 @@

- sdk\src\container.js:226 + sdk/src/container.js:226

@@ -2420,7 +2420,7 @@

- sdk\src\container.js:267 + sdk/src/container.js:267

@@ -2501,7 +2501,7 @@

- sdk\src\container.js:251 + sdk/src/container.js:251

@@ -2614,7 +2614,7 @@

- sdk\src\container.js:76 + sdk/src/container.js:76

@@ -2724,7 +2724,7 @@

- sdk\src\F2.js:76 + sdk/src/F2.js:76

@@ -2830,7 +2830,7 @@

- sdk\src\container.js:710 + sdk/src/container.js:710

@@ -2925,7 +2925,7 @@

- sdk\src\container.js:732 + sdk/src/container.js:732

@@ -2994,7 +2994,7 @@

- sdk\src\F2.js:102 + sdk/src/F2.js:102

@@ -3072,7 +3072,7 @@

- sdk\src\F2.js:150 + sdk/src/F2.js:150

@@ -3199,7 +3199,7 @@

- sdk\src\container.js:778 + sdk/src/container.js:778

@@ -3268,7 +3268,7 @@

- sdk\src\container.js:761 + sdk/src/container.js:761

@@ -3337,7 +3337,7 @@

- sdk\src\F2.js:190 + sdk/src/F2.js:190

@@ -3422,7 +3422,7 @@

- sdk\src\F2.js:202 + sdk/src/F2.js:202

@@ -3541,7 +3541,7 @@

- sdk\src\container.js:791 + sdk/src/container.js:791

@@ -3621,7 +3621,7 @@

- sdk\src\container.js:819 + sdk/src/container.js:819

@@ -3700,7 +3700,7 @@

- sdk\src\F2.js:212 + sdk/src/F2.js:212

@@ -3803,7 +3803,7 @@

- sdk\src\F2.js:256 + sdk/src/F2.js:256

@@ -3914,7 +3914,7 @@

- sdk\src\container.js:306 + sdk/src/container.js:306

@@ -4021,7 +4021,7 @@

- sdk\src\container.js:825 + sdk/src/container.js:825

@@ -4120,7 +4120,7 @@

- sdk\src\container.js:644 + sdk/src/container.js:644

@@ -4232,7 +4232,7 @@

- sdk\src\F2.js:275 + sdk/src/F2.js:275

@@ -4355,7 +4355,7 @@

- sdk\src\F2.js:331 + sdk/src/F2.js:331

@@ -4464,7 +4464,7 @@

- sdk\src\container.js:875 + sdk/src/container.js:875

@@ -4659,7 +4659,7 @@

- sdk\src\container.js:1202 + sdk/src/container.js:1202

@@ -4724,7 +4724,7 @@

- sdk\src\container.js:1217 + sdk/src/container.js:1217

@@ -4825,7 +4825,7 @@

- sdk\src\F2.js:340 + sdk/src/F2.js:340

@@ -4959,7 +4959,7 @@

- sdk\src\F2.js:361 + sdk/src/F2.js:361

@@ -5031,7 +5031,7 @@

- sdk\src\F2.js:114 + sdk/src/F2.js:114

diff --git a/docs/dist/sdk/data.json b/docs/dist/sdk/data.json index bea13be5..f872a523 100644 --- a/docs/dist/sdk/data.json +++ b/docs/dist/sdk/data.json @@ -1,8 +1,8 @@ { "project": {}, "files": { - "sdk\\src\\F2.js": { - "name": "sdk\\src\\F2.js", + "sdk/src/F2.js": { + "name": "sdk/src/F2.js", "modules": { "f2": 1 }, @@ -12,8 +12,8 @@ }, "namespaces": {} }, - "sdk\\src\\app_handlers.js": { - "name": "sdk\\src\\app_handlers.js", + "sdk/src/app_handlers.js": { + "name": "sdk/src/app_handlers.js", "modules": {}, "classes": { "F2.AppHandlers": 1, @@ -22,8 +22,8 @@ "fors": {}, "namespaces": {} }, - "sdk\\src\\classes.js": { - "name": "sdk\\src\\classes.js", + "sdk/src/classes.js": { + "name": "sdk/src/classes.js", "modules": {}, "classes": { "F2.App": 1, @@ -39,8 +39,8 @@ }, "namespaces": {} }, - "sdk\\src\\constants.js": { - "name": "sdk\\src\\constants.js", + "sdk/src/constants.js": { + "name": "sdk/src/constants.js", "modules": {}, "classes": { "F2.Constants": 1, @@ -52,8 +52,8 @@ "fors": {}, "namespaces": {} }, - "sdk\\src\\container.js": { - "name": "sdk\\src\\container.js", + "sdk/src/container.js": { + "name": "sdk/src/container.js", "modules": {}, "classes": { "F2": 1 @@ -61,8 +61,8 @@ "fors": {}, "namespaces": {} }, - "sdk\\src\\events.js": { - "name": "sdk\\src\\events.js", + "sdk/src/events.js": { + "name": "sdk/src/events.js", "modules": {}, "classes": { "F2.Events": 1 @@ -70,8 +70,8 @@ "fors": {}, "namespaces": {} }, - "sdk\\src\\rpc.js": { - "name": "sdk\\src\\rpc.js", + "sdk/src/rpc.js": { + "name": "sdk/src/rpc.js", "modules": {}, "classes": { "F2.Rpc": 1 @@ -79,8 +79,8 @@ "fors": {}, "namespaces": {} }, - "sdk\\src\\ui.js": { - "name": "sdk\\src\\ui.js", + "sdk/src/ui.js": { + "name": "sdk/src/ui.js", "modules": {}, "classes": { "F2.UI": 1, @@ -130,7 +130,7 @@ }, "namespaces": {}, "tag": "main", - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 205, "description": "Open F2", "itemtype": "main" @@ -147,7 +147,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 1, "description": "Root namespace of the F2 SDK" }, @@ -161,7 +161,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 1, "description": "The new `AppHandlers` functionality provides Container Developers a higher level of control over configuring app rendering and interaction.\n\n

\nThe addition of `F2.AppHandlers` replaces the previous {{#crossLink \"F2.ContainerConfig\"}}{{/crossLink}} properties `beforeAppRender`, `appRender`, and `afterAppRender`. These methods were deprecated—but not removed—in version 1.2. They will be permanently removed in a future version of F2.\n

\n\n

\nStarting with F2 version 1.2, `AppHandlers` is the preferred method for Container Developers to manage app layout.\n

\n\n### Order of Execution\n\n**App Rendering**\n\n0. {{#crossLink \"F2/registerApps\"}}F2.registerApps(){{/crossLink}} method is called by the Container Developer and the following methods are run for *each* {{#crossLink \"F2.AppConfig\"}}{{/crossLink}} passed.\n1. **'appCreateRoot'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_CREATE\\_ROOT*) handlers are fired in the order they were attached.\n2. **'appRenderBefore'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_RENDER\\_BEFORE*) handlers are fired in the order they were attached.\n3. Each app's `manifestUrl` is requested asynchronously; on success the following methods are fired.\n3. **'appRender'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_RENDER*) handlers are fired in the order they were attached.\n4. **'appRenderAfter'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_RENDER\\_AFTER*) handlers are fired in the order they were attached.\n\n\n**App Removal**\n\n0. {{#crossLink \"F2/removeApp\"}}F2.removeApp(){{/crossLink}} with a specific {{#crossLink \"F2.AppConfig/instanceId \"}}{{/crossLink}} or {{#crossLink \"F2/removeAllApps\"}}F2.removeAllApps(){{/crossLink}} method is called by the Container Developer and the following methods are run.\n1. **'appDestroyBefore'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_DESTROY\\_BEFORE*) handlers are fired in the order they were attached.\n2. **'appDestroy'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_DESTROY*) handlers are fired in the order they were attached.\n3. **'appDestroyAfter'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_DESTROY\\_AFTER*) handlers are fired in the order they were attached.\n\n**Error Handling**\n\n0. **'appScriptLoadFailed'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_SCRIPT\\_LOAD\\_FAILED*) handlers are fired in the order they were attached." }, @@ -175,7 +175,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 422, "description": "A convenient collection of all available appHandler events." }, @@ -189,7 +189,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 6, "description": "The App Class is an optional class that can be namespaced onto the \n{{#crossLink \"F2\\Apps\"}}{{/crossLink}} namespace. The \n[F2 Docs](../../app-development.html#app-class)\nhas more information on the usage of the App Class.", "is_constructor": 1, @@ -221,7 +221,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 29, "description": "The AppConfig object represents an app's meta data" }, @@ -235,7 +235,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 183, "description": "The assets needed to render an app on the page" }, @@ -249,7 +249,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 218, "description": "The AppContent object" }, @@ -263,7 +263,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 245, "description": "An object containing configuration information for the\n[container](../../container-development.html)" }, @@ -277,7 +277,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 339, "description": "An object containing configuration defaults for F2.UI" }, @@ -291,7 +291,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 344, "description": "An object containing configuration defaults for the \nF2.UI.{{#crossLink \"F2.UI/showMask\"}}{{/crossLink}} and\nF2.UI.{{#crossLink \"F2.UI/hideMask\"}}{{/crossLink}} methods." }, @@ -305,7 +305,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 1, "description": "Constants used throughout the Open Financial Framework", "static": 1 @@ -320,7 +320,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 7, "description": "CSS class constants" }, @@ -334,7 +334,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 95, "description": "Events constants" }, @@ -348,7 +348,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 199, "description": "Constants for use with cross-domain sockets", "access": "protected", @@ -364,7 +364,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 254, "description": "The available view types to apps. The view should be specified by applying\nthe {{#crossLink \"F2.Constants.Css\"}}{{/crossLink}}.APP\\_VIEW class to the\ncontaining DOM Element. A DATA\\_ATTRIBUTE attribute should be added to the\nElement as well which defines what view type is represented.\nThe `hide` class can be applied to views that should be hidden by default." }, @@ -378,7 +378,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\events.js", + "file": "sdk/src/events.js", "line": 1, "description": "Handles [Context](../../app-development.html#context) passing from\ncontainers to apps and apps to apps." }, @@ -392,7 +392,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\rpc.js", + "file": "sdk/src/rpc.js", "line": 1, "description": "Handles socket communication between the container and secure apps" }, @@ -406,7 +406,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 5, "description": "UI helper methods", "is_constructor": 1, @@ -428,7 +428,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 67, "description": "Helper methods for creating and using Modals" }, @@ -442,14 +442,14 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 205, "description": "Helper methods for creating and using Views" } }, "classitems": [ { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 39, "description": "Abosolutizes a relative URL", "itemtype": "method", @@ -476,7 +476,7 @@ "module": "f2" }, { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 76, "description": "Parses URI", "itemtype": "method", @@ -498,7 +498,7 @@ "module": "f2" }, { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 102, "description": "A function to pass into F2.stringify which will prevent circular\nreference errors when serializing objects", "itemtype": "method", @@ -507,7 +507,7 @@ "module": "f2" }, { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 114, "description": "The apps namespace is a place for app developers to put the javascript\nclass that is used to initialize their app. The javascript classes should\nbe namepaced with the {{#crossLink \"F2.AppConfig\"}}{{/crossLink}}.appId. \nIt is recommended that the code be placed in a closure to help keep the\nglobal namespace clean.\n\nIf the class has an 'init' function, that function will be called \nautomatically by F2.", "itemtype": "property", @@ -521,7 +521,7 @@ "module": "f2" }, { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 150, "description": "Creates a namespace on F2 and copies the contents of an object into\nthat namespace optionally overwriting existing properties.", "itemtype": "method", @@ -551,7 +551,7 @@ "module": "f2" }, { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 190, "description": "Generates a somewhat random id", "itemtype": "method", @@ -564,7 +564,7 @@ "module": "f2" }, { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 202, "description": "Search for a value within an array.", "itemtype": "method", @@ -589,7 +589,7 @@ "module": "f2" }, { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 212, "description": "Tests a URL to see if it's on the same domain (local) or not", "itemtype": "method", @@ -609,7 +609,7 @@ "module": "f2" }, { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 256, "description": "Utility method to determine whether or not the argument passed in is or is not a native dom node.", "itemtype": "method", @@ -629,7 +629,7 @@ "module": "f2" }, { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 275, "description": "A utility logging function to write messages or objects to the browser console. This is a proxy for the [`console` API](https://developers.google.com/chrome-developer-tools/docs/console).", "itemtype": "method", @@ -655,7 +655,7 @@ "module": "f2" }, { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 331, "description": "Wrapper to convert a JSON string to an object", "itemtype": "method", @@ -675,7 +675,7 @@ "module": "f2" }, { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 340, "description": "Wrapper to convert an object to JSON\n\n**Note: When using F2.stringify on an F2.AppConfig object, it is\nrecommended to pass F2.appConfigReplacer as the replacer function in\norder to prevent circular serialization errors.**", "itemtype": "method", @@ -705,7 +705,7 @@ "module": "f2" }, { - "file": "sdk\\src\\F2.js", + "file": "sdk/src/F2.js", "line": 361, "description": "Function to get the F2 version number", "itemtype": "method", @@ -718,7 +718,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 191, "description": "Allows Container Developer to retrieve a unique token which must be passed to\nall `on` and `off` methods. This function will self destruct and can only be called \none time. Container Developers must store the return value inside of a closure.", "itemtype": "method", @@ -727,7 +727,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 205, "description": "Allows F2 to get a token internally. Token is required to call {{#crossLink \"F2.AppHandlers/\\_\\_trigger:method\"}}{{/crossLink}}.\nThis function will self destruct to eliminate other sources from using the {{#crossLink \"F2.AppHandlers/\\_\\_trigger:method\"}}{{/crossLink}}\nand additional internal methods.", "itemtype": "method", @@ -738,7 +738,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 220, "description": "Allows F2 to trigger specific events internally.", "itemtype": "method", @@ -762,7 +762,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 288, "description": "Allows Container Developer to easily tell all apps to render in a specific location. Only valid for eventType `appRender`.", "itemtype": "method", @@ -793,7 +793,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 313, "description": "Allows Container Developer to add listener method that will be triggered when a specific event occurs.", "itemtype": "method", @@ -824,7 +824,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 373, "description": "Allows Container Developer to remove listener methods for specific events", "itemtype": "method", @@ -849,7 +849,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 429, "description": "Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}} )", "itemtype": "property", @@ -864,7 +864,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 451, "description": "Equivalent to `appRenderBefore`. Identifies the before app render method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}} )", "itemtype": "property", @@ -879,7 +879,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 471, "description": "Equivalent to `appRender`. Identifies the app render method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}}, [appHtml](../../app-development.html#app-design) )", "itemtype": "property", @@ -894,7 +894,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 510, "description": "Equivalent to `appRenderAfter`. Identifies the after app render method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}} )", "itemtype": "property", @@ -909,7 +909,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 530, "description": "Equivalent to `appDestroyBefore`. Identifies the before app destroy method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( appInstance )", "itemtype": "property", @@ -924,7 +924,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 550, "description": "Equivalent to `appDestroy`. Identifies the app destroy method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( appInstance )", "itemtype": "property", @@ -939,7 +939,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 583, "description": "Equivalent to `appDestroyAfter`. Identifies the after app destroy method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( appInstance )", "itemtype": "property", @@ -954,7 +954,7 @@ "module": "f2" }, { - "file": "sdk\\src\\app_handlers.js", + "file": "sdk/src/app_handlers.js", "line": 603, "description": "Equivalent to `appScriptLoadFailed`. Identifies the app script load failed method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}}, scriptInfo )", "itemtype": "property", @@ -969,7 +969,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 1, "description": "Class stubs for documentation purposes", "mainName": "F2", @@ -980,7 +980,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 20, "description": "An optional init function that will automatically be called when\nF2.{{#crossLink \"F2\\registerApps\"}}{{/crossLink}} is called.", "itemtype": "method", @@ -990,7 +990,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 34, "description": "The unique ID of the app. More information can be found\n[here](../../app-development.html#f2-appid)", "itemtype": "property", @@ -1001,7 +1001,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 42, "description": "An object that represents the context of an app", "itemtype": "property", @@ -1011,7 +1011,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 48, "description": "True if the app should be requested in a single request with other apps.", "itemtype": "property", @@ -1022,7 +1022,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 55, "description": "The height of the app. The initial height will be pulled from\nthe {{#crossLink \"F2.AppConfig\"}}{{/crossLink}} object, but later\nmodified by calling\nF2.UI.{{#crossLink \"F2.UI/updateHeight\"}}{{/crossLink}}. This is used\nfor secure apps to be able to set the initial height of the iframe.", "itemtype": "property", @@ -1032,7 +1032,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 65, "description": "The unique runtime ID of the app.\n\n**This property is populated during the\nF2.{{#crossLink \"F2/registerApps\"}}{{/crossLink}} process**", "itemtype": "property", @@ -1042,7 +1042,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 74, "description": "True if the app will be loaded in an iframe. This property\nwill be true if the {{#crossLink \"F2.AppConfig\"}}{{/crossLink}} object\nsets isSecure = true. It will also be true if the\n[container](../../container-development.html) has made the decision to\nrun apps in iframes.", "itemtype": "property", @@ -1053,7 +1053,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 85, "description": "The language and region specification for this container \nrepresented as an IETF-defined standard language tag,\ne.g. `\"en-us\"` or `\"de-de\"`. This is passed during the \nF2.{{#crossLink \"F2/registerApps\"}}{{/crossLink}} process.", "itemtype": "property", @@ -1065,7 +1065,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 97, "description": "The languages and regions supported by this app represented\nas an array of IETF-defined standard language tags,\ne.g. `[\"en-us\",\"de-de\"]`.", "itemtype": "property", @@ -1077,7 +1077,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 108, "description": "The url to retrieve the {{#crossLink \"F2.AppManifest\"}}{{/crossLink}}\nobject.", "itemtype": "property", @@ -1088,7 +1088,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 116, "description": "The recommended maximum width in pixels that this app should be run.\n**It is up to the [container](../../container-development.html) to\nimplement the logic to prevent an app from being run when the maxWidth\nrequirements are not met.**", "itemtype": "property", @@ -1098,7 +1098,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 125, "description": "The recommended minimum grid size that this app should be run. This\nvalue corresponds to the 12-grid system that is used by the\n[container](../../container-development.html). This property should be\nset by apps that require a certain number of columns in their layout.", "itemtype": "property", @@ -1109,7 +1109,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 135, "description": "The recommended minimum width in pixels that this app should be run. **It\nis up to the [container](../../container-development.html) to implement\nthe logic to prevent an app from being run when the minWidth requirements\nare not met.", "itemtype": "property", @@ -1120,7 +1120,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 145, "description": "The name of the app", "itemtype": "property", @@ -1131,7 +1131,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 152, "description": "The root DOM element that contains the app\n\n**This property is populated during the\nF2.{{#crossLink \"F2/registerApps\"}}{{/crossLink}} process**", "itemtype": "property", @@ -1141,7 +1141,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 161, "description": "The instance of F2.UI providing easy access to F2.UI methods\n\n**This property is populated during the\nF2.{{#crossLink \"F2/registerApps\"}}{{/crossLink}} process**", "itemtype": "property", @@ -1151,7 +1151,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 170, "description": "The views that this app supports. Available views\nare defined in {{#crossLink \"F2.Constants.Views\"}}{{/crossLink}}. The\npresence of a view can be checked via\nF2.{{#crossLink \"F2/inArray\"}}{{/crossLink}}:\n\n F2.inArray(F2.Constants.Views.SETTINGS, app.views)", "itemtype": "property", @@ -1161,7 +1161,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 188, "description": "The array of {{#crossLink \"F2.AppManifest.AppContent\"}}{{/crossLink}}\nobjects", "itemtype": "property", @@ -1172,7 +1172,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 196, "description": "Any inline javascript tha should initially be run", "itemtype": "property", @@ -1183,7 +1183,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 203, "description": "Urls to javascript files required by the app", "itemtype": "property", @@ -1194,7 +1194,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 210, "description": "Urls to CSS files required by the app", "itemtype": "property", @@ -1205,7 +1205,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 223, "description": "Arbitrary data to be passed along with the app", "itemtype": "property", @@ -1216,7 +1216,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 230, "description": "The string of HTML representing the app", "itemtype": "property", @@ -1227,7 +1227,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 237, "description": "A status message", "itemtype": "property", @@ -1238,7 +1238,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 251, "description": "Allows the [container](../../container-development.html) to override how\nan app's html is inserted into the page. The function should accept an\n{{#crossLink \"F2.AppConfig\"}}{{/crossLink}} object and also a string of\nhtml", "itemtype": "method", @@ -1265,7 +1265,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 263, "description": "Allows the [container](../../container-development.html) to wrap an app\nin extra html. The function should accept an\n{{#crossLink \"F2.AppConfig\"}}{{/crossLink}} object and also a string of\nhtml. The extra html can provide links to edit app settings and remove an\napp from the container. See\n{{#crossLink \"F2.Constants.Css\"}}{{/crossLink}} for CSS classes that\nshould be applied to elements.", "itemtype": "method", @@ -1288,7 +1288,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 277, "description": "Allows the container to render html for an app before the AppManifest for\nan app has loaded. This can be useful if the design calls for loading\nicons to appear for each app before each app is loaded and rendered to\nthe page.", "itemtype": "method", @@ -1310,7 +1310,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 288, "description": "True to enable debug mode in F2.js. Adds additional logging, resource cache busting, etc.", "itemtype": "property", @@ -1321,7 +1321,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 295, "description": "The default language and region specification for this container \nrepresented as an IETF-defined standard language tag,\ne.g. `\"en-us\"` or `\"de-de\"`. This value is passed to each app\nregistered as `containerLocale`.", "itemtype": "property", @@ -1333,7 +1333,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 307, "description": "Milliseconds before F2 fires callback on script resource load errors. Due to issue with the way Internet Explorer attaches load events to script elements, the error event doesn't fire.", "itemtype": "property", @@ -1344,7 +1344,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 314, "description": "Tells the container that it is currently running within\na secure app page", "itemtype": "property", @@ -1354,7 +1354,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 321, "description": "Allows the container to specify which page is used when\nloading a secure app. The page must reside on a different domain than the\ncontainer", "itemtype": "property", @@ -1364,7 +1364,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 330, "description": "Specifies what views a container will provide buttons\nor links to. Generally, the views will be switched via buttons or links\nin the app's header.", "itemtype": "property", @@ -1375,7 +1375,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 351, "description": "The backround color of the overlay", "itemtype": "property", @@ -1386,7 +1386,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 358, "description": "The path to the loading icon", "itemtype": "property", @@ -1396,7 +1396,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 364, "description": "The opacity of the background overlay", "itemtype": "property", @@ -1407,7 +1407,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 371, "description": "Do not use inline styles for mask functinality. Instead classes will\nbe applied to the elements and it is up to the container provider to\nimplement the class definitions.", "itemtype": "property", @@ -1418,7 +1418,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 380, "description": "The z-index to use for the overlay", "itemtype": "property", @@ -1429,7 +1429,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 389, "description": "Allows the container to fully override how the AppManifest request is\nmade inside of F2.", "itemtype": "method", @@ -1472,7 +1472,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 437, "description": "Allows the container to override individual parts of the AppManifest\nrequest. See properties and methods with the `xhr.` prefix.", "itemtype": "property", @@ -1485,7 +1485,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 453, "description": "Allows the container to override the request data type (JSON or JSONP)\nthat is used for the request", "itemtype": "method", @@ -1513,7 +1513,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 475, "description": "Allows the container to override the request method that is used (just\nlike the `type` parameter to `jQuery.ajax()`.", "itemtype": "method", @@ -1541,7 +1541,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 497, "description": "Allows the container to override the url that is used to request an\napp's F2.{{#crossLink \"F2.AppManifest\"}}{{/crossLink}}", "itemtype": "method", @@ -1569,7 +1569,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 517, "description": "Allows the container to override the script loader which requests\ndependencies defined in the {{#crossLink \"F2.AppManifest\"}}{{/crossLink}}.", "itemtype": "property", @@ -1582,7 +1582,7 @@ "module": "f2" }, { - "file": "sdk\\src\\classes.js", + "file": "sdk/src/classes.js", "line": 532, "description": "Allows the container to override the stylesheet loader which requests\ndependencies defined in the {{#crossLink \"F2.AppManifest\"}}{{/crossLink}}.", "itemtype": "property", @@ -1595,13 +1595,13 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 13, "class": "F2.Constants.Css", "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 17, "description": "The APP class should be applied to the DOM Element that surrounds the\nentire app, including any extra html that surrounds the APP\\_CONTAINER\nthat is inserted by the container. See the \n{{#crossLink \"F2.ContainerConfig\"}}{{/crossLink}} object.", "itemtype": "property", @@ -1613,7 +1613,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 28, "description": "The APP\\_CONTAINER class should be applied to the outermost DOM Element\nof the app.", "itemtype": "property", @@ -1625,7 +1625,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 37, "description": "The APP\\_TITLE class should be applied to the DOM Element that contains\nthe title for an app. If this class is not present, then\nF2.UI.{{#crossLink \"F2.UI/setTitle\"}}{{/crossLink}} will not function.", "itemtype": "property", @@ -1637,7 +1637,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 47, "description": "The APP\\_VIEW class should be applied to the DOM Element that contains\na view for an app. The DOM Element should also have a\n{{#crossLink \"F2.Constants.Views\"}}{{/crossLink}}.DATA_ATTRIBUTE\nattribute that specifies which\n{{#crossLink \"F2.Constants.Views\"}}{{/crossLink}} it is.", "itemtype": "property", @@ -1649,7 +1649,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 59, "description": "APP\\_VIEW\\_TRIGGER class should be applied to the DOM Elements that\ntrigger an\n{{#crossLink \"F2.Constants.Events\"}}{{/crossLink}}.APP\\_VIEW\\_CHANGE\nevent. The DOM Element should also have a\n{{#crossLink \"F2.Constants.Views\"}}{{/crossLink}}.DATA_ATTRIBUTE\nattribute that specifies which\n{{#crossLink \"F2.Constants.Views\"}}{{/crossLink}} it will trigger.", "itemtype": "property", @@ -1661,7 +1661,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 73, "description": "The MASK class is applied to the overlay element that is created\nwhen the F2.UI.{{#crossLink \"F2.UI/showMask\"}}{{/crossLink}} method is\nfired.", "itemtype": "property", @@ -1673,7 +1673,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 83, "description": "The MASK_CONTAINER class is applied to the Element that is passed into\nthe F2.UI.{{#crossLink \"F2.UI/showMask\"}}{{/crossLink}} method.", "itemtype": "property", @@ -1685,19 +1685,19 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 100, "class": "F2.Constants.Events", "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 102, "class": "F2.Constants.Events", "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 106, "description": "The APP_SCRIPTS_LOADED event is fired when all the scripts defined in\nthe AppManifest have been loaded.", "itemtype": "property", @@ -1709,7 +1709,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 115, "description": "The APP\\_SYMBOL\\_CHANGE event is fired when the symbol is changed in an\napp. It is up to the app developer to fire this event.\nReturns an object with the symbol and company name:\n\n { symbol: 'MSFT', name: 'Microsoft Corp (NASDAQ)' }", "itemtype": "property", @@ -1721,7 +1721,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 128, "description": "The APP\\_WIDTH\\_CHANGE event will be fired by the container when the\nwidth of an app is changed. The app's instanceId should be concatenated\nto this constant.\nReturns an object with the gridSize and width in pixels:\n\n { gridSize:8, width:620 }", "itemtype": "property", @@ -1733,7 +1733,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 142, "description": "The CONTAINER\\_SYMBOL\\_CHANGE event is fired when the symbol is changed\nat the container level. This event should only be fired by the\ncontainer or container provider.\nReturns an object with the symbol and company name:\n\n { symbol: 'MSFT', name: 'Microsoft Corp (NASDAQ)' }", "itemtype": "property", @@ -1745,7 +1745,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 156, "description": "The CONTAINER\\_WIDTH\\_CHANGE event will be fired by the container when\nthe width of the container has changed.", "itemtype": "property", @@ -1757,7 +1757,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 165, "description": "The CONTAINER\\_LOCALE\\_CHANGE event will be fired by the container when\nthe locale of the container has changed. This event should only be fired by the\ncontainer or container provider.\nReturns an object with the updated locale (IETF-defined standard language tag):\n\n { locale: 'en-us' }", "itemtype": "property", @@ -1769,7 +1769,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 179, "description": "The RESOURCE_FAILED_TO_LOAD event will be fired by the container when\nit fails to load a script or style.", "itemtype": "property", @@ -1783,7 +1783,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 205, "description": "The EVENT message is sent whenever\nF2.Events.{{#crossLink \"F2.Events/emit\"}}{{/crossLink}} is fired", "itemtype": "property", @@ -1795,7 +1795,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 214, "description": "The LOAD message is sent when an iframe socket initially loads.\nReturns a JSON string that represents:\n\n [ App, AppManifest]", "itemtype": "property", @@ -1807,7 +1807,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 226, "description": "The RPC message is sent when a method is passed up from within a secure\napp page.", "itemtype": "property", @@ -1819,7 +1819,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 235, "description": "The RPC\\_CALLBACK message is sent when a call back from an RPC method is\nfired.", "itemtype": "property", @@ -1831,7 +1831,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 244, "description": "The UI\\_RPC message is sent when a UI method called.", "itemtype": "property", @@ -1843,7 +1843,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 263, "description": "The DATA_ATTRIBUTE should be placed on the DOM Element that contains the\nview.", "itemtype": "property", @@ -1855,7 +1855,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 272, "description": "The ABOUT view gives details about the app.", "itemtype": "property", @@ -1867,7 +1867,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 280, "description": "The HELP view provides users with help information for using an app.", "itemtype": "property", @@ -1879,7 +1879,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 288, "description": "The HOME view is the main view for an app. This view should always\nbe provided by an app.", "itemtype": "property", @@ -1891,7 +1891,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 297, "description": "The REMOVE view is a special view that handles the removal of an app\nfrom the container.", "itemtype": "property", @@ -1903,7 +1903,7 @@ "module": "f2" }, { - "file": "sdk\\src\\constants.js", + "file": "sdk/src/constants.js", "line": 306, "description": "The SETTINGS view provides users the ability to modify advanced settings\nfor an app.", "itemtype": "property", @@ -1915,7 +1915,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 14, "description": "Appends the app's html to the DOM", "itemtype": "method", @@ -1944,7 +1944,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 41, "description": "Renders the html for an app.", "itemtype": "method", @@ -1969,7 +1969,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 62, "description": "Rendering hook to allow containers to render some html prior to an app\nloading", "itemtype": "method", @@ -1993,7 +1993,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 76, "description": "Handler to inform the container that a script failed to load", "itemtype": "method", @@ -2017,7 +2017,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 90, "description": "Adds properties to the AppConfig object", "itemtype": "method", @@ -2039,7 +2039,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 120, "description": "Generate an AppConfig from the element's attributes", "itemtype": "method", @@ -2061,7 +2061,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 160, "description": "Returns true if the DOM node has children that are not text nodes", "itemtype": "method", @@ -2083,7 +2083,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 182, "description": "Adds properties to the ContainerConfig object to take advantage of defaults", "itemtype": "method", @@ -2101,7 +2101,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 203, "description": "Attach app events", "itemtype": "method", @@ -2112,7 +2112,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 226, "description": "Attach container Events", "itemtype": "method", @@ -2123,7 +2123,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 251, "description": "Checks if an element is a placeholder element", "itemtype": "method", @@ -2145,7 +2145,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 267, "description": "Has the container been init?", "itemtype": "method", @@ -2160,7 +2160,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 277, "description": "Instantiates each app from it's appConfig and stores that in a local private collection", "itemtype": "method", @@ -2178,7 +2178,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 306, "description": "Loads the app's html/css/javascript", "itemtype": "method", @@ -2202,7 +2202,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 644, "description": "Loads the app's html/css/javascript into an iframe", "itemtype": "method", @@ -2225,7 +2225,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 710, "description": "Checks if the app is valid", "itemtype": "method", @@ -2247,7 +2247,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 732, "description": "Checks if the ContainerConfig is valid", "itemtype": "method", @@ -2262,7 +2262,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 761, "description": "Gets the current list of apps in the container", "itemtype": "method", @@ -2275,7 +2275,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 778, "description": "Gets the current locale defined by the container", "itemtype": "method", @@ -2288,7 +2288,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 791, "description": "Initializes the container. This method must be called before performing\nany other actions in the container.", "itemtype": "method", @@ -2304,7 +2304,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 819, "description": "Has the container been init?", "itemtype": "method", @@ -2317,7 +2317,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 825, "description": "Automatically load apps that are already defined in the DOM. Elements will \nbe rendered into the location of the placeholder DOM element. Any AppHandlers\nthat are defined will be bypassed.", "itemtype": "method", @@ -2333,7 +2333,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 875, "description": "Begins the loading process for all apps and/or initialization process for pre-loaded apps.\nThe app will be passed the {{#crossLink \"F2.AppConfig\"}}{{/crossLink}} object which will\ncontain the app's unique instanceId within the container. If the\n{{#crossLink \"F2.AppConfig\"}}{{/crossLink}}.root property is populated the app is considered\nto be a pre-loaded app and will be handled accordingly. Optionally, the\n{{#crossLink \"F2.AppManifest\"}}{{/crossLink}} can be passed in and those\nassets will be used instead of making a request.", "itemtype": "method", @@ -2360,7 +2360,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 1202, "description": "Removes all apps from the container", "itemtype": "method", @@ -2369,7 +2369,7 @@ "module": "f2" }, { - "file": "sdk\\src\\container.js", + "file": "sdk/src/container.js", "line": 1217, "description": "Removes an app from the container", "itemtype": "method", @@ -2385,7 +2385,7 @@ "module": "f2" }, { - "file": "sdk\\src\\events.js", + "file": "sdk/src/events.js", "line": 16, "description": "Same as F2.Events.emit except that it will not send the event\nto all sockets.", "itemtype": "method", @@ -2410,7 +2410,7 @@ "module": "f2" }, { - "file": "sdk\\src\\events.js", + "file": "sdk/src/events.js", "line": 27, "description": "Execute each of the listeners that may be listening for the specified\nevent name in order with the list of arguments.", "itemtype": "method", @@ -2433,7 +2433,7 @@ "module": "f2" }, { - "file": "sdk\\src\\events.js", + "file": "sdk/src/events.js", "line": 38, "description": "Adds a listener that will execute n times for the event before being \nremoved. The listener is invoked only the first time the event is \nfired, after which it is removed.", "itemtype": "method", @@ -2459,7 +2459,7 @@ "module": "f2" }, { - "file": "sdk\\src\\events.js", + "file": "sdk/src/events.js", "line": 52, "description": "Remove a listener for the specified event.", "itemtype": "method", @@ -2480,7 +2480,7 @@ "module": "f2" }, { - "file": "sdk\\src\\events.js", + "file": "sdk/src/events.js", "line": 61, "description": "Adds a listener for the specified event", "itemtype": "method", @@ -2501,7 +2501,7 @@ "module": "f2" }, { - "file": "sdk\\src\\events.js", + "file": "sdk/src/events.js", "line": 71, "description": "Adds a one time listener for the event. The listener is invoked only\nthe first time the event is fired, after which it is removed.", "itemtype": "method", @@ -2522,7 +2522,7 @@ "module": "f2" }, { - "file": "sdk\\src\\rpc.js", + "file": "sdk/src/rpc.js", "line": 15, "description": "Creates a socket connection from the app to the container using \neasyXDM.", "itemtype": "method", @@ -2533,7 +2533,7 @@ "module": "f2" }, { - "file": "sdk\\src\\rpc.js", + "file": "sdk/src/rpc.js", "line": 69, "description": "Creates a socket connection from the container to the app using \neasyXDM.", "itemtype": "method", @@ -2556,7 +2556,7 @@ "module": "f2" }, { - "file": "sdk\\src\\rpc.js", + "file": "sdk/src/rpc.js", "line": 117, "itemtype": "method", "name": "_createRpcCallback", @@ -2582,7 +2582,7 @@ "module": "f2" }, { - "file": "sdk\\src\\rpc.js", + "file": "sdk/src/rpc.js", "line": 135, "description": "Handles messages that come across the sockets", "itemtype": "method", @@ -2610,7 +2610,7 @@ "module": "f2" }, { - "file": "sdk\\src\\rpc.js", + "file": "sdk/src/rpc.js", "line": 216, "description": "Registers a callback function", "itemtype": "method", @@ -2632,7 +2632,7 @@ "module": "f2" }, { - "file": "sdk\\src\\rpc.js", + "file": "sdk/src/rpc.js", "line": 230, "description": "Broadcast an RPC function to all sockets", "itemtype": "method", @@ -2653,7 +2653,7 @@ "module": "f2" }, { - "file": "sdk\\src\\rpc.js", + "file": "sdk/src/rpc.js", "line": 243, "description": "Calls a remote function", "itemtype": "method", @@ -2684,7 +2684,7 @@ "module": "f2" }, { - "file": "sdk\\src\\rpc.js", + "file": "sdk/src/rpc.js", "line": 273, "description": "Init function which tells F2.Rpc whether it is running at the container-\nlevel or the app-level. This method is generally called by\nF2.{{#crossLink \"F2/init\"}}{{/crossLink}}", "itemtype": "method", @@ -2701,7 +2701,7 @@ "module": "f2" }, { - "file": "sdk\\src\\rpc.js", + "file": "sdk/src/rpc.js", "line": 289, "description": "Determines whether the Instance ID is considered to be 'remote'. This is\ndetermined by checking if 1) the app has an open socket and 2) whether\nF2.Rpc is running inside of an iframe", "itemtype": "method", @@ -2721,7 +2721,7 @@ "module": "f2" }, { - "file": "sdk\\src\\rpc.js", + "file": "sdk/src/rpc.js", "line": 308, "description": "Creates a container-to-app or app-to-container socket for communication", "itemtype": "method", @@ -2744,7 +2744,7 @@ "module": "f2" }, { - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 58, "description": "Removes a overlay from an Element on the page", "itemtype": "method", @@ -2760,7 +2760,7 @@ "module": "f2" }, { - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 83, "description": "Display an alert message on the page", "itemtype": "method", @@ -2782,7 +2782,7 @@ "module": "f2" }, { - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 118, "description": "Display a confirm message on the page", "itemtype": "method", @@ -2808,7 +2808,7 @@ "module": "f2" }, { - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 163, "description": "Sets the title of the app as shown in the browser. Depending on the\ncontainer HTML, this method may do nothing if the container has not been\nconfigured properly or else the container provider does not allow Title's\nto be set.", "itemtype": "method", @@ -2824,7 +2824,7 @@ "module": "f2" }, { - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 187, "description": "Display an ovarlay over an Element on the page", "itemtype": "method", @@ -2845,7 +2845,7 @@ "module": "f2" }, { - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 197, "description": "For secure apps, this method updates the size of the iframe that\ncontains the app. **Note: It is recommended that app developers call\nthis method anytime Elements are added or removed from the DOM**", "itemtype": "method", @@ -2861,7 +2861,7 @@ "module": "f2" }, { - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 228, "description": "Change the current view for the app or add an event listener", "itemtype": "method", @@ -2878,7 +2878,7 @@ "module": "f2" }, { - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 260, "description": "Removes a view event listener", "itemtype": "method", @@ -2899,7 +2899,7 @@ "module": "f2" }, { - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 272, "description": "Adds a view event listener", "itemtype": "method", @@ -2920,7 +2920,7 @@ "module": "f2" }, { - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 290, "description": "Removes a overlay from an Element on the page", "itemtype": "method", @@ -2942,7 +2942,7 @@ "module": "f2" }, { - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 332, "itemtype": "method", "name": "init", @@ -2958,7 +2958,7 @@ "module": "f2" }, { - "file": "sdk\\src\\ui.js", + "file": "sdk/src/ui.js", "line": 345, "description": "Display an ovarlay over an Element on the page", "itemtype": "method", @@ -2988,63 +2988,63 @@ "warnings": [ { "message": "replacing incorrect tag: returns with return", - "line": " sdk\\src\\F2.js:39" + "line": " sdk/src/F2.js:39" }, { "message": "replacing incorrect tag: returns with return", - "line": " sdk\\src\\F2.js:76" + "line": " sdk/src/F2.js:76" }, { "message": "replacing incorrect tag: returns with return", - "line": " sdk\\src\\F2.js:212" + "line": " sdk/src/F2.js:212" }, { "message": "replacing incorrect tag: params with param", - "line": " sdk\\src\\app_handlers.js:288" + "line": " sdk/src/app_handlers.js:288" }, { "message": "replacing incorrect tag: params with param", - "line": " sdk\\src\\app_handlers.js:313" + "line": " sdk/src/app_handlers.js:313" }, { "message": "replacing incorrect tag: depreciated with deprecated", - "line": " sdk\\src\\constants.js:179" + "line": " sdk/src/constants.js:179" }, { "message": "replacing incorrect tag: returns with return", - "line": " sdk\\src\\container.js:710" + "line": " sdk/src/container.js:710" }, { "message": "replacing incorrect tag: returns with return", - "line": " sdk\\src\\container.js:732" + "line": " sdk/src/container.js:732" }, { "message": "replacing incorrect tag: returns with return", - "line": " sdk\\src\\container.js:761" + "line": " sdk/src/container.js:761" }, { "message": "replacing incorrect tag: returns with return", - "line": " sdk\\src\\container.js:778" + "line": " sdk/src/container.js:778" }, { "message": "replacing incorrect tag: params with param", - "line": " sdk\\src\\ui.js:163" + "line": " sdk/src/ui.js:163" }, { "message": "replacing incorrect tag: params with param", - "line": " sdk\\src\\ui.js:197" + "line": " sdk/src/ui.js:197" }, { "message": "Missing item type", - "line": " sdk\\src\\constants.js:13" + "line": " sdk/src/constants.js:13" }, { "message": "Missing item type", - "line": " sdk\\src\\constants.js:100" + "line": " sdk/src/constants.js:100" }, { "message": "Missing item type", - "line": " sdk\\src\\constants.js:102" + "line": " sdk/src/constants.js:102" } ] } \ No newline at end of file diff --git a/docs/dist/sdk/files/sdk_src_F2.js.html b/docs/dist/sdk/files/sdk_src_F2.js.html index 2e6da904..2f5abc95 100644 --- a/docs/dist/sdk/files/sdk_src_F2.js.html +++ b/docs/dist/sdk/files/sdk_src_F2.js.html @@ -1,7 +1,7 @@ -sdk\src\F2.js - Open Financial Framework +sdk/src/F2.js - Open Financial Framework @@ -97,12 +97,12 @@
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk\src\F2.js
  • +
  • sdk/src/F2.js
  • @@ -197,7 +197,7 @@ -

    sdk\src\F2.js File

    +

    sdk/src/F2.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_app_handlers.js.html b/docs/dist/sdk/files/sdk_src_app_handlers.js.html
    index fa98dc12..0fb05634 100644
    --- a/docs/dist/sdk/files/sdk_src_app_handlers.js.html
    +++ b/docs/dist/sdk/files/sdk_src_app_handlers.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk\src\app_handlers.js - Open Financial Framework
    +sdk/src/app_handlers.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk\src\app_handlers.js
  • +
  • sdk/src/app_handlers.js
  • @@ -197,7 +197,7 @@ -

    sdk\src\app_handlers.js File

    +

    sdk/src/app_handlers.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_classes.js.html b/docs/dist/sdk/files/sdk_src_classes.js.html
    index b08d67a2..b9fbb98e 100644
    --- a/docs/dist/sdk/files/sdk_src_classes.js.html
    +++ b/docs/dist/sdk/files/sdk_src_classes.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk\src\classes.js - Open Financial Framework
    +sdk/src/classes.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk\src\classes.js
  • +
  • sdk/src/classes.js
  • @@ -197,7 +197,7 @@ -

    sdk\src\classes.js File

    +

    sdk/src/classes.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_constants.js.html b/docs/dist/sdk/files/sdk_src_constants.js.html
    index bc6b962a..672659ad 100644
    --- a/docs/dist/sdk/files/sdk_src_constants.js.html
    +++ b/docs/dist/sdk/files/sdk_src_constants.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk\src\constants.js - Open Financial Framework
    +sdk/src/constants.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk\src\constants.js
  • +
  • sdk/src/constants.js
  • @@ -197,7 +197,7 @@ -

    sdk\src\constants.js File

    +

    sdk/src/constants.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_container.js.html b/docs/dist/sdk/files/sdk_src_container.js.html
    index fc85ab51..876784a8 100644
    --- a/docs/dist/sdk/files/sdk_src_container.js.html
    +++ b/docs/dist/sdk/files/sdk_src_container.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk\src\container.js - Open Financial Framework
    +sdk/src/container.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk\src\container.js
  • +
  • sdk/src/container.js
  • @@ -197,7 +197,7 @@ -

    sdk\src\container.js File

    +

    sdk/src/container.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_events.js.html b/docs/dist/sdk/files/sdk_src_events.js.html
    index f591e9f8..c283d207 100644
    --- a/docs/dist/sdk/files/sdk_src_events.js.html
    +++ b/docs/dist/sdk/files/sdk_src_events.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk\src\events.js - Open Financial Framework
    +sdk/src/events.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk\src\events.js
  • +
  • sdk/src/events.js
  • @@ -197,7 +197,7 @@ -

    sdk\src\events.js File

    +

    sdk/src/events.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_rpc.js.html b/docs/dist/sdk/files/sdk_src_rpc.js.html
    index 0ec1c379..4f4973d8 100644
    --- a/docs/dist/sdk/files/sdk_src_rpc.js.html
    +++ b/docs/dist/sdk/files/sdk_src_rpc.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk\src\rpc.js - Open Financial Framework
    +sdk/src/rpc.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk\src\rpc.js
  • +
  • sdk/src/rpc.js
  • @@ -197,7 +197,7 @@ -

    sdk\src\rpc.js File

    +

    sdk/src/rpc.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_ui.js.html b/docs/dist/sdk/files/sdk_src_ui.js.html
    index 220868c0..22b7333c 100644
    --- a/docs/dist/sdk/files/sdk_src_ui.js.html
    +++ b/docs/dist/sdk/files/sdk_src_ui.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk\src\ui.js - Open Financial Framework
    +sdk/src/ui.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk\src\ui.js
  • +
  • sdk/src/ui.js
  • @@ -197,7 +197,7 @@ -

    sdk\src\ui.js File

    +

    sdk/src/ui.js File

    
    diff --git a/docs/dist/sdk/modules/f2.html b/docs/dist/sdk/modules/f2.html
    index 4195e3f3..279d6786 100644
    --- a/docs/dist/sdk/modules/f2.html
    +++ b/docs/dist/sdk/modules/f2.html
    @@ -206,7 +206,7 @@ 

    f2 Module

    - Defined in: sdk\src\ui.js:205 + Defined in: sdk/src/ui.js:205
    diff --git a/sdk/f2.debug.js b/sdk/f2.debug.js index 67e4d684..0f14c4e9 100644 --- a/sdk/f2.debug.js +++ b/sdk/f2.debug.js @@ -4,502 +4,908 @@ return; } -/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -/* - This code should be minified before deployment. - See http://javascript.crockford.com/jsmin.html - - USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO - NOT CONTROL. - - - This file creates a global JSON object containing two methods: stringify - and parse. - - JSON.stringify(value, replacer, space) - value any JavaScript value, usually an object or array. - - replacer an optional parameter that determines how object - values are stringified for objects. It can be a - function or an array of strings. - - space an optional parameter that specifies the indentation - of nested structures. If it is omitted, the text will - be packed without extra whitespace. If it is a number, - it will specify the number of spaces to indent at each - level. If it is a string (such as '\t' or ' '), - it contains the characters used to indent at each level. - - This method produces a JSON text from a JavaScript value. - - When an object value is found, if the object contains a toJSON - method, its toJSON method will be called and the result will be - stringified. A toJSON method does not serialize: it returns the - value represented by the name/value pair that should be serialized, - or undefined if nothing should be serialized. The toJSON method - will be passed the key associated with the value, and this will be - bound to the value - - For example, this would serialize Dates as ISO strings. - - Date.prototype.toJSON = function (key) { - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } - - return this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z'; - }; - - You can provide an optional replacer method. It will be passed the - key and value of each member, with this bound to the containing - object. The value that is returned from your method will be - serialized. If your method returns undefined, then the member will - be excluded from the serialization. - - If the replacer parameter is an array of strings, then it will be - used to select the members to be serialized. It filters the results - such that only members with keys listed in the replacer array are - stringified. - - Values that do not have JSON representations, such as undefined or - functions, will not be serialized. Such values in objects will be - dropped; in arrays they will be replaced with null. You can use - a replacer function to replace those with JSON values. - JSON.stringify(undefined) returns undefined. - - The optional space parameter produces a stringification of the - value that is filled with line breaks and indentation to make it - easier to read. - - If the space parameter is a non-empty string, then that string will - be used for indentation. If the space parameter is a number, then - the indentation will be that many spaces. - - Example: - - text = JSON.stringify(['e', {pluribus: 'unum'}]); - // text is '["e",{"pluribus":"unum"}]' - - - text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); - // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' - - text = JSON.stringify([new Date()], function (key, value) { - return this[key] instanceof Date ? - 'Date(' + this[key] + ')' : value; - }); - // text is '["Date(---current time---)"]' - - - JSON.parse(text, reviver) - This method parses a JSON text to produce an object or array. - It can throw a SyntaxError exception. +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +;(function () { + // Detect the `define` function exposed by asynchronous module loaders. The + // strict `define` check is necessary for compatibility with `r.js`. + var isLoader = typeof define === "function" && define.amd; + + // A set of types used to distinguish objects from primitives. + var objectTypes = { + "function": true, + "object": true + }; - The optional reviver parameter is a function that can filter and - transform the results. It receives each of the keys and values, - and its return value is used instead of the original value. - If it returns what it received, then the structure is not modified. - If it returns undefined then the member is deleted. + // Detect the `exports` object exposed by CommonJS implementations. + var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; - Example: + // Use the `global` object exposed by Node (including Browserify via + // `insert-module-globals`), Narwhal, and Ringo as the default context, + // and the `window` object in browsers. Rhino exports a `global` function + // instead. + var root = objectTypes[typeof window] && window || this, + freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; - // Parse the text. Values that look like ISO date strings will - // be converted to Date objects. + if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { + root = freeGlobal; + } - myData = JSON.parse(text, function (key, value) { - var a; - if (typeof value === 'string') { - a = -/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); - if (a) { - return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], - +a[5], +a[6])); - } - } - return value; - }); + // Public: Initializes JSON 3 using the given `context` object, attaching the + // `stringify` and `parse` functions to the specified `exports` object. + function runInContext(context, exports) { + context || (context = root["Object"]()); + exports || (exports = root["Object"]()); + + // Native constructor aliases. + var Number = context["Number"] || root["Number"], + String = context["String"] || root["String"], + Object = context["Object"] || root["Object"], + Date = context["Date"] || root["Date"], + SyntaxError = context["SyntaxError"] || root["SyntaxError"], + TypeError = context["TypeError"] || root["TypeError"], + Math = context["Math"] || root["Math"], + nativeJSON = context["JSON"] || root["JSON"]; + + // Delegate to the native `stringify` and `parse` implementations. + if (typeof nativeJSON == "object" && nativeJSON) { + exports.stringify = nativeJSON.stringify; + exports.parse = nativeJSON.parse; + } - myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { - var d; - if (typeof value === 'string' && - value.slice(0, 5) === 'Date(' && - value.slice(-1) === ')') { - d = new Date(value.slice(5, -1)); - if (d) { - return d; - } + // Convenience aliases. + var objectProto = Object.prototype, + getClass = objectProto.toString, + isProperty, forEach, undef; + + // Test the `Date#getUTC*` methods. Based on work by @Yaffle. + var isExtended = new Date(-3509827334573292); + try { + // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical + // results for certain dates in Opera >= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } } - return value; - }); - - - This is a reference implementation. You are free to copy, modify, or - redistribute. -*/ - -/*jslint evil: true, regexp: true */ - -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ - - -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; } - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); }; + } - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; + result += useCharIndex ? symbols[index] : value.charAt(index); } + } + return result + '"'; + }; -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. + } - var j; + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; - function walk(holder, key) { + // Internal: Stores the parser state. + var Index, Source; -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; + } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); } - return reviver.call(holder, key, value); + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; + } + // Unrecognized token. + abort(); } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; } + // Unexpected token encountered. + abort(); + } + return value; + }; + + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; -// If the text is not JSON parseable, then a SyntaxError is thrown. + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; - throw new SyntaxError('JSON.parse'); + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; }; + } } -}()); + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); /*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ @@ -14362,7 +14768,7 @@ global.easyXDM = easyXDM; })(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent); /*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sdk/f2.min.js b/sdk/f2.min.js index 3e4f9e11..c07ee815 100644 --- a/sdk/f2.min.js +++ b/sdk/f2.min.js @@ -1,25 +1,6 @@ -/*! F2 - v1.4.2 - 06-20-2016 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ -!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(a){return 10>a?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),/*! +!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ * @@ -48,7 +29,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.4",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidthe;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sdk/f2.min.map b/sdk/f2.min.map index fb024412..fd932d8c 100644 --- a/sdk/f2.min.map +++ b/sdk/f2.min.map @@ -1 +1 @@ -{"version":3,"file":"f2.min.js","sources":["f2.debug.js"],"names":["exports","F2","F2_TESTING_MODE","JSON","f","n","quote","string","escapable","lastIndex","test","replace","a","c","meta","charCodeAt","toString","slice","str","key","holder","i","k","v","length","partial","mind","gap","value","toJSON","rep","call","isFinite","String","indent","Object","prototype","apply","join","push","hasOwnProperty","Date","this","valueOf","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","Number","Boolean","cx","\b","\t","\n","\f","\r","\"","\\","stringify","replacer","space","Error","parse","text","reviver","walk","undefined","j","eval","SyntaxError","global","factory","module","document","w","window","noGlobal","isArraylike","obj","type","jQuery","isWindow","nodeType","winnow","elements","qualifier","not","isFunction","grep","elem","risSimple","filter","inArray","sibling","cur","dir","createOptions","options","object","optionsCache","each","match","rnotwhite","_","flag","detach","addEventListener","removeEventListener","completed","detachEvent","event","readyState","ready","dataAttr","data","name","rmultiDash","toLowerCase","getAttribute","rbrace","parseJSON","e","isEmptyDataObject","isEmptyObject","internalData","pvt","acceptData","ret","thisCache","internalKey","expando","isNode","cache","id","deletedIds","pop","guid","noop","extend","camelCase","internalRemoveData","isArray","concat","map","split","cleanData","support","deleteExpando","returnTrue","returnFalse","safeActiveElement","activeElement","err","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","createElement","getAll","context","tag","elems","found","getElementsByTagName","strundefined","querySelectorAll","childNodes","nodeName","merge","fixDefaultChecked","rcheckableType","defaultChecked","checked","manipulationTarget","content","firstChild","appendChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","exec","removeAttribute","setGlobalEval","refElements","_data","cloneCopyEvent","src","dest","hasData","l","oldData","curData","events","handle","add","fixCloneNodeIssues","noCloneEvent","removeEvent","parentNode","outerHTML","html5Clone","innerHTML","trim","defaultSelected","selected","defaultValue","actualDisplay","doc","style","appendTo","body","display","getDefaultComputedStyle","css","defaultDisplay","elemdisplay","iframe","documentElement","contentWindow","contentDocument","write","close","addGetHookIf","conditionFn","hookFn","get","condition","arguments","vendorPropName","capName","charAt","toUpperCase","origName","cssPrefixes","showHide","show","hidden","values","index","isHidden","setPositiveNumber","subtract","matches","rnumsplit","Math","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","Tween","prop","end","easing","init","createFxNow","setTimeout","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","width","createTween","animation","tween","collection","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","checkDisplay","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","done","hide","_removeData","start","propFilter","specialEasing","cssHooks","expand","Animation","properties","result","stopped","animationPrefilters","deferred","Deferred","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","fx","timer","progress","complete","fail","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","error","buildParams","prefix","traditional","rbracket","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","getWindow","defaultView","parentWindow","indexOf","class2type","hasOwn","version","selector","fn","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","constructor","toArray","num","pushStack","prevObject","callback","args","first","eq","last","len","sort","splice","copyIsArray","copy","clone","isPlainObject","random","isReady","msg","Array","isNumeric","ownLast","globalEval","execScript","makeArray","arr","results","second","invert","callbackInverse","callbackExpect","arg","proxy","Sizzle","seed","m","groups","old","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","contains","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","setAttribute","toSelector","rsibling","testContext","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","removeChild","addHandle","handler","attrHandle","siblingCheck","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","outerCache","newCache","dirruns","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","compilerCache","sortOrder","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","fromCharCode","unloadHandler","els","node","hasCompare","parent","top","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","has","innerText","lang","elemLang","hash","location","root","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","r","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","stack","once","stopOnFalse","disable","remove","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","source","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","original","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","suffix","expanded","parts","unit","propHooks","eased","step","linear","p","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","requireNonComma","depth","comma","open","Function","parseXML","DOMParser","parseFromString","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","abort","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serialize","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","define","amd","_jQuery","_$","$","noConflict","Plugin","_relatedTarget","$this","Modal","DEFAULTS","element","$body","$element","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","VERSION","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","backdrop","keyboard","that","checkScrollbar","setScrollbar","escape","resize","transition","adjustDialog","enforceFocus","emulateTransitionEnd","hideModal","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","doAnimate","callbackRemove","modalIsOverflowing","clientHeight","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","right","abs","clientWidth","measureScrollbar","bodyPad","scrollDiv","modal","Constructor","$target","showEvent","_events","_conf","configure","conf","delimiter","maxListeners","wildcard","newListener","listenerTree","EventEmitter","searchListenerTree","tree","leaf","branch","xTree","xxTree","isolatedBranch","endReached","listeners","typeLength","currentType","nextType","_listeners","**","growListenerTree","listener","warned","defaultMaxListeners","console","trace","setMaxListeners","many","ttl","_origin","emit","_all","ns","onAny","addListener","leafs","iLeaf","offAny","removeListener","removeAllListeners","listenersAny","EventEmitter2","process","title","decodeURIComponent","isHostMethod","property","isHostObject","o","hasFlash","undef","navigator","plugins","description","mimeTypes","enabledPlugin","flashVersion","flash","GetVariable","notSupportedException","major","minor","HAS_FLASH_THROTTLED_BUG","dom_onReady","domIsReady","domReadyQueue","whenReady","scope","getParentObject","ii","easyXDM","_easyXDM","IFRAME_PREFIX","getDomainName","reURI","getPort","getLocation","proto","domain","port","resolveUrl","reDoubleSlash","path","substring","pathname","lastIndexOf","protocol","host","reParent","appendQueryParameters","parameters","q","useHash","destination","noOverwrite","member","testForNamePropertyBug","channelId","HAS_NAME_PROPERTY_BUG","createFrame","config","frame","frameBorder","allowTransparency","onLoad","usePost","action","checkAcl","acl","re","substr","prepareTransportStack","stackEls","isHost","query","xdm_p","channel","secret","swf","product","userAgent","remoteHelper","xdm_c","xdm_s","xdm_e","useResize","useParent","usePolling","local","images","search","xdm_pa","xdm_po","HashTransport","ReliableBehavior","QueueBehavior","encode","maxLength","VerifyBehavior","initiate","PostMessageTransport","NameTransport","NixTransport","SameOriginTransport","FrameElementTransport","FlashTransport","lazy","chainStack","stackElements","stackEl","defaults","incoming","message","origin","up","outgoing","recipient","down","destroy","removeFromStack","un","floor","emptyFn","sEvent","fpNotify","pair","evalJSON","getJSONObject","DomHelper","requiresJSON","_map","Fn","del","Socket","onMessage","onReady","postMessage","Rpc","jsonRpcConfig","RpcBehavior","pub","targetOrigin","onDOMReady","sendFn","addSwf","swfContainer","swfNoThrottle","flashVars","destroyChannel","swfdomain","createChannel","_getOrigin","uri","_window_onMessage","callerWindow","waitForReady","referrer","_sendMessage","sendMessage","_onReady","readyCount","_onMessage","remoteOrigin","_onLoad","remoteWindow","remoteUrl","_callerWindow","_msgNr","_handleHash","_lastMsg","_remoteOrigin","_pollHash","_listenerWindow","_attachListeners","_timer","pollInterval","tries","getRef","frames","ex","idOut","idIn","currentMessage","ack","waiting","destroying","doFragment","seq","fragments","startVerification","mySecret","theirSecret","_send","jsonrpc","serializer","_createMethod","definition","_callbacks","_callbackCounter","namedParams","_executeMethod","ex1","_absolutizeURI","removeDotSegments","output","_parseURI","authority","hostname","appConfigReplacer","Apps","overwrite","isFunc","S4","array","isLocalRequest","urlLower","isNativeDOMNode","testObject","bIsNode","Node","bIsElement","HTMLElement","log","_log","_logMethod","methods","_ct","_f2t","_handlerCollection","appCreateRoot","appRenderBefore","appDestroyBefore","appRenderAfter","appDestroyAfter","appRender","appDestroy","appScriptLoadFailed","_defaultMethods","appConfig","appHtml","$root","appInstance","app","appId","_createHandler","sNamespace","func_or_element","bDomNodeAppropriate","_validateToken","domNode","sToken","_removeHandler","eventKey","currentEventKey","eventCollection","newEvents","ec","currentEventHandler","newHandlerCollection","iCounter","hc","currentHandler","getToken","__f2GetToken","__trigger","passableArgs","hcl","$appRoot","arData","AppHandlers","APP_CREATE_ROOT","APP_RENDER_BEFORE","APP_RENDER","APP_RENDER_AFTER","APP_DESTROY_BEFORE","APP_DESTROY","APP_DESTROY_AFTER","APP_SCRIPT_LOAD_FAILED","App","appContent","AppConfig","enableBatchRequests","instanceId","isSecure","containerLocale","localeSupport","manifestUrl","minGridSize","ui","views","AppManifest","apps","inlineScripts","AppContent","ContainerConfig","afterAppRender","beforeAppRender","debugMode","locale","scriptErrorTimeout","isSecureAppPage","secureAppPagePath","supportedViews","UI","Mask","backgroundColor","loadingIcon","useClasses","appConfigs","loadScripts","inlines","loadStyles","Css","_PREFIX","APP","APP_CONTAINER","APP_TITLE","APP_VIEW","APP_VIEW_TRIGGER","MASK","MASK_CONTAINER","Events","_APP_EVENT_PREFIX","_CONTAINER_EVENT_PREFIX","APP_SCRIPTS_LOADED","APP_SYMBOL_CHANGE","APP_WIDTH_CHANGE","CONTAINER_SYMBOL_CHANGE","CONTAINER_WIDTH_CHANGE","CONTAINER_LOCALE_CHANGE","RESOURCE_FAILED_TO_LOAD","JSONP_CALLBACK","AppStatus","ERROR","SUCCESS","Sockets","EVENT","LOAD","RPC","RPC_CALLBACK","UI_RPC","Views","DATA_ATTRIBUTE","ABOUT","HELP","HOME","REMOVE","SETTINGS","_socketEmit","broadcast","Constants","timesToListen","_secureAppPagePath","_apps","_rEvents","_rRpc","_rRpcCallback","_rSocketLoad","_rUiCall","_createAppToContainerSocket","isLoaded","messagePlayback","socket","appParts","registerApps","_createContainerToAppSocket","appManifest","iframeProps","scrolling","_createRpcCallback","callbackId","parseFunction","functionName","parseMessage","regEx","callbacks","_registerCallback","messageType","cid","isRemote","register","_containerConfig","UI_Class","_appConfig","_updateHeight","outerHeight","_modalHtml","showCancel","hideMask","Modals","_renderAlert","_renderConfirm","alert","isInit","confirm","okCallback","cancelCallback","setTitle","showMask","showLoader","updateHeight","_rValidEvents","_isValid","containerConfig","showLoading","mask","background-color","background-image","background-position","background-repeat","min-height","z-index","_config","_bUsesAppHandlers","_sAppHandlerToken","_loadingScripts","_afterAppRender","appContainer","_appRender","_outerHtml","_beforeAppRender","_appScriptLoadFailed","scriptInfo","_createAppConfig","_getAppConfigFromElement","hasAttribute","contextJson","warn","_hasNonTextChildNodes","hasNodes","hasChildNodes","_hydrateContainerConfig","_initAppEvents","view","removeApp","_initContainerEvents","resizeTimeout","resizeHandler","_isPlaceholderElement","_isInit","_createAppInstance","_loadApps","_loadSecureApp","_findExistingScripts","_findExistingStyles","_loadStyles","cb","existingStyles","stylesFragment","useCreateStyleSheet","createStyleSheet","resourceUrl","_loadScripts","existingScripts","scriptCount","scriptsLoaded","insertBeforeEl","readyStates","loaded","_error","evtData","_checkComplete","_emptyWaitlist","resourceKey","errorEvt","waitlist","getTime","onerror","_loadInlineScripts","loadInlineScripts","exception","elementInDocument","_loadHtml","_validateApp","_validateContainerConfig","getContainerState","getContainerLocale","loadPlaceholders","addAll","appManifests","appStack","batches","callbackStack","haveManifests","preloaded","req","requests","manifestRequest","completeFunc","errorFunc","item","successFunc","requestFunc","successCallback","errorCallback","completeCallback","jqxhr","removeAllApps","autoloadEls"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"f2.min.js","sources":["f2.debug.js"],"names":["exports","F2","F2_TESTING_MODE","runInContext","context","has","name","undef","isSupported","value","serialized","stringify","stringifySupported","isExtended","toJSON","Number","String","getClass","a","Date","exception","parse","parseSupported","length","root","Object","SyntaxError","TypeError","Math","nativeJSON","isProperty","forEach","objectProto","prototype","toString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","functionClass","dateClass","numberClass","stringClass","arrayClass","booleanClass","charIndexBuggy","floor","Months","getDay","year","month","hasOwnProperty","property","constructor","members","__proto__","original","this","result","parent","call","object","callback","Properties","size","valueOf","isFunction","isConstructor","hasProperty","objectTypes","Escapes",92,34,8,12,10,13,9,"leadingZeroes","toPaddedString","width","slice","unicodePrefix","quote","index","useCharIndex","symbols","split","charCode","charCodeAt","charAt","serialize","properties","whitespace","indentation","stack","className","date","time","hours","minutes","seconds","milliseconds","results","element","prefix","push","join","pop","source","filter","Index","Source","fromCharCode","Unescapes",47,98,116,110,102,114,"abort","lex","begin","position","isSigned","get","hasMembers","update","walk","isLoader","define","amd","function","freeExports","nodeType","window","freeGlobal","module","global","JSON","previousJSON","isRestored","JSON3","noConflict","factory","document","w","Error","noGlobal","isArraylike","obj","type","jQuery","isWindow","winnow","elements","qualifier","not","grep","elem","i","risSimple","test","inArray","sibling","cur","dir","createOptions","options","optionsCache","each","match","rnotwhite","_","flag","detach","addEventListener","removeEventListener","completed","detachEvent","event","readyState","ready","dataAttr","key","data","undefined","replace","rmultiDash","toLowerCase","getAttribute","rbrace","parseJSON","e","isEmptyDataObject","isEmptyObject","internalData","pvt","acceptData","ret","thisCache","internalKey","expando","isNode","cache","id","deletedIds","guid","noop","extend","camelCase","internalRemoveData","isArray","concat","map","cleanData","support","deleteExpando","returnTrue","returnFalse","safeActiveElement","activeElement","err","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","createElement","getAll","tag","elems","found","getElementsByTagName","strundefined","querySelectorAll","childNodes","nodeName","merge","fixDefaultChecked","rcheckableType","defaultChecked","checked","manipulationTarget","content","firstChild","appendChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","exec","removeAttribute","setGlobalEval","refElements","_data","cloneCopyEvent","src","dest","hasData","l","oldData","curData","events","handle","add","fixCloneNodeIssues","noCloneEvent","removeEvent","text","parentNode","outerHTML","html5Clone","innerHTML","trim","defaultSelected","selected","defaultValue","actualDisplay","doc","style","appendTo","body","display","getDefaultComputedStyle","css","defaultDisplay","elemdisplay","iframe","documentElement","contentWindow","contentDocument","write","close","addGetHookIf","conditionFn","hookFn","condition","apply","arguments","vendorPropName","capName","toUpperCase","origName","cssPrefixes","showHide","show","hidden","values","isHidden","setPositiveNumber","subtract","matches","rnumsplit","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","Tween","prop","end","easing","init","createFxNow","setTimeout","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","createTween","animation","tween","collection","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","checkDisplay","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","done","hide","_removeData","start","propFilter","specialEasing","cssHooks","expand","Animation","stopped","animationPrefilters","deferred","Deferred","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","fx","timer","progress","complete","fail","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","error","buildParams","traditional","v","rbracket","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","getWindow","defaultView","parentWindow","indexOf","class2type","hasOwn","version","selector","fn","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","toArray","num","pushStack","prevObject","args","first","eq","last","len","j","sort","splice","copyIsArray","copy","clone","isPlainObject","random","isReady","msg","Array","isNumeric","ownLast","globalEval","execScript","string","makeArray","arr","second","invert","callbackInverse","callbackExpect","arg","proxy","Sizzle","seed","m","groups","old","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","contains","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","setAttribute","toSelector","rsibling","testContext","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","removeChild","addHandle","handler","attrHandle","siblingCheck","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","outerCache","newCache","dirruns","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","compilerCache","sortOrder","push_native","booleans","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","unloadHandler","els","node","hasCompare","top","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","innerText","lang","elemLang","hash","location","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","n","r","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","once","stopOnFalse","disable","remove","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","suffix","expanded","parts","unit","propHooks","eased","step","linear","p","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","andSelf","_jQuery","_$","$","Plugin","_relatedTarget","$this","Modal","DEFAULTS","$body","$element","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","VERSION","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","backdrop","keyboard","that","checkScrollbar","setScrollbar","escape","resize","transition","adjustDialog","enforceFocus","emulateTransitionEnd","hideModal","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","doAnimate","callbackRemove","modalIsOverflowing","clientHeight","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","right","abs","clientWidth","measureScrollbar","bodyPad","scrollDiv","modal","Constructor","$target","showEvent","_events","_conf","configure","conf","delimiter","maxListeners","wildcard","newListener","listenerTree","EventEmitter","searchListenerTree","tree","leaf","branch","xTree","xxTree","isolatedBranch","endReached","listeners","typeLength","currentType","nextType","_listeners","**","growListenerTree","listener","warned","defaultMaxListeners","console","trace","setMaxListeners","many","ttl","_origin","emit","_all","ns","onAny","addListener","leafs","iLeaf","offAny","removeListener","removeAllListeners","listenersAny","EventEmitter2","process","title","decodeURIComponent","isHostMethod","isHostObject","o","hasFlash","navigator","plugins","description","mimeTypes","enabledPlugin","flashVersion","flash","GetVariable","notSupportedException","major","minor","HAS_FLASH_THROTTLED_BUG","dom_onReady","domIsReady","domReadyQueue","whenReady","scope","getParentObject","ii","easyXDM","_easyXDM","IFRAME_PREFIX","getDomainName","reURI","getPort","getLocation","proto","domain","port","resolveUrl","reDoubleSlash","path","substring","pathname","lastIndexOf","protocol","host","reParent","appendQueryParameters","parameters","q","useHash","destination","noOverwrite","member","testForNamePropertyBug","channelId","HAS_NAME_PROPERTY_BUG","createFrame","config","frame","frameBorder","allowTransparency","onLoad","usePost","action","checkAcl","acl","re","substr","prepareTransportStack","stackEls","isHost","query","xdm_p","channel","secret","swf","product","userAgent","remoteHelper","xdm_c","xdm_s","xdm_e","useResize","useParent","usePolling","local","images","search","xdm_pa","xdm_po","HashTransport","ReliableBehavior","QueueBehavior","encode","maxLength","VerifyBehavior","initiate","PostMessageTransport","NameTransport","NixTransport","SameOriginTransport","FrameElementTransport","FlashTransport","lazy","chainStack","stackElements","stackEl","defaults","incoming","message","origin","up","outgoing","recipient","down","destroy","removeFromStack","un","emptyFn","sEvent","fpNotify","pair","evalJSON","getJSONObject","DomHelper","requiresJSON","_map","Fn","del","Socket","onMessage","onReady","postMessage","Rpc","jsonRpcConfig","RpcBehavior","pub","targetOrigin","onDOMReady","sendFn","addSwf","swfContainer","swfNoThrottle","flashVars","destroyChannel","swfdomain","createChannel","_getOrigin","uri","_window_onMessage","callerWindow","waitForReady","referrer","_sendMessage","sendMessage","_onReady","readyCount","_onMessage","remoteOrigin","_onLoad","remoteWindow","remoteUrl","_callerWindow","_msgNr","_handleHash","_lastMsg","_remoteOrigin","_pollHash","_listenerWindow","_attachListeners","_timer","pollInterval","tries","getRef","frames","ex","idOut","idIn","currentMessage","ack","waiting","destroying","doFragment","seq","fragments","startVerification","mySecret","theirSecret","_send","jsonrpc","serializer","_createMethod","definition","_callbacks","_callbackCounter","namedParams","_executeMethod","ex1","_absolutizeURI","removeDotSegments","output","_parseURI","authority","hostname","appConfigReplacer","Apps","overwrite","isFunc","S4","array","isLocalRequest","urlLower","isNativeDOMNode","testObject","bIsNode","Node","bIsElement","HTMLElement","log","_log","_logMethod","methods","replacer","space","_ct","_f2t","_handlerCollection","appCreateRoot","appRenderBefore","appDestroyBefore","appRenderAfter","appDestroyAfter","appRender","appDestroy","appScriptLoadFailed","_defaultMethods","appConfig","appHtml","$root","appInstance","app","appId","_createHandler","sNamespace","func_or_element","bDomNodeAppropriate","_validateToken","domNode","sToken","_removeHandler","eventKey","currentEventKey","eventCollection","newEvents","ec","currentEventHandler","newHandlerCollection","iCounter","hc","currentHandler","getToken","__f2GetToken","__trigger","passableArgs","hcl","$appRoot","arData","AppHandlers","APP_CREATE_ROOT","APP_RENDER_BEFORE","APP_RENDER","APP_RENDER_AFTER","APP_DESTROY_BEFORE","APP_DESTROY","APP_DESTROY_AFTER","APP_SCRIPT_LOAD_FAILED","App","appContent","AppConfig","enableBatchRequests","instanceId","isSecure","containerLocale","localeSupport","manifestUrl","minGridSize","ui","views","AppManifest","apps","inlineScripts","AppContent","ContainerConfig","afterAppRender","beforeAppRender","debugMode","locale","scriptErrorTimeout","isSecureAppPage","secureAppPagePath","supportedViews","UI","Mask","backgroundColor","loadingIcon","useClasses","appConfigs","loadScripts","inlines","loadStyles","Css","_PREFIX","APP","APP_CONTAINER","APP_TITLE","APP_VIEW","APP_VIEW_TRIGGER","MASK","MASK_CONTAINER","Events","_APP_EVENT_PREFIX","_CONTAINER_EVENT_PREFIX","APP_SCRIPTS_LOADED","APP_SYMBOL_CHANGE","APP_WIDTH_CHANGE","CONTAINER_SYMBOL_CHANGE","CONTAINER_WIDTH_CHANGE","CONTAINER_LOCALE_CHANGE","RESOURCE_FAILED_TO_LOAD","JSONP_CALLBACK","AppStatus","ERROR","SUCCESS","Sockets","EVENT","LOAD","RPC","RPC_CALLBACK","UI_RPC","Views","DATA_ATTRIBUTE","ABOUT","HELP","HOME","REMOVE","SETTINGS","_socketEmit","broadcast","Constants","timesToListen","_secureAppPagePath","_apps","_rEvents","_rRpc","_rRpcCallback","_rSocketLoad","_rUiCall","_createAppToContainerSocket","isLoaded","messagePlayback","socket","appParts","registerApps","_createContainerToAppSocket","appManifest","iframeProps","scrolling","_createRpcCallback","callbackId","parseFunction","functionName","parseMessage","regEx","callbacks","c","_registerCallback","messageType","cid","isRemote","register","_containerConfig","UI_Class","_appConfig","_updateHeight","outerHeight","_modalHtml","showCancel","hideMask","Modals","_renderAlert","_renderConfirm","alert","isInit","confirm","okCallback","cancelCallback","setTitle","showMask","showLoader","updateHeight","_rValidEvents","_isValid","containerConfig","showLoading","mask","background-color","background-image","background-position","background-repeat","min-height","z-index","_config","_bUsesAppHandlers","_sAppHandlerToken","_loadingScripts","_afterAppRender","appContainer","_appRender","_outerHtml","_beforeAppRender","_appScriptLoadFailed","scriptInfo","_createAppConfig","_getAppConfigFromElement","hasAttribute","contextJson","warn","_hasNonTextChildNodes","hasNodes","hasChildNodes","_hydrateContainerConfig","_initAppEvents","view","removeApp","_initContainerEvents","resizeTimeout","resizeHandler","_isPlaceholderElement","_isInit","_createAppInstance","_loadApps","_loadSecureApp","_findExistingScripts","_findExistingStyles","_loadStyles","cb","existingStyles","stylesFragment","useCreateStyleSheet","createStyleSheet","resourceUrl","_loadScripts","existingScripts","scriptCount","scriptsLoaded","insertBeforeEl","readyStates","loaded","_error","evtData","_checkComplete","_emptyWaitlist","resourceKey","errorEvt","waitlist","getTime","onerror","_loadInlineScripts","loadInlineScripts","eval","elementInDocument","_loadHtml","_validateApp","_validateContainerConfig","getContainerState","getContainerLocale","loadPlaceholders","addAll","appManifests","appStack","batches","callbackStack","haveManifests","preloaded","req","requests","manifestRequest","completeFunc","errorFunc","item","successFunc","requestFunc","successCallback","errorCallback","completeCallback","jqxhr","removeAllApps","autoloadEls"],"mappings":"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"} \ No newline at end of file diff --git a/sdk/f2.no-third-party.js b/sdk/f2.no-third-party.js index 3edae601..89bafa0d 100644 --- a/sdk/f2.no-third-party.js +++ b/sdk/f2.no-third-party.js @@ -5,7 +5,7 @@ } /*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sdk/f2.nuspec b/sdk/f2.nuspec new file mode 100644 index 00000000..5cb0a95b --- /dev/null +++ b/sdk/f2.nuspec @@ -0,0 +1,28 @@ + + + + F2 + 1.4.2 + F2: The Open Financial Framework + Markit On Demand + OpenF2 + https://github.com/OpenF2/F2#copyright-and-license + http://www.openf2.org/ + http://docs.openf2.org/img/favicon-32px.png + false + An open framework created for the financial services industry. + F2 is an open and free web integration framework that has been designed to help you and other financial industry participants develop custom solutions that combine the best tools and content from multiple providers into one, privately-labeled, seamlessly integrated front-end. + https://github.com/OpenF2/F2/wiki/Changelog + javascript js html css jquery twitter bootstrap + en-US + + + + + + + + + + + \ No newline at end of file diff --git a/sdk/packages/f2.basic.js b/sdk/packages/f2.basic.js index b048f681..222f2974 100644 --- a/sdk/packages/f2.basic.js +++ b/sdk/packages/f2.basic.js @@ -4,502 +4,908 @@ return; } -/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -/* - This code should be minified before deployment. - See http://javascript.crockford.com/jsmin.html - - USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO - NOT CONTROL. - - - This file creates a global JSON object containing two methods: stringify - and parse. - - JSON.stringify(value, replacer, space) - value any JavaScript value, usually an object or array. - - replacer an optional parameter that determines how object - values are stringified for objects. It can be a - function or an array of strings. - - space an optional parameter that specifies the indentation - of nested structures. If it is omitted, the text will - be packed without extra whitespace. If it is a number, - it will specify the number of spaces to indent at each - level. If it is a string (such as '\t' or ' '), - it contains the characters used to indent at each level. +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +;(function () { + // Detect the `define` function exposed by asynchronous module loaders. The + // strict `define` check is necessary for compatibility with `r.js`. + var isLoader = typeof define === "function" && define.amd; + + // A set of types used to distinguish objects from primitives. + var objectTypes = { + "function": true, + "object": true + }; - This method produces a JSON text from a JavaScript value. + // Detect the `exports` object exposed by CommonJS implementations. + var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; - When an object value is found, if the object contains a toJSON - method, its toJSON method will be called and the result will be - stringified. A toJSON method does not serialize: it returns the - value represented by the name/value pair that should be serialized, - or undefined if nothing should be serialized. The toJSON method - will be passed the key associated with the value, and this will be - bound to the value + // Use the `global` object exposed by Node (including Browserify via + // `insert-module-globals`), Narwhal, and Ringo as the default context, + // and the `window` object in browsers. Rhino exports a `global` function + // instead. + var root = objectTypes[typeof window] && window || this, + freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; - For example, this would serialize Dates as ISO strings. + if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { + root = freeGlobal; + } - Date.prototype.toJSON = function (key) { - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } + // Public: Initializes JSON 3 using the given `context` object, attaching the + // `stringify` and `parse` functions to the specified `exports` object. + function runInContext(context, exports) { + context || (context = root["Object"]()); + exports || (exports = root["Object"]()); + + // Native constructor aliases. + var Number = context["Number"] || root["Number"], + String = context["String"] || root["String"], + Object = context["Object"] || root["Object"], + Date = context["Date"] || root["Date"], + SyntaxError = context["SyntaxError"] || root["SyntaxError"], + TypeError = context["TypeError"] || root["TypeError"], + Math = context["Math"] || root["Math"], + nativeJSON = context["JSON"] || root["JSON"]; + + // Delegate to the native `stringify` and `parse` implementations. + if (typeof nativeJSON == "object" && nativeJSON) { + exports.stringify = nativeJSON.stringify; + exports.parse = nativeJSON.parse; + } - return this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z'; - }; - - You can provide an optional replacer method. It will be passed the - key and value of each member, with this bound to the containing - object. The value that is returned from your method will be - serialized. If your method returns undefined, then the member will - be excluded from the serialization. - - If the replacer parameter is an array of strings, then it will be - used to select the members to be serialized. It filters the results - such that only members with keys listed in the replacer array are - stringified. - - Values that do not have JSON representations, such as undefined or - functions, will not be serialized. Such values in objects will be - dropped; in arrays they will be replaced with null. You can use - a replacer function to replace those with JSON values. - JSON.stringify(undefined) returns undefined. - - The optional space parameter produces a stringification of the - value that is filled with line breaks and indentation to make it - easier to read. - - If the space parameter is a non-empty string, then that string will - be used for indentation. If the space parameter is a number, then - the indentation will be that many spaces. - - Example: - - text = JSON.stringify(['e', {pluribus: 'unum'}]); - // text is '["e",{"pluribus":"unum"}]' - - - text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); - // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' - - text = JSON.stringify([new Date()], function (key, value) { - return this[key] instanceof Date ? - 'Date(' + this[key] + ')' : value; - }); - // text is '["Date(---current time---)"]' - - - JSON.parse(text, reviver) - This method parses a JSON text to produce an object or array. - It can throw a SyntaxError exception. - - The optional reviver parameter is a function that can filter and - transform the results. It receives each of the keys and values, - and its return value is used instead of the original value. - If it returns what it received, then the structure is not modified. - If it returns undefined then the member is deleted. - - Example: - - // Parse the text. Values that look like ISO date strings will - // be converted to Date objects. - - myData = JSON.parse(text, function (key, value) { - var a; - if (typeof value === 'string') { - a = -/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); - if (a) { - return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], - +a[5], +a[6])); - } - } - return value; - }); - - myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { - var d; - if (typeof value === 'string' && - value.slice(0, 5) === 'Date(' && - value.slice(-1) === ')') { - d = new Date(value.slice(5, -1)); - if (d) { - return d; - } + // Convenience aliases. + var objectProto = Object.prototype, + getClass = objectProto.toString, + isProperty, forEach, undef; + + // Test the `Date#getUTC*` methods. Based on work by @Yaffle. + var isExtended = new Date(-3509827334573292); + try { + // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical + // results for certain dates in Opera >= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } } - return value; - }); - - - This is a reference implementation. You are free to copy, modify, or - redistribute. -*/ - -/*jslint evil: true, regexp: true */ - -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ - - -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; } - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); }; + } - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; + result += useCharIndex ? symbols[index] : value.charAt(index); } + } + return result + '"'; + }; -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. + } - var j; + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; - function walk(holder, key) { + // Internal: Stores the parser state. + var Index, Source; -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); + } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); + } + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; } - return reviver.call(holder, key, value); + // Unrecognized token. + abort(); } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; } + // Unexpected token encountered. + abort(); + } + return value; + }; -// If the text is not JSON parseable, then a SyntaxError is thrown. + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; + + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; - throw new SyntaxError('JSON.parse'); + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; }; + } } -}()); + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); /*! * Hij1nx requires the following notice to accompany EventEmitter: * @@ -1089,7 +1495,7 @@ if (typeof JSON !== 'object') { /*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sdk/packages/f2.basic.min.js b/sdk/packages/f2.basic.min.js index 62b6b762..76d02e45 100644 --- a/sdk/packages/f2.basic.min.js +++ b/sdk/packages/f2.basic.min.js @@ -1,25 +1,6 @@ -/*! F2 - v1.4.2 - 06-20-2016 - See below for copyright and license */ -!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(a){return 10>a?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } } - return value; - }); - - - This is a reference implementation. You are free to copy, modify, or - redistribute. -*/ - -/*jslint evil: true, regexp: true */ - -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ - - -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; } - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); }; + } - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; + result += useCharIndex ? symbols[index] : value.charAt(index); } + } + return result + '"'; + }; -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. + } - var j; + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; - function walk(holder, key) { + // Internal: Stores the parser state. + var Index, Source; -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; + } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); } - return reviver.call(holder, key, value); + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; + } + // Unrecognized token. + abort(); } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; } + // Unexpected token encountered. + abort(); + } + return value; + }; + + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; -// If the text is not JSON parseable, then a SyntaxError is thrown. + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; - throw new SyntaxError('JSON.parse'); + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; }; + } } -}()); + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); /*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ @@ -14025,7 +14431,7 @@ global.easyXDM = easyXDM; })(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent); /*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sdk/packages/f2.no-bootstrap.min.js b/sdk/packages/f2.no-bootstrap.min.js index dea16c6d..66154168 100644 --- a/sdk/packages/f2.no-bootstrap.min.js +++ b/sdk/packages/f2.no-bootstrap.min.js @@ -1,24 +1,5 @@ -/*! F2 - v1.4.2 - 06-20-2016 - See below for copyright and license */ -!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(a){return 10>a?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),/*! +/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ * @@ -47,7 +28,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sdk/packages/f2.no-easyXDM.js b/sdk/packages/f2.no-easyXDM.js index a76b394c..25a18111 100644 --- a/sdk/packages/f2.no-easyXDM.js +++ b/sdk/packages/f2.no-easyXDM.js @@ -4,502 +4,908 @@ return; } -/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -/* - This code should be minified before deployment. - See http://javascript.crockford.com/jsmin.html - - USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO - NOT CONTROL. - - - This file creates a global JSON object containing two methods: stringify - and parse. - - JSON.stringify(value, replacer, space) - value any JavaScript value, usually an object or array. - - replacer an optional parameter that determines how object - values are stringified for objects. It can be a - function or an array of strings. - - space an optional parameter that specifies the indentation - of nested structures. If it is omitted, the text will - be packed without extra whitespace. If it is a number, - it will specify the number of spaces to indent at each - level. If it is a string (such as '\t' or ' '), - it contains the characters used to indent at each level. +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +;(function () { + // Detect the `define` function exposed by asynchronous module loaders. The + // strict `define` check is necessary for compatibility with `r.js`. + var isLoader = typeof define === "function" && define.amd; + + // A set of types used to distinguish objects from primitives. + var objectTypes = { + "function": true, + "object": true + }; - This method produces a JSON text from a JavaScript value. + // Detect the `exports` object exposed by CommonJS implementations. + var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; - When an object value is found, if the object contains a toJSON - method, its toJSON method will be called and the result will be - stringified. A toJSON method does not serialize: it returns the - value represented by the name/value pair that should be serialized, - or undefined if nothing should be serialized. The toJSON method - will be passed the key associated with the value, and this will be - bound to the value + // Use the `global` object exposed by Node (including Browserify via + // `insert-module-globals`), Narwhal, and Ringo as the default context, + // and the `window` object in browsers. Rhino exports a `global` function + // instead. + var root = objectTypes[typeof window] && window || this, + freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; - For example, this would serialize Dates as ISO strings. + if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { + root = freeGlobal; + } - Date.prototype.toJSON = function (key) { - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } + // Public: Initializes JSON 3 using the given `context` object, attaching the + // `stringify` and `parse` functions to the specified `exports` object. + function runInContext(context, exports) { + context || (context = root["Object"]()); + exports || (exports = root["Object"]()); + + // Native constructor aliases. + var Number = context["Number"] || root["Number"], + String = context["String"] || root["String"], + Object = context["Object"] || root["Object"], + Date = context["Date"] || root["Date"], + SyntaxError = context["SyntaxError"] || root["SyntaxError"], + TypeError = context["TypeError"] || root["TypeError"], + Math = context["Math"] || root["Math"], + nativeJSON = context["JSON"] || root["JSON"]; + + // Delegate to the native `stringify` and `parse` implementations. + if (typeof nativeJSON == "object" && nativeJSON) { + exports.stringify = nativeJSON.stringify; + exports.parse = nativeJSON.parse; + } - return this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z'; - }; - - You can provide an optional replacer method. It will be passed the - key and value of each member, with this bound to the containing - object. The value that is returned from your method will be - serialized. If your method returns undefined, then the member will - be excluded from the serialization. - - If the replacer parameter is an array of strings, then it will be - used to select the members to be serialized. It filters the results - such that only members with keys listed in the replacer array are - stringified. - - Values that do not have JSON representations, such as undefined or - functions, will not be serialized. Such values in objects will be - dropped; in arrays they will be replaced with null. You can use - a replacer function to replace those with JSON values. - JSON.stringify(undefined) returns undefined. - - The optional space parameter produces a stringification of the - value that is filled with line breaks and indentation to make it - easier to read. - - If the space parameter is a non-empty string, then that string will - be used for indentation. If the space parameter is a number, then - the indentation will be that many spaces. - - Example: - - text = JSON.stringify(['e', {pluribus: 'unum'}]); - // text is '["e",{"pluribus":"unum"}]' - - - text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); - // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' - - text = JSON.stringify([new Date()], function (key, value) { - return this[key] instanceof Date ? - 'Date(' + this[key] + ')' : value; - }); - // text is '["Date(---current time---)"]' - - - JSON.parse(text, reviver) - This method parses a JSON text to produce an object or array. - It can throw a SyntaxError exception. - - The optional reviver parameter is a function that can filter and - transform the results. It receives each of the keys and values, - and its return value is used instead of the original value. - If it returns what it received, then the structure is not modified. - If it returns undefined then the member is deleted. - - Example: - - // Parse the text. Values that look like ISO date strings will - // be converted to Date objects. - - myData = JSON.parse(text, function (key, value) { - var a; - if (typeof value === 'string') { - a = -/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); - if (a) { - return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], - +a[5], +a[6])); - } - } - return value; - }); - - myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { - var d; - if (typeof value === 'string' && - value.slice(0, 5) === 'Date(' && - value.slice(-1) === ')') { - d = new Date(value.slice(5, -1)); - if (d) { - return d; - } + // Convenience aliases. + var objectProto = Object.prototype, + getClass = objectProto.toString, + isProperty, forEach, undef; + + // Test the `Date#getUTC*` methods. Based on work by @Yaffle. + var isExtended = new Date(-3509827334573292); + try { + // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical + // results for certain dates in Opera >= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } } - return value; - }); - - - This is a reference implementation. You are free to copy, modify, or - redistribute. -*/ - -/*jslint evil: true, regexp: true */ - -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ - - -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; } - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); }; + } - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; + result += useCharIndex ? symbols[index] : value.charAt(index); } + } + return result + '"'; + }; -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. + } - var j; + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; - function walk(holder, key) { + // Internal: Stores the parser state. + var Index, Source; -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); + } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); + } + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; } - return reviver.call(holder, key, value); + // Unrecognized token. + abort(); } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; } + // Unexpected token encountered. + abort(); + } + return value; + }; -// If the text is not JSON parseable, then a SyntaxError is thrown. + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; + + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; - throw new SyntaxError('JSON.parse'); + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; }; + } } -}()); + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); /*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ @@ -11777,7 +12183,7 @@ var $, jQuery = $ = window.jQuery.noConflict(true); /*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sdk/packages/f2.no-easyXDM.min.js b/sdk/packages/f2.no-easyXDM.min.js index 91b90576..69e82f89 100644 --- a/sdk/packages/f2.no-easyXDM.min.js +++ b/sdk/packages/f2.no-easyXDM.min.js @@ -1,24 +1,5 @@ -/*! F2 - v1.4.2 - 06-20-2016 - See below for copyright and license */ -!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(a){return 10>a?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),/*! +/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ * @@ -47,7 +28,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } } - return value; - }); - - - This is a reference implementation. You are free to copy, modify, or - redistribute. -*/ - -/*jslint evil: true, regexp: true */ - -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ - - -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; } - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); }; + } - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; + result += useCharIndex ? symbols[index] : value.charAt(index); } + } + return result + '"'; + }; -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. + } - var j; + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; - function walk(holder, key) { + // Internal: Stores the parser state. + var Index, Source; -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; + } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); } - return reviver.call(holder, key, value); + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; + } + // Unrecognized token. + abort(); } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; } + // Unexpected token encountered. + abort(); + } + return value; + }; + + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; -// If the text is not JSON parseable, then a SyntaxError is thrown. + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; - throw new SyntaxError('JSON.parse'); + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; }; + } } -}()); + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); /*! * Hij1nx requires the following notice to accompany EventEmitter: * @@ -3674,7 +4080,7 @@ global.easyXDM = easyXDM; })(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent); /*! - * F2 v1.4.2 06-20-2016 + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sdk/packages/f2.no-jquery-or-bootstrap.min.js b/sdk/packages/f2.no-jquery-or-bootstrap.min.js index 21aac72e..ff8c4a6e 100644 --- a/sdk/packages/f2.no-jquery-or-bootstrap.min.js +++ b/sdk/packages/f2.no-jquery-or-bootstrap.min.js @@ -1,25 +1,7 @@ -/*! F2 - v1.4.2 - 06-20-2016 - See below for copyright and license */ -!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(a){return 10>a?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 06-20-2016 +/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){ +var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! + * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sdk/src/third-party/json2.js b/sdk/src/third-party/json2.js deleted file mode 100644 index 30697608..00000000 --- a/sdk/src/third-party/json2.js +++ /dev/null @@ -1,495 +0,0 @@ -/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -/* - This code should be minified before deployment. - See http://javascript.crockford.com/jsmin.html - - USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO - NOT CONTROL. - - - This file creates a global JSON object containing two methods: stringify - and parse. - - JSON.stringify(value, replacer, space) - value any JavaScript value, usually an object or array. - - replacer an optional parameter that determines how object - values are stringified for objects. It can be a - function or an array of strings. - - space an optional parameter that specifies the indentation - of nested structures. If it is omitted, the text will - be packed without extra whitespace. If it is a number, - it will specify the number of spaces to indent at each - level. If it is a string (such as '\t' or ' '), - it contains the characters used to indent at each level. - - This method produces a JSON text from a JavaScript value. - - When an object value is found, if the object contains a toJSON - method, its toJSON method will be called and the result will be - stringified. A toJSON method does not serialize: it returns the - value represented by the name/value pair that should be serialized, - or undefined if nothing should be serialized. The toJSON method - will be passed the key associated with the value, and this will be - bound to the value - - For example, this would serialize Dates as ISO strings. - - Date.prototype.toJSON = function (key) { - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } - - return this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z'; - }; - - You can provide an optional replacer method. It will be passed the - key and value of each member, with this bound to the containing - object. The value that is returned from your method will be - serialized. If your method returns undefined, then the member will - be excluded from the serialization. - - If the replacer parameter is an array of strings, then it will be - used to select the members to be serialized. It filters the results - such that only members with keys listed in the replacer array are - stringified. - - Values that do not have JSON representations, such as undefined or - functions, will not be serialized. Such values in objects will be - dropped; in arrays they will be replaced with null. You can use - a replacer function to replace those with JSON values. - JSON.stringify(undefined) returns undefined. - - The optional space parameter produces a stringification of the - value that is filled with line breaks and indentation to make it - easier to read. - - If the space parameter is a non-empty string, then that string will - be used for indentation. If the space parameter is a number, then - the indentation will be that many spaces. - - Example: - - text = JSON.stringify(['e', {pluribus: 'unum'}]); - // text is '["e",{"pluribus":"unum"}]' - - - text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); - // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' - - text = JSON.stringify([new Date()], function (key, value) { - return this[key] instanceof Date ? - 'Date(' + this[key] + ')' : value; - }); - // text is '["Date(---current time---)"]' - - - JSON.parse(text, reviver) - This method parses a JSON text to produce an object or array. - It can throw a SyntaxError exception. - - The optional reviver parameter is a function that can filter and - transform the results. It receives each of the keys and values, - and its return value is used instead of the original value. - If it returns what it received, then the structure is not modified. - If it returns undefined then the member is deleted. - - Example: - - // Parse the text. Values that look like ISO date strings will - // be converted to Date objects. - - myData = JSON.parse(text, function (key, value) { - var a; - if (typeof value === 'string') { - a = -/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); - if (a) { - return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], - +a[5], +a[6])); - } - } - return value; - }); - - myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { - var d; - if (typeof value === 'string' && - value.slice(0, 5) === 'Date(' && - value.slice(-1) === ')') { - d = new Date(value.slice(5, -1)); - if (d) { - return d; - } - } - return value; - }); - - - This is a reference implementation. You are free to copy, modify, or - redistribute. -*/ - -/*jslint evil: true, regexp: true */ - -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ - - -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } - - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; - }; - - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); - }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. - - if (typeof rep === 'function') { - value = rep.call(holder, key, value); - } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; - } - -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. - - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; - } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; - } - -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } - -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; - } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); - } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); - }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. - - var j; - - function walk(holder, key) { - -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. - - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } - } - } - } - return reviver.call(holder, key, value); - } - - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); - } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; - } - -// If the text is not JSON parseable, then a SyntaxError is thrown. - - throw new SyntaxError('JSON.parse'); - }; - } -}()); From 85928168e650921ef9af6ae9807e62ffc23a3727 Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 10 May 2017 16:29:11 -0600 Subject: [PATCH 2/6] nuget build --- dist/f2.basic.js | 1312 +++++++++++------ dist/f2.basic.min.js | 21 +- dist/f2.no-bootstrap.js | 1312 +++++++++++------ dist/f2.no-bootstrap.min.js | 21 +- dist/f2.no-easyXDM.js | 1312 +++++++++++------ dist/f2.no-easyXDM.min.js | 21 +- dist/f2.no-jquery-or-bootstrap.js | 1312 +++++++++++------ dist/f2.no-jquery-or-bootstrap.min.js | 22 +- docs/dist/extending-f2.html | 2 +- docs/dist/f2js-sdk.html | 2 +- docs/dist/sdk/classes/F2.App.html | 6 +- docs/dist/sdk/classes/F2.AppConfig.html | 34 +- docs/dist/sdk/classes/F2.AppHandlers.html | 14 +- .../classes/F2.AppManifest.AppContent.html | 8 +- docs/dist/sdk/classes/F2.AppManifest.html | 10 +- .../sdk/classes/F2.Constants.AppHandlers.html | 18 +- docs/dist/sdk/classes/F2.Constants.Css.html | 16 +- .../dist/sdk/classes/F2.Constants.Events.html | 16 +- .../sdk/classes/F2.Constants.Sockets.html | 12 +- docs/dist/sdk/classes/F2.Constants.Views.html | 14 +- docs/dist/sdk/classes/F2.Constants.html | 2 +- .../classes/F2.ContainerConfig.UI.Mask.html | 12 +- .../sdk/classes/F2.ContainerConfig.UI.html | 2 +- docs/dist/sdk/classes/F2.ContainerConfig.html | 34 +- docs/dist/sdk/classes/F2.Events.html | 14 +- docs/dist/sdk/classes/F2.Rpc.html | 22 +- docs/dist/sdk/classes/F2.UI.Modals.html | 6 +- docs/dist/sdk/classes/F2.UI.Views.html | 8 +- docs/dist/sdk/classes/F2.UI.html | 18 +- docs/dist/sdk/classes/F2.html | 78 +- docs/dist/sdk/data.json | 412 +++--- docs/dist/sdk/files/sdk_src_F2.js.html | 8 +- .../sdk/files/sdk_src_app_handlers.js.html | 8 +- docs/dist/sdk/files/sdk_src_classes.js.html | 8 +- docs/dist/sdk/files/sdk_src_constants.js.html | 8 +- docs/dist/sdk/files/sdk_src_container.js.html | 8 +- docs/dist/sdk/files/sdk_src_events.js.html | 8 +- docs/dist/sdk/files/sdk_src_rpc.js.html | 8 +- docs/dist/sdk/files/sdk_src_ui.js.html | 8 +- docs/dist/sdk/modules/f2.html | 2 +- sdk/f2.nuspec | 28 - 41 files changed, 3854 insertions(+), 2333 deletions(-) delete mode 100644 sdk/f2.nuspec diff --git a/dist/f2.basic.js b/dist/f2.basic.js index bccf2a23..222f2974 100644 --- a/dist/f2.basic.js +++ b/dist/f2.basic.js @@ -4,502 +4,908 @@ return; } -/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -/* - This code should be minified before deployment. - See http://javascript.crockford.com/jsmin.html - - USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO - NOT CONTROL. - - - This file creates a global JSON object containing two methods: stringify - and parse. - - JSON.stringify(value, replacer, space) - value any JavaScript value, usually an object or array. - - replacer an optional parameter that determines how object - values are stringified for objects. It can be a - function or an array of strings. - - space an optional parameter that specifies the indentation - of nested structures. If it is omitted, the text will - be packed without extra whitespace. If it is a number, - it will specify the number of spaces to indent at each - level. If it is a string (such as '\t' or ' '), - it contains the characters used to indent at each level. +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +;(function () { + // Detect the `define` function exposed by asynchronous module loaders. The + // strict `define` check is necessary for compatibility with `r.js`. + var isLoader = typeof define === "function" && define.amd; + + // A set of types used to distinguish objects from primitives. + var objectTypes = { + "function": true, + "object": true + }; - This method produces a JSON text from a JavaScript value. + // Detect the `exports` object exposed by CommonJS implementations. + var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; - When an object value is found, if the object contains a toJSON - method, its toJSON method will be called and the result will be - stringified. A toJSON method does not serialize: it returns the - value represented by the name/value pair that should be serialized, - or undefined if nothing should be serialized. The toJSON method - will be passed the key associated with the value, and this will be - bound to the value + // Use the `global` object exposed by Node (including Browserify via + // `insert-module-globals`), Narwhal, and Ringo as the default context, + // and the `window` object in browsers. Rhino exports a `global` function + // instead. + var root = objectTypes[typeof window] && window || this, + freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; - For example, this would serialize Dates as ISO strings. + if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { + root = freeGlobal; + } - Date.prototype.toJSON = function (key) { - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } + // Public: Initializes JSON 3 using the given `context` object, attaching the + // `stringify` and `parse` functions to the specified `exports` object. + function runInContext(context, exports) { + context || (context = root["Object"]()); + exports || (exports = root["Object"]()); + + // Native constructor aliases. + var Number = context["Number"] || root["Number"], + String = context["String"] || root["String"], + Object = context["Object"] || root["Object"], + Date = context["Date"] || root["Date"], + SyntaxError = context["SyntaxError"] || root["SyntaxError"], + TypeError = context["TypeError"] || root["TypeError"], + Math = context["Math"] || root["Math"], + nativeJSON = context["JSON"] || root["JSON"]; + + // Delegate to the native `stringify` and `parse` implementations. + if (typeof nativeJSON == "object" && nativeJSON) { + exports.stringify = nativeJSON.stringify; + exports.parse = nativeJSON.parse; + } - return this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z'; - }; - - You can provide an optional replacer method. It will be passed the - key and value of each member, with this bound to the containing - object. The value that is returned from your method will be - serialized. If your method returns undefined, then the member will - be excluded from the serialization. - - If the replacer parameter is an array of strings, then it will be - used to select the members to be serialized. It filters the results - such that only members with keys listed in the replacer array are - stringified. - - Values that do not have JSON representations, such as undefined or - functions, will not be serialized. Such values in objects will be - dropped; in arrays they will be replaced with null. You can use - a replacer function to replace those with JSON values. - JSON.stringify(undefined) returns undefined. - - The optional space parameter produces a stringification of the - value that is filled with line breaks and indentation to make it - easier to read. - - If the space parameter is a non-empty string, then that string will - be used for indentation. If the space parameter is a number, then - the indentation will be that many spaces. - - Example: - - text = JSON.stringify(['e', {pluribus: 'unum'}]); - // text is '["e",{"pluribus":"unum"}]' - - - text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); - // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' - - text = JSON.stringify([new Date()], function (key, value) { - return this[key] instanceof Date ? - 'Date(' + this[key] + ')' : value; - }); - // text is '["Date(---current time---)"]' - - - JSON.parse(text, reviver) - This method parses a JSON text to produce an object or array. - It can throw a SyntaxError exception. - - The optional reviver parameter is a function that can filter and - transform the results. It receives each of the keys and values, - and its return value is used instead of the original value. - If it returns what it received, then the structure is not modified. - If it returns undefined then the member is deleted. - - Example: - - // Parse the text. Values that look like ISO date strings will - // be converted to Date objects. - - myData = JSON.parse(text, function (key, value) { - var a; - if (typeof value === 'string') { - a = -/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); - if (a) { - return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], - +a[5], +a[6])); - } - } - return value; - }); - - myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { - var d; - if (typeof value === 'string' && - value.slice(0, 5) === 'Date(' && - value.slice(-1) === ')') { - d = new Date(value.slice(5, -1)); - if (d) { - return d; - } + // Convenience aliases. + var objectProto = Object.prototype, + getClass = objectProto.toString, + isProperty, forEach, undef; + + // Test the `Date#getUTC*` methods. Based on work by @Yaffle. + var isExtended = new Date(-3509827334573292); + try { + // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical + // results for certain dates in Opera >= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } } - return value; - }); - - - This is a reference implementation. You are free to copy, modify, or - redistribute. -*/ - -/*jslint evil: true, regexp: true */ - -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ - - -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; } - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); }; + } - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; + result += useCharIndex ? symbols[index] : value.charAt(index); } + } + return result + '"'; + }; -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. + } - var j; + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; - function walk(holder, key) { + // Internal: Stores the parser state. + var Index, Source; -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); + } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); + } + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; } - return reviver.call(holder, key, value); + // Unrecognized token. + abort(); } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; } + // Unexpected token encountered. + abort(); + } + return value; + }; -// If the text is not JSON parseable, then a SyntaxError is thrown. + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; + + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; - throw new SyntaxError('JSON.parse'); + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; }; + } } -}()); + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); /*! * Hij1nx requires the following notice to accompany EventEmitter: * diff --git a/dist/f2.basic.min.js b/dist/f2.basic.min.js index 46c5ea8e..76d02e45 100644 --- a/dist/f2.basic.min.js +++ b/dist/f2.basic.min.js @@ -1,24 +1,5 @@ /*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ -!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(a){return 10>a?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } } - return value; - }); - - - This is a reference implementation. You are free to copy, modify, or - redistribute. -*/ - -/*jslint evil: true, regexp: true */ - -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ - - -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; } - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); }; + } - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; + result += useCharIndex ? symbols[index] : value.charAt(index); } + } + return result + '"'; + }; -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. + } - var j; + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; - function walk(holder, key) { + // Internal: Stores the parser state. + var Index, Source; -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; + } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); } - return reviver.call(holder, key, value); + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; + } + // Unrecognized token. + abort(); } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; } + // Unexpected token encountered. + abort(); + } + return value; + }; + + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; -// If the text is not JSON parseable, then a SyntaxError is thrown. + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; - throw new SyntaxError('JSON.parse'); + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; }; + } } -}()); + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); /*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ diff --git a/dist/f2.no-bootstrap.min.js b/dist/f2.no-bootstrap.min.js index cc1a668e..66154168 100644 --- a/dist/f2.no-bootstrap.min.js +++ b/dist/f2.no-bootstrap.min.js @@ -1,24 +1,5 @@ /*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ -!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(a){return 10>a?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),/*! +!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ * diff --git a/dist/f2.no-easyXDM.js b/dist/f2.no-easyXDM.js index 5baea3eb..25a18111 100644 --- a/dist/f2.no-easyXDM.js +++ b/dist/f2.no-easyXDM.js @@ -4,502 +4,908 @@ return; } -/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -/* - This code should be minified before deployment. - See http://javascript.crockford.com/jsmin.html - - USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO - NOT CONTROL. - - - This file creates a global JSON object containing two methods: stringify - and parse. - - JSON.stringify(value, replacer, space) - value any JavaScript value, usually an object or array. - - replacer an optional parameter that determines how object - values are stringified for objects. It can be a - function or an array of strings. - - space an optional parameter that specifies the indentation - of nested structures. If it is omitted, the text will - be packed without extra whitespace. If it is a number, - it will specify the number of spaces to indent at each - level. If it is a string (such as '\t' or ' '), - it contains the characters used to indent at each level. +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +;(function () { + // Detect the `define` function exposed by asynchronous module loaders. The + // strict `define` check is necessary for compatibility with `r.js`. + var isLoader = typeof define === "function" && define.amd; + + // A set of types used to distinguish objects from primitives. + var objectTypes = { + "function": true, + "object": true + }; - This method produces a JSON text from a JavaScript value. + // Detect the `exports` object exposed by CommonJS implementations. + var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; - When an object value is found, if the object contains a toJSON - method, its toJSON method will be called and the result will be - stringified. A toJSON method does not serialize: it returns the - value represented by the name/value pair that should be serialized, - or undefined if nothing should be serialized. The toJSON method - will be passed the key associated with the value, and this will be - bound to the value + // Use the `global` object exposed by Node (including Browserify via + // `insert-module-globals`), Narwhal, and Ringo as the default context, + // and the `window` object in browsers. Rhino exports a `global` function + // instead. + var root = objectTypes[typeof window] && window || this, + freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; - For example, this would serialize Dates as ISO strings. + if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { + root = freeGlobal; + } - Date.prototype.toJSON = function (key) { - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } + // Public: Initializes JSON 3 using the given `context` object, attaching the + // `stringify` and `parse` functions to the specified `exports` object. + function runInContext(context, exports) { + context || (context = root["Object"]()); + exports || (exports = root["Object"]()); + + // Native constructor aliases. + var Number = context["Number"] || root["Number"], + String = context["String"] || root["String"], + Object = context["Object"] || root["Object"], + Date = context["Date"] || root["Date"], + SyntaxError = context["SyntaxError"] || root["SyntaxError"], + TypeError = context["TypeError"] || root["TypeError"], + Math = context["Math"] || root["Math"], + nativeJSON = context["JSON"] || root["JSON"]; + + // Delegate to the native `stringify` and `parse` implementations. + if (typeof nativeJSON == "object" && nativeJSON) { + exports.stringify = nativeJSON.stringify; + exports.parse = nativeJSON.parse; + } - return this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z'; - }; - - You can provide an optional replacer method. It will be passed the - key and value of each member, with this bound to the containing - object. The value that is returned from your method will be - serialized. If your method returns undefined, then the member will - be excluded from the serialization. - - If the replacer parameter is an array of strings, then it will be - used to select the members to be serialized. It filters the results - such that only members with keys listed in the replacer array are - stringified. - - Values that do not have JSON representations, such as undefined or - functions, will not be serialized. Such values in objects will be - dropped; in arrays they will be replaced with null. You can use - a replacer function to replace those with JSON values. - JSON.stringify(undefined) returns undefined. - - The optional space parameter produces a stringification of the - value that is filled with line breaks and indentation to make it - easier to read. - - If the space parameter is a non-empty string, then that string will - be used for indentation. If the space parameter is a number, then - the indentation will be that many spaces. - - Example: - - text = JSON.stringify(['e', {pluribus: 'unum'}]); - // text is '["e",{"pluribus":"unum"}]' - - - text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); - // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' - - text = JSON.stringify([new Date()], function (key, value) { - return this[key] instanceof Date ? - 'Date(' + this[key] + ')' : value; - }); - // text is '["Date(---current time---)"]' - - - JSON.parse(text, reviver) - This method parses a JSON text to produce an object or array. - It can throw a SyntaxError exception. - - The optional reviver parameter is a function that can filter and - transform the results. It receives each of the keys and values, - and its return value is used instead of the original value. - If it returns what it received, then the structure is not modified. - If it returns undefined then the member is deleted. - - Example: - - // Parse the text. Values that look like ISO date strings will - // be converted to Date objects. - - myData = JSON.parse(text, function (key, value) { - var a; - if (typeof value === 'string') { - a = -/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); - if (a) { - return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], - +a[5], +a[6])); - } - } - return value; - }); - - myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { - var d; - if (typeof value === 'string' && - value.slice(0, 5) === 'Date(' && - value.slice(-1) === ')') { - d = new Date(value.slice(5, -1)); - if (d) { - return d; - } + // Convenience aliases. + var objectProto = Object.prototype, + getClass = objectProto.toString, + isProperty, forEach, undef; + + // Test the `Date#getUTC*` methods. Based on work by @Yaffle. + var isExtended = new Date(-3509827334573292); + try { + // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical + // results for certain dates in Opera >= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } } - return value; - }); - - - This is a reference implementation. You are free to copy, modify, or - redistribute. -*/ - -/*jslint evil: true, regexp: true */ - -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ - - -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; } - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); }; + } - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; + result += useCharIndex ? symbols[index] : value.charAt(index); } + } + return result + '"'; + }; -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. + } - var j; + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; - function walk(holder, key) { + // Internal: Stores the parser state. + var Index, Source; -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); + } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); + } + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; } - return reviver.call(holder, key, value); + // Unrecognized token. + abort(); } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; } + // Unexpected token encountered. + abort(); + } + return value; + }; -// If the text is not JSON parseable, then a SyntaxError is thrown. + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; + + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; - throw new SyntaxError('JSON.parse'); + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; }; + } } -}()); + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); /*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ diff --git a/dist/f2.no-easyXDM.min.js b/dist/f2.no-easyXDM.min.js index 555376f2..69e82f89 100644 --- a/dist/f2.no-easyXDM.min.js +++ b/dist/f2.no-easyXDM.min.js @@ -1,24 +1,5 @@ /*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ -!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(a){return 10>a?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),/*! +!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ * diff --git a/dist/f2.no-jquery-or-bootstrap.js b/dist/f2.no-jquery-or-bootstrap.js index 4542ede8..8a341d0e 100644 --- a/dist/f2.no-jquery-or-bootstrap.js +++ b/dist/f2.no-jquery-or-bootstrap.js @@ -4,502 +4,908 @@ return; } -/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -/* - This code should be minified before deployment. - See http://javascript.crockford.com/jsmin.html - - USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO - NOT CONTROL. - - - This file creates a global JSON object containing two methods: stringify - and parse. - - JSON.stringify(value, replacer, space) - value any JavaScript value, usually an object or array. - - replacer an optional parameter that determines how object - values are stringified for objects. It can be a - function or an array of strings. - - space an optional parameter that specifies the indentation - of nested structures. If it is omitted, the text will - be packed without extra whitespace. If it is a number, - it will specify the number of spaces to indent at each - level. If it is a string (such as '\t' or ' '), - it contains the characters used to indent at each level. - - This method produces a JSON text from a JavaScript value. - - When an object value is found, if the object contains a toJSON - method, its toJSON method will be called and the result will be - stringified. A toJSON method does not serialize: it returns the - value represented by the name/value pair that should be serialized, - or undefined if nothing should be serialized. The toJSON method - will be passed the key associated with the value, and this will be - bound to the value - - For example, this would serialize Dates as ISO strings. - - Date.prototype.toJSON = function (key) { - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } - - return this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z'; - }; - - You can provide an optional replacer method. It will be passed the - key and value of each member, with this bound to the containing - object. The value that is returned from your method will be - serialized. If your method returns undefined, then the member will - be excluded from the serialization. - - If the replacer parameter is an array of strings, then it will be - used to select the members to be serialized. It filters the results - such that only members with keys listed in the replacer array are - stringified. - - Values that do not have JSON representations, such as undefined or - functions, will not be serialized. Such values in objects will be - dropped; in arrays they will be replaced with null. You can use - a replacer function to replace those with JSON values. - JSON.stringify(undefined) returns undefined. - - The optional space parameter produces a stringification of the - value that is filled with line breaks and indentation to make it - easier to read. - - If the space parameter is a non-empty string, then that string will - be used for indentation. If the space parameter is a number, then - the indentation will be that many spaces. - - Example: - - text = JSON.stringify(['e', {pluribus: 'unum'}]); - // text is '["e",{"pluribus":"unum"}]' - - - text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); - // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' - - text = JSON.stringify([new Date()], function (key, value) { - return this[key] instanceof Date ? - 'Date(' + this[key] + ')' : value; - }); - // text is '["Date(---current time---)"]' - - - JSON.parse(text, reviver) - This method parses a JSON text to produce an object or array. - It can throw a SyntaxError exception. +/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */ +;(function () { + // Detect the `define` function exposed by asynchronous module loaders. The + // strict `define` check is necessary for compatibility with `r.js`. + var isLoader = typeof define === "function" && define.amd; + + // A set of types used to distinguish objects from primitives. + var objectTypes = { + "function": true, + "object": true + }; - The optional reviver parameter is a function that can filter and - transform the results. It receives each of the keys and values, - and its return value is used instead of the original value. - If it returns what it received, then the structure is not modified. - If it returns undefined then the member is deleted. + // Detect the `exports` object exposed by CommonJS implementations. + var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports; - Example: + // Use the `global` object exposed by Node (including Browserify via + // `insert-module-globals`), Narwhal, and Ringo as the default context, + // and the `window` object in browsers. Rhino exports a `global` function + // instead. + var root = objectTypes[typeof window] && window || this, + freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global; - // Parse the text. Values that look like ISO date strings will - // be converted to Date objects. + if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) { + root = freeGlobal; + } - myData = JSON.parse(text, function (key, value) { - var a; - if (typeof value === 'string') { - a = -/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); - if (a) { - return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], - +a[5], +a[6])); - } - } - return value; - }); + // Public: Initializes JSON 3 using the given `context` object, attaching the + // `stringify` and `parse` functions to the specified `exports` object. + function runInContext(context, exports) { + context || (context = root["Object"]()); + exports || (exports = root["Object"]()); + + // Native constructor aliases. + var Number = context["Number"] || root["Number"], + String = context["String"] || root["String"], + Object = context["Object"] || root["Object"], + Date = context["Date"] || root["Date"], + SyntaxError = context["SyntaxError"] || root["SyntaxError"], + TypeError = context["TypeError"] || root["TypeError"], + Math = context["Math"] || root["Math"], + nativeJSON = context["JSON"] || root["JSON"]; + + // Delegate to the native `stringify` and `parse` implementations. + if (typeof nativeJSON == "object" && nativeJSON) { + exports.stringify = nativeJSON.stringify; + exports.parse = nativeJSON.parse; + } - myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { - var d; - if (typeof value === 'string' && - value.slice(0, 5) === 'Date(' && - value.slice(-1) === ')') { - d = new Date(value.slice(5, -1)); - if (d) { - return d; - } + // Convenience aliases. + var objectProto = Object.prototype, + getClass = objectProto.toString, + isProperty, forEach, undef; + + // Test the `Date#getUTC*` methods. Based on work by @Yaffle. + var isExtended = new Date(-3509827334573292); + try { + // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical + // results for certain dates in Opera >= 10.53. + isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 && + // Safari < 2.0.2 stores the internal millisecond time value correctly, + // but clips the values returned by the date methods to the range of + // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]). + isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708; + } catch (exception) {} + + // Internal: Determines whether the native `JSON.stringify` and `parse` + // implementations are spec-compliant. Based on work by Ken Snyder. + function has(name) { + if (has[name] !== undef) { + // Return cached feature test result. + return has[name]; + } + var isSupported; + if (name == "bug-string-char-index") { + // IE <= 7 doesn't support accessing string characters using square + // bracket notation. IE 8 only supports this for primitives. + isSupported = "a"[0] != "a"; + } else if (name == "json") { + // Indicates whether both `JSON.stringify` and `JSON.parse` are + // supported. + isSupported = has("json-stringify") && has("json-parse"); + } else { + var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}'; + // Test `JSON.stringify`. + if (name == "json-stringify") { + var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended; + if (stringifySupported) { + // A test function object with a custom `toJSON` method. + (value = function () { + return 1; + }).toJSON = value; + try { + stringifySupported = + // Firefox 3.1b1 and b2 serialize string, number, and boolean + // primitives as object literals. + stringify(0) === "0" && + // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object + // literals. + stringify(new Number()) === "0" && + stringify(new String()) == '""' && + // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or + // does not define a canonical JSON representation (this applies to + // objects with `toJSON` properties as well, *unless* they are nested + // within an object or array). + stringify(getClass) === undef && + // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and + // FF 3.1b3 pass this test. + stringify(undef) === undef && + // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s, + // respectively, if the value is omitted entirely. + stringify() === undef && + // FF 3.1b1, 2 throw an error if the given value is not a number, + // string, array, object, Boolean, or `null` literal. This applies to + // objects with custom `toJSON` methods as well, unless they are nested + // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON` + // methods entirely. + stringify(value) === "1" && + stringify([value]) == "[1]" && + // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of + // `"[null]"`. + stringify([undef]) == "[null]" && + // YUI 3.0.0b1 fails to serialize `null` literals. + stringify(null) == "null" && + // FF 3.1b1, 2 halts serialization if an array contains a function: + // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3 + // elides non-JSON values from objects and arrays, unless they + // define custom `toJSON` methods. + stringify([undef, getClass, null]) == "[null,null,null]" && + // Simple serialization test. FF 3.1b1 uses Unicode escape sequences + // where character escape codes are expected (e.g., `\b` => `\u0008`). + stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized && + // FF 3.1b1 and b2 ignore the `filter` and `width` arguments. + stringify(null, value) === "1" && + stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" && + // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly + // serialize extended years. + stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' && + // The milliseconds are optional in ES 5, but required in 5.1. + stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' && + // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative + // four-digit years instead of six-digit years. Credits: @Yaffle. + stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' && + // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond + // values less than 1000. Credits: @Yaffle. + stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"'; + } catch (exception) { + stringifySupported = false; + } + } + isSupported = stringifySupported; + } + // Test `JSON.parse`. + if (name == "json-parse") { + var parse = exports.parse; + if (typeof parse == "function") { + try { + // FF 3.1b1, b2 will throw an exception if a bare literal is provided. + // Conforming implementations should also coerce the initial argument to + // a string prior to parsing. + if (parse("0") === 0 && !parse(false)) { + // Simple parsing test. + value = parse(serialized); + var parseSupported = value["a"].length == 5 && value["a"][0] === 1; + if (parseSupported) { + try { + // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings. + parseSupported = !parse('"\t"'); + } catch (exception) {} + if (parseSupported) { + try { + // FF 4.0 and 4.0.1 allow leading `+` signs and leading + // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow + // certain octal literals. + parseSupported = parse("01") !== 1; + } catch (exception) {} + } + if (parseSupported) { + try { + // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal + // points. These environments, along with FF 3.1b1 and 2, + // also allow trailing commas in JSON objects and arrays. + parseSupported = parse("1.") !== 1; + } catch (exception) {} + } } - return value; - }); - - - This is a reference implementation. You are free to copy, modify, or - redistribute. -*/ - -/*jslint evil: true, regexp: true */ - -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ - - -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. - -if (typeof JSON !== 'object') { - JSON = {}; -} - -(function () { - 'use strict'; - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; + } + } catch (exception) { + parseSupported = false; + } + } + isSupported = parseSupported; + } + } + return has[name] = !!isSupported; } - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return isFinite(this.valueOf()) - ? this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z' - : null; + if (!has("json")) { + // Common `[[Class]]` name aliases. + var functionClass = "[object Function]", + dateClass = "[object Date]", + numberClass = "[object Number]", + stringClass = "[object String]", + arrayClass = "[object Array]", + booleanClass = "[object Boolean]"; + + // Detect incomplete support for accessing string characters by index. + var charIndexBuggy = has("bug-string-char-index"); + + // Define additional utility methods if the `Date` methods are buggy. + if (!isExtended) { + var floor = Math.floor; + // A mapping between the months of the year and the number of days between + // January 1st and the first of the respective month. + var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; + // Internal: Calculates the number of days between the Unix epoch and the + // first day of the given month. + var getDay = function (year, month) { + return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400); }; + } - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); + // Internal: Determines if a property is a direct property of the given + // object. Delegates to the native `Object#hasOwnProperty` method. + if (!(isProperty = objectProto.hasOwnProperty)) { + isProperty = function (property) { + var members = {}, constructor; + if ((members.__proto__ = null, members.__proto__ = { + // The *proto* property cannot be set multiple times in recent + // versions of Firefox and SeaMonkey. + "toString": 1 + }, members).toString != getClass) { + // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but + // supports the mutable *proto* property. + isProperty = function (property) { + // Capture and break the object's prototype chain (see section 8.6.2 + // of the ES 5.1 spec). The parenthesized expression prevents an + // unsafe transformation by the Closure Compiler. + var original = this.__proto__, result = property in (this.__proto__ = null, this); + // Restore the original prototype chain. + this.__proto__ = original; + return result; }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' - ? c - : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. + } else { + // Capture a reference to the top-level `Object` constructor. + constructor = members.constructor; + // Use the `constructor` property to simulate `Object#hasOwnProperty` in + // other environments. + isProperty = function (property) { + var parent = (this.constructor || constructor).prototype; + return property in this && !(property in parent && this[property] === parent[property]); + }; + } + members = null; + return isProperty.call(this, property); + }; + } - if (typeof rep === 'function') { - value = rep.call(holder, key, value); + // Internal: Normalizes the `for...in` iteration algorithm across + // environments. Each enumerated key is yielded to a `callback` function. + forEach = function (object, callback) { + var size = 0, Properties, members, property; + + // Tests for bugs in the current environment's `for...in` algorithm. The + // `valueOf` property inherits the non-enumerable flag from + // `Object.prototype` in older versions of IE, Netscape, and Mozilla. + (Properties = function () { + this.valueOf = 0; + }).prototype.valueOf = 0; + + // Iterate over a new instance of the `Properties` class. + members = new Properties(); + for (property in members) { + // Ignore all properties inherited from `Object.prototype`. + if (isProperty.call(members, property)) { + size++; + } } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; + Properties = members = null; + + // Normalize the iteration algorithm. + if (!size) { + // A list of non-enumerable properties inherited from `Object.prototype`. + members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"]; + // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable + // properties. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, length; + var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty; + for (property in object) { + // Gecko <= 1.0 enumerates the `prototype` property of functions under + // certain conditions; IE does not. + if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) { + callback(property); + } } + // Manually invoke the callback for each non-enumerable property. + for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property)); + }; + } else if (size == 2) { + // Safari <= 2.0.4 enumerates shadowed properties twice. + forEach = function (object, callback) { + // Create a set of iterated properties. + var members = {}, isFunction = getClass.call(object) == functionClass, property; + for (property in object) { + // Store each property name to prevent double enumeration. The + // `prototype` property of functions is not enumerated due to cross- + // environment inconsistencies. + if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) { + callback(property); + } + } + }; + } else { + // No bugs detected; use the standard `for...in` algorithm. + forEach = function (object, callback) { + var isFunction = getClass.call(object) == functionClass, property, isConstructor; + for (property in object) { + if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) { + callback(property); + } + } + // Manually invoke the callback for the `constructor` property due to + // cross-environment inconsistencies. + if (isConstructor || isProperty.call(object, (property = "constructor"))) { + callback(property); + } + }; + } + return forEach(object, callback); + }; + + // Public: Serializes a JavaScript `value` as a JSON string. The optional + // `filter` argument may specify either a function that alters how object and + // array members are serialized, or an array of strings and numbers that + // indicates which properties should be serialized. The optional `width` + // argument may be either a string or number that specifies the indentation + // level of the output. + if (!has("json-stringify")) { + // Internal: A map of control characters and their escaped equivalents. + var Escapes = { + 92: "\\\\", + 34: '\\"', + 8: "\\b", + 12: "\\f", + 10: "\\n", + 13: "\\r", + 9: "\\t" + }; -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. + // Internal: Converts `value` into a zero-padded string such that its + // length is at least equal to `width`. The `width` must be <= 6. + var leadingZeroes = "000000"; + var toPaddedString = function (width, value) { + // The `|| 0` expression is necessary to work around a bug in + // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`. + return (leadingZeroes + (value || 0)).slice(-width); + }; - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; + // Internal: Double-quotes a string `value`, replacing all ASCII control + // characters (characters with code unit values between 0 and 31) with + // their escaped equivalents. This is an implementation of the + // `Quote(value)` operation defined in ES 5.1 section 15.12.3. + var unicodePrefix = "\\u00"; + var quote = function (value) { + var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10; + var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value); + for (; index < length; index++) { + var charCode = value.charCodeAt(index); + // If the character is a control character, append its Unicode or + // shorthand escape sequence; otherwise, append the character as-is. + switch (charCode) { + case 8: case 9: case 10: case 12: case 13: case 34: case 92: + result += Escapes[charCode]; + break; + default: + if (charCode < 32) { + result += unicodePrefix + toPaddedString(2, charCode.toString(16)); + break; } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 - ? '[]' - : gap - ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' - : '[' + partial.join(',') + ']'; - gap = mind; - return v; + result += useCharIndex ? symbols[index] : value.charAt(index); } + } + return result + '"'; + }; -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - if (typeof rep[i] === 'string') { - k = rep[i]; - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Internal: Recursively serializes an object. Implements the + // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations. + var serialize = function (property, object, callback, properties, whitespace, indentation, stack) { + var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result; + try { + // Necessary for host object support. + value = object[property]; + } catch (exception) {} + if (typeof value == "object" && value) { + className = getClass.call(value); + if (className == dateClass && !isProperty.call(value, "toJSON")) { + if (value > -1 / 0 && value < 1 / 0) { + // Dates are serialized according to the `Date#toJSON` method + // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15 + // for the ISO 8601 date time string format. + if (getDay) { + // Manually compute the year, month, date, hours, minutes, + // seconds, and milliseconds if the `getUTC*` methods are + // buggy. Adapted from @Yaffle's `date-shim` project. + date = floor(value / 864e5); + for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++); + for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++); + date = 1 + date - getDay(year, month); + // The `time` value specifies the time within the day (see ES + // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used + // to compute `A modulo B`, as the `%` operator does not + // correspond to the `modulo` operation for negative numbers. + time = (value % 864e5 + 864e5) % 864e5; + // The hours, minutes, seconds, and milliseconds are obtained by + // decomposing the time within the day. See section 15.9.1.10. + hours = floor(time / 36e5) % 24; + minutes = floor(time / 6e4) % 60; + seconds = floor(time / 1e3) % 60; + milliseconds = time % 1e3; + } else { + year = value.getUTCFullYear(); + month = value.getUTCMonth(); + date = value.getUTCDate(); + hours = value.getUTCHours(); + minutes = value.getUTCMinutes(); + seconds = value.getUTCSeconds(); + milliseconds = value.getUTCMilliseconds(); } + // Serialize extended years correctly. + value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) + + "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) + + // Months, dates, hours, minutes, and seconds should have two + // digits; milliseconds should have three. + "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) + + // Milliseconds are optional in ES 5.0, but required in 5.1. + "." + toPaddedString(3, milliseconds) + "Z"; + } else { + value = null; + } + } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) { + // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the + // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3 + // ignores all `toJSON` methods on these objects unless they are + // defined directly on an instance. + value = value.toJSON(property); + } + } + if (callback) { + // If a replacement function was provided, call it to obtain the value + // for serialization. + value = callback.call(object, property, value); + } + if (value === null) { + return "null"; + } + className = getClass.call(value); + if (className == booleanClass) { + // Booleans are represented literally. + return "" + value; + } else if (className == numberClass) { + // JSON numbers must be finite. `Infinity` and `NaN` are serialized as + // `"null"`. + return value > -1 / 0 && value < 1 / 0 ? "" + value : "null"; + } else if (className == stringClass) { + // Strings are double-quoted and escaped. + return quote("" + value); + } + // Recursively serialize objects and arrays. + if (typeof value == "object") { + // Check for cyclic structures. This is a linear search; performance + // is inversely proportional to the number of unique nested objects. + for (length = stack.length; length--;) { + if (stack[length] === value) { + // Cyclic structures cannot be serialized by `JSON.stringify`. + throw TypeError(); + } + } + // Add the object to the stack of traversed objects. + stack.push(value); + results = []; + // Save the current indentation level and indent one additional level. + prefix = indentation; + indentation += whitespace; + if (className == arrayClass) { + // Recursively serialize array elements. + for (index = 0, length = value.length; index < length; index++) { + element = serialize(index, value, callback, properties, whitespace, indentation, stack); + results.push(element === undef ? "null" : element); + } + result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]"; } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } + // Recursively serialize object members. Members are selected from + // either a user-specified list of property names, or the object + // itself. + forEach(properties || value, function (property) { + var element = serialize(property, value, callback, properties, whitespace, indentation, stack); + if (element !== undef) { + // According to ES 5.1 section 15.12.3: "If `gap` {whitespace} + // is not the empty string, let `member` {quote(property) + ":"} + // be the concatenation of `member` and the `space` character." + // The "`space` character" refers to the literal space + // character, not the `space` {width} argument provided to + // `JSON.stringify`. + results.push(quote(property) + ":" + (whitespace ? " " : "") + element); } + }); + result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}"; } + // Remove the object from the traversed object stack. + stack.pop(); + return result; + } + }; -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 - ? '{}' - : gap - ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' - : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; + // Public: `JSON.stringify`. See ES 5.1 section 15.12.3. + exports.stringify = function (source, filter, width) { + var whitespace, callback, properties, className; + if (objectTypes[typeof filter] && filter) { + if ((className = getClass.call(filter)) == functionClass) { + callback = filter; + } else if (className == arrayClass) { + // Convert the property names array into a makeshift set. + properties = {}; + for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1)); } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); + } + if (width) { + if ((className = getClass.call(width)) == numberClass) { + // Convert the `width` to an integer and create a string containing + // `width` number of space characters. + if ((width -= width % 1) > 0) { + for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " "); + } + } else if (className == stringClass) { + whitespace = width.length <= 10 ? width : width.slice(0, 10); } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); + } + // Opera <= 7.54u2 discards the values associated with empty string keys + // (`""`) only if they are used directly within an object member list + // (e.g., `!("" in { "": 1})`). + return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []); }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. + } - var j; + // Public: Parses a JSON source string. + if (!has("json-parse")) { + var fromCharCode = String.fromCharCode; + + // Internal: A map of escaped control characters and their unescaped + // equivalents. + var Unescapes = { + 92: "\\", + 34: '"', + 47: "/", + 98: "\b", + 116: "\t", + 110: "\n", + 102: "\f", + 114: "\r" + }; - function walk(holder, key) { + // Internal: Stores the parser state. + var Index, Source; -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. + // Internal: Resets the parser state and throws a `SyntaxError`. + var abort = function () { + Index = Source = null; + throw SyntaxError(); + }; - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.prototype.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } + // Internal: Returns the next token, or `"$"` if the parser has reached + // the end of the source string. A token may be a string, number, `null` + // literal, or Boolean literal. + var lex = function () { + var source = Source, length = source.length, value, begin, position, isSigned, charCode; + while (Index < length) { + charCode = source.charCodeAt(Index); + switch (charCode) { + case 9: case 10: case 13: case 32: + // Skip whitespace tokens, including tabs, carriage returns, line + // feeds, and space characters. + Index++; + break; + case 123: case 125: case 91: case 93: case 58: case 44: + // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at + // the current position. + value = charIndexBuggy ? source.charAt(Index) : source[Index]; + Index++; + return value; + case 34: + // `"` delimits a JSON string; advance to the next character and + // begin parsing the string. String tokens are prefixed with the + // sentinel `@` character to distinguish them from punctuators and + // end-of-string tokens. + for (value = "@", Index++; Index < length;) { + charCode = source.charCodeAt(Index); + if (charCode < 32) { + // Unescaped ASCII control characters (those with a code unit + // less than the space character) are not permitted. + abort(); + } else if (charCode == 92) { + // A reverse solidus (`\`) marks the beginning of an escaped + // control character (including `"`, `\`, and `/`) or Unicode + // escape sequence. + charCode = source.charCodeAt(++Index); + switch (charCode) { + case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114: + // Revive escaped control characters. + value += Unescapes[charCode]; + Index++; + break; + case 117: + // `\u` marks the beginning of a Unicode escape sequence. + // Advance to the first character and validate the + // four-digit code point. + begin = ++Index; + for (position = Index + 4; Index < position; Index++) { + charCode = source.charCodeAt(Index); + // A valid sequence comprises four hexdigits (case- + // insensitive) that form a single hexadecimal value. + if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) { + // Invalid Unicode escape sequence. + abort(); + } } + // Revive the escaped character. + value += fromCharCode("0x" + source.slice(begin, Index)); + break; + default: + // Invalid escape sequence. + abort(); + } + } else { + if (charCode == 34) { + // An unescaped double-quote character marks the end of the + // string. + break; + } + charCode = source.charCodeAt(Index); + begin = Index; + // Optimize for the common case where a string is valid. + while (charCode >= 32 && charCode != 92 && charCode != 34) { + charCode = source.charCodeAt(++Index); + } + // Append the string as-is. + value += source.slice(begin, Index); + } + } + if (source.charCodeAt(Index) == 34) { + // Advance to the next character and return the revived string. + Index++; + return value; + } + // Unterminated string. + abort(); + default: + // Parse numbers and literals. + begin = Index; + // Advance past the negative sign, if one is specified. + if (charCode == 45) { + isSigned = true; + charCode = source.charCodeAt(++Index); + } + // Parse an integer or floating-point value. + if (charCode >= 48 && charCode <= 57) { + // Leading zeroes are interpreted as octal literals. + if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) { + // Illegal octal literal. + abort(); + } + isSigned = false; + // Parse the integer component. + for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++); + // Floats cannot contain a leading decimal point; however, this + // case is already accounted for by the parser. + if (source.charCodeAt(Index) == 46) { + position = ++Index; + // Parse the decimal component. + for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal trailing decimal. + abort(); + } + Index = position; + } + // Parse exponents. The `e` denoting the exponent is + // case-insensitive. + charCode = source.charCodeAt(Index); + if (charCode == 101 || charCode == 69) { + charCode = source.charCodeAt(++Index); + // Skip past the sign following the exponent, if one is + // specified. + if (charCode == 43 || charCode == 45) { + Index++; + } + // Parse the exponential component. + for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++); + if (position == Index) { + // Illegal empty exponent. + abort(); } + Index = position; + } + // Coerce the parsed value to a JavaScript number. + return +source.slice(begin, Index); } - return reviver.call(holder, key, value); + // A negative sign may only precede numbers. + if (isSigned) { + abort(); + } + // `true`, `false`, and `null` literals. + if (source.slice(Index, Index + 4) == "true") { + Index += 4; + return true; + } else if (source.slice(Index, Index + 5) == "false") { + Index += 5; + return false; + } else if (source.slice(Index, Index + 4) == "null") { + Index += 4; + return null; + } + // Unrecognized token. + abort(); } + } + // Return the sentinel `$` character if the parser has reached the end + // of the source string. + return "$"; + }; - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - text = String(text); - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); + // Internal: Parses a JSON `value` token. + var get = function (value) { + var results, hasMembers; + if (value == "$") { + // Unexpected end of input. + abort(); + } + if (typeof value == "string") { + if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") { + // Remove the sentinel `@` character. + return value.slice(1); } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/ - .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@') - .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']') - .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' - ? walk({'': j}, '') - : j; + // Parse object and array literals. + if (value == "[") { + // Parses a JSON array, returning a new JavaScript array. + results = []; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing square bracket marks the end of the array literal. + if (value == "]") { + break; + } + // If the array literal contains elements, the current token + // should be a comma separating the previous element from the + // next. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "]") { + // Unexpected trailing `,` in array literal. + abort(); + } + } else { + // A `,` must separate each array element. + abort(); + } + } + // Elisions and leading commas are not permitted. + if (value == ",") { + abort(); + } + results.push(get(value)); + } + return results; + } else if (value == "{") { + // Parses a JSON object, returning a new JavaScript object. + results = {}; + for (;; hasMembers || (hasMembers = true)) { + value = lex(); + // A closing curly brace marks the end of the object literal. + if (value == "}") { + break; + } + // If the object literal contains members, the current token + // should be a comma separator. + if (hasMembers) { + if (value == ",") { + value = lex(); + if (value == "}") { + // Unexpected trailing `,` in object literal. + abort(); + } + } else { + // A `,` must separate each object member. + abort(); + } + } + // Leading commas are not permitted, object property names must be + // double-quoted strings, and a `:` must separate each property + // name and value. + if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") { + abort(); + } + results[value.slice(1)] = get(lex()); + } + return results; } + // Unexpected token encountered. + abort(); + } + return value; + }; + + // Internal: Updates a traversed object member. + var update = function (source, property, callback) { + var element = walk(source, property, callback); + if (element === undef) { + delete source[property]; + } else { + source[property] = element; + } + }; -// If the text is not JSON parseable, then a SyntaxError is thrown. + // Internal: Recursively traverses a parsed JSON object, invoking the + // `callback` function for each value. This is an implementation of the + // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2. + var walk = function (source, property, callback) { + var value = source[property], length; + if (typeof value == "object" && value) { + // `forEach` can't be used to traverse an array in Opera <= 8.54 + // because its `Object#hasOwnProperty` implementation returns `false` + // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`). + if (getClass.call(value) == arrayClass) { + for (length = value.length; length--;) { + update(value, length, callback); + } + } else { + forEach(value, function (property) { + update(value, property, callback); + }); + } + } + return callback.call(source, property, value); + }; - throw new SyntaxError('JSON.parse'); + // Public: `JSON.parse`. See ES 5.1 section 15.12.2. + exports.parse = function (source, callback) { + var result, value; + Index = 0; + Source = "" + source; + result = get(lex()); + // If a JSON string contains multiple tokens, it is invalid. + if (lex() != "$") { + abort(); + } + // Reset the parser state. + Index = Source = null; + return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result; }; + } } -}()); + exports["runInContext"] = runInContext; + return exports; + } + + if (freeExports && !isLoader) { + // Export for CommonJS environments. + runInContext(root, freeExports); + } else { + // Export for web browsers and JavaScript engines. + var nativeJSON = root.JSON, + previousJSON = root["JSON3"], + isRestored = false; + + var JSON3 = runInContext(root, (root["JSON3"] = { + // Public: Restores the original value of the global `JSON` object and + // returns a reference to the `JSON3` object. + "noConflict": function () { + if (!isRestored) { + isRestored = true; + root.JSON = nativeJSON; + root["JSON3"] = previousJSON; + nativeJSON = previousJSON = null; + } + return JSON3; + } + })); + + root.JSON = { + "parse": JSON3.parse, + "stringify": JSON3.stringify + }; + } + + // Export for asynchronous module loaders. + if (isLoader) { + define(function () { + return JSON3; + }); + } +}).call(this); /*! * Hij1nx requires the following notice to accompany EventEmitter: * diff --git a/dist/f2.no-jquery-or-bootstrap.min.js b/dist/f2.no-jquery-or-bootstrap.min.js index 5bcd93b1..ff8c4a6e 100644 --- a/dist/f2.no-jquery-or-bootstrap.min.js +++ b/dist/f2.no-jquery-or-bootstrap.min.js @@ -1,24 +1,6 @@ /*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ -!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){/*! - JSON.org requires the following notice to accompany json2: - - Copyright (c) 2002 JSON.org - - http://json.org - - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), - to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, - and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - - The Software shall be used for Good, not Evil. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. -*/ -"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(a){return 10>a?"0"+a:a}function quote(a){return escapable.lastIndex=0,escapable.test(a)?'"'+a.replace(escapable,function(a){var b=meta[a];return"string"==typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function str(a,b){var c,d,e,f,g,h=gap,i=b[a];switch(i&&"object"==typeof i&&"function"==typeof i.toJSON&&(i=i.toJSON(a)),"function"==typeof rep&&(i=rep.call(b,a,i)),typeof i){case"string":return quote(i);case"number":return isFinite(i)?String(i):"null";case"boolean":case"null":return String(i);case"object":if(!i)return"null";if(gap+=indent,g=[],"[object Array]"===Object.prototype.toString.apply(i)){for(f=i.length,c=0;f>c;c+=1)g[c]=str(c,i)||"null";return e=0===g.length?"[]":gap?"[\n"+gap+g.join(",\n"+gap)+"\n"+h+"]":"["+g.join(",")+"]",gap=h,e}if(rep&&"object"==typeof rep)for(f=rep.length,c=0;f>c;c+=1)"string"==typeof rep[c]&&(d=rep[c],e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));else for(d in i)Object.prototype.hasOwnProperty.call(i,d)&&(e=str(d,i),e&&g.push(quote(d)+(gap?": ":":")+e));return e=0===g.length?"{}":gap?"{\n"+gap+g.join(",\n"+gap)+"\n"+h+"}":"{"+g.join(",")+"}",gap=h,e}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(a){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(a){return this.valueOf()});var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;"function"!=typeof JSON.stringify&&(JSON.stringify=function(a,b,c){var d;if(gap="",indent="","number"==typeof c)for(d=0;c>d;d+=1)indent+=" ";else"string"==typeof c&&(indent=c);if(rep=b,b&&"function"!=typeof b&&("object"!=typeof b||"number"!=typeof b.length))throw new Error("JSON.stringify");return str("",{"":a})}),"function"!=typeof JSON.parse&&(JSON.parse=function(text,reviver){function walk(a,b){var c,d,e=a[b];if(e&&"object"==typeof e)for(c in e)Object.prototype.hasOwnProperty.call(e,c)&&(d=walk(e,c),void 0!==d?e[c]=d:delete e[c]);return reviver.call(a,b,e)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! +!function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){ +var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! * F2 v1.4.2 05-10-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * diff --git a/docs/dist/extending-f2.html b/docs/dist/extending-f2.html index 6737677d..f3cfad87 100644 --- a/docs/dist/extending-f2.html +++ b/docs/dist/extending-f2.html @@ -165,7 +165,7 @@
    diff --git a/docs/dist/f2js-sdk.html b/docs/dist/f2js-sdk.html index f8a016aa..7f147fcf 100644 --- a/docs/dist/f2js-sdk.html +++ b/docs/dist/f2js-sdk.html @@ -187,7 +187,7 @@

    There is a page on the wiki tracking deprecated features in F2. Starting with version 1.2, three ContainerConfig properties have been retired. As F2 features and/or F2.js APIs are deprecated, we will attempt to give reasonable advance notice via any or all of the F2 communication channels. In addition, we will strive to ensure that backward compatibility will be maintained for at least one major version of F2. For example, if Feature X is deprecated in version 1.3, we will attempt to maintain backward compatibility until the next major release (version 2.0). F2 documentation will be updated accordingly to reflect any changes, and the conversation behind deprecated features will be publicly available on GitHub.

    F2 uses third party libraries inside F2.js (see Framework: Choices). These open-source libraries are all on their own release schedules. We cannot guarantee that we will always stay abreast and in tune with such latest releases, but in an effort to improve the F2 framework, we will attempt to update F2.js so that it uses the latest, most stable and most secure version of the third party software. These updates to F2 will be made through the normal release process on GitHub and comments will be open.

    -

    Have a question? Ask it on the F2 Google Group (or send an email to OpenF2@googlegroups.com) or start a discussion using Issues on GitHub.

    +

    Have a question? Ask it on the F2 Google Group (or send an email to OpenF2@googlegroups.com) or start a discussion using Issues on GitHub.

    To track bugs, enhancements or other issues, F2 is using Issues on GitHub.


    F2 is licensed under the Apache License version 2.0. Details are available in the project readme.

    diff --git a/docs/dist/sdk/classes/F2.App.html b/docs/dist/sdk/classes/F2.App.html index dde08618..f4458142 100644 --- a/docs/dist/sdk/classes/F2.App.html +++ b/docs/dist/sdk/classes/F2.App.html @@ -214,7 +214,7 @@

    F2.App Class

    - Defined in: sdk/src/classes.js:6 + Defined in: sdk\src\classes.js:6
    @@ -279,7 +279,7 @@

    - sdk/src/classes.js:6 + sdk\src\classes.js:6

    @@ -453,7 +453,7 @@

    - sdk/src/classes.js:20 + sdk\src\classes.js:20

    diff --git a/docs/dist/sdk/classes/F2.AppConfig.html b/docs/dist/sdk/classes/F2.AppConfig.html index 63c2168a..70245cce 100644 --- a/docs/dist/sdk/classes/F2.AppConfig.html +++ b/docs/dist/sdk/classes/F2.AppConfig.html @@ -211,7 +211,7 @@

    F2.AppConfig Class

    - Defined in: sdk/src/classes.js:29 + Defined in: sdk\src\classes.js:29
    @@ -487,7 +487,7 @@

    - sdk/src/classes.js:34 + sdk\src\classes.js:34

    @@ -537,7 +537,7 @@

    - sdk/src/classes.js:85 + sdk\src\classes.js:85

    @@ -593,7 +593,7 @@

    - sdk/src/classes.js:42 + sdk\src\classes.js:42

    @@ -642,7 +642,7 @@

    - sdk/src/classes.js:48 + sdk\src\classes.js:48

    @@ -693,7 +693,7 @@

    - sdk/src/classes.js:55 + sdk\src\classes.js:55

    @@ -746,7 +746,7 @@

    - sdk/src/classes.js:65 + sdk\src\classes.js:65

    @@ -797,7 +797,7 @@

    - sdk/src/classes.js:74 + sdk\src\classes.js:74

    @@ -852,7 +852,7 @@

    - sdk/src/classes.js:97 + sdk\src\classes.js:97

    @@ -907,7 +907,7 @@

    - sdk/src/classes.js:108 + sdk\src\classes.js:108

    @@ -957,7 +957,7 @@

    - sdk/src/classes.js:116 + sdk\src\classes.js:116

    @@ -1009,7 +1009,7 @@

    - sdk/src/classes.js:125 + sdk\src\classes.js:125

    @@ -1063,7 +1063,7 @@

    - sdk/src/classes.js:135 + sdk\src\classes.js:135

    @@ -1117,7 +1117,7 @@

    - sdk/src/classes.js:145 + sdk\src\classes.js:145

    @@ -1166,7 +1166,7 @@

    - sdk/src/classes.js:152 + sdk\src\classes.js:152

    @@ -1217,7 +1217,7 @@

    - sdk/src/classes.js:161 + sdk\src\classes.js:161

    @@ -1268,7 +1268,7 @@

    - sdk/src/classes.js:170 + sdk\src\classes.js:170

    diff --git a/docs/dist/sdk/classes/F2.AppHandlers.html b/docs/dist/sdk/classes/F2.AppHandlers.html index 9779a86b..0d634d44 100644 --- a/docs/dist/sdk/classes/F2.AppHandlers.html +++ b/docs/dist/sdk/classes/F2.AppHandlers.html @@ -240,7 +240,7 @@

    Order of Execution

    @@ -508,7 +508,7 @@

    - sdk/src/app_handlers.js:205 + sdk\src\app_handlers.js:205

    @@ -585,7 +585,7 @@

    - sdk/src/app_handlers.js:220 + sdk\src\app_handlers.js:220

    @@ -680,7 +680,7 @@

    - sdk/src/app_handlers.js:191 + sdk\src\app_handlers.js:191

    @@ -755,7 +755,7 @@

    - sdk/src/app_handlers.js:373 + sdk\src\app_handlers.js:373

    @@ -886,7 +886,7 @@

    - sdk/src/app_handlers.js:288 + sdk\src\app_handlers.js:288

    @@ -1043,7 +1043,7 @@

    - sdk/src/app_handlers.js:313 + sdk\src\app_handlers.js:313

    diff --git a/docs/dist/sdk/classes/F2.AppManifest.AppContent.html b/docs/dist/sdk/classes/F2.AppManifest.AppContent.html index 8db1f46c..6a3fe0bf 100644 --- a/docs/dist/sdk/classes/F2.AppManifest.AppContent.html +++ b/docs/dist/sdk/classes/F2.AppManifest.AppContent.html @@ -211,7 +211,7 @@

    F2.AppManifest.AppContent Class

    - Defined in: sdk/src/classes.js:218 + Defined in: sdk\src\classes.js:218
    @@ -323,7 +323,7 @@

    - sdk/src/classes.js:223 + sdk\src\classes.js:223

    @@ -372,7 +372,7 @@

    - sdk/src/classes.js:230 + sdk\src\classes.js:230

    @@ -421,7 +421,7 @@

    - sdk/src/classes.js:237 + sdk\src\classes.js:237

    diff --git a/docs/dist/sdk/classes/F2.AppManifest.html b/docs/dist/sdk/classes/F2.AppManifest.html index e2205847..2b4e8922 100644 --- a/docs/dist/sdk/classes/F2.AppManifest.html +++ b/docs/dist/sdk/classes/F2.AppManifest.html @@ -211,7 +211,7 @@

    F2.AppManifest Class

    - Defined in: sdk/src/classes.js:183 + Defined in: sdk\src\classes.js:183
    @@ -334,7 +334,7 @@

    - sdk/src/classes.js:188 + sdk\src\classes.js:188

    @@ -384,7 +384,7 @@

    - sdk/src/classes.js:196 + sdk\src\classes.js:196

    @@ -433,7 +433,7 @@

    - sdk/src/classes.js:203 + sdk\src\classes.js:203

    @@ -482,7 +482,7 @@

    - sdk/src/classes.js:210 + sdk\src\classes.js:210

    diff --git a/docs/dist/sdk/classes/F2.Constants.AppHandlers.html b/docs/dist/sdk/classes/F2.Constants.AppHandlers.html index dee47fb2..91e20e91 100644 --- a/docs/dist/sdk/classes/F2.Constants.AppHandlers.html +++ b/docs/dist/sdk/classes/F2.Constants.AppHandlers.html @@ -211,7 +211,7 @@

    F2.Constants.AppHandlers Class

    @@ -409,7 +409,7 @@

    - sdk/src/app_handlers.js:429 + sdk\src\app_handlers.js:429

    @@ -483,7 +483,7 @@

    - sdk/src/app_handlers.js:550 + sdk\src\app_handlers.js:550

    @@ -568,7 +568,7 @@

    - sdk/src/app_handlers.js:583 + sdk\src\app_handlers.js:583

    @@ -640,7 +640,7 @@

    - sdk/src/app_handlers.js:530 + sdk\src\app_handlers.js:530

    @@ -712,7 +712,7 @@

    - sdk/src/app_handlers.js:471 + sdk\src\app_handlers.js:471

    @@ -803,7 +803,7 @@

    - sdk/src/app_handlers.js:510 + sdk\src\app_handlers.js:510

    @@ -875,7 +875,7 @@

    - sdk/src/app_handlers.js:451 + sdk\src\app_handlers.js:451

    @@ -947,7 +947,7 @@

    - sdk/src/app_handlers.js:603 + sdk\src\app_handlers.js:603

    diff --git a/docs/dist/sdk/classes/F2.Constants.Css.html b/docs/dist/sdk/classes/F2.Constants.Css.html index f521a3ae..62f83b70 100644 --- a/docs/dist/sdk/classes/F2.Constants.Css.html +++ b/docs/dist/sdk/classes/F2.Constants.Css.html @@ -211,7 +211,7 @@

    F2.Constants.Css Class

    - Defined in: sdk/src/constants.js:7 + Defined in: sdk\src\constants.js:7
    @@ -400,7 +400,7 @@

    - sdk/src/constants.js:17 + sdk\src\constants.js:17

    @@ -456,7 +456,7 @@

    - sdk/src/constants.js:28 + sdk\src\constants.js:28

    @@ -510,7 +510,7 @@

    - sdk/src/constants.js:37 + sdk\src\constants.js:37

    @@ -565,7 +565,7 @@

    - sdk/src/constants.js:47 + sdk\src\constants.js:47

    @@ -622,7 +622,7 @@

    - sdk/src/constants.js:59 + sdk\src\constants.js:59

    @@ -681,7 +681,7 @@

    - sdk/src/constants.js:73 + sdk\src\constants.js:73

    @@ -736,7 +736,7 @@

    - sdk/src/constants.js:83 + sdk\src\constants.js:83

    diff --git a/docs/dist/sdk/classes/F2.Constants.Events.html b/docs/dist/sdk/classes/F2.Constants.Events.html index e2db3d62..317ccd58 100644 --- a/docs/dist/sdk/classes/F2.Constants.Events.html +++ b/docs/dist/sdk/classes/F2.Constants.Events.html @@ -211,7 +211,7 @@

    F2.Constants.Events Class

    - Defined in: sdk/src/constants.js:95 + Defined in: sdk\src\constants.js:95
    @@ -401,7 +401,7 @@

    - sdk/src/constants.js:106 + sdk\src\constants.js:106

    @@ -455,7 +455,7 @@

    - sdk/src/constants.js:115 + sdk\src\constants.js:115

    @@ -511,7 +511,7 @@

    - sdk/src/constants.js:128 + sdk\src\constants.js:128

    @@ -568,7 +568,7 @@

    - sdk/src/constants.js:165 + sdk\src\constants.js:165

    @@ -625,7 +625,7 @@

    - sdk/src/constants.js:142 + sdk\src\constants.js:142

    @@ -682,7 +682,7 @@

    - sdk/src/constants.js:156 + sdk\src\constants.js:156

    @@ -738,7 +738,7 @@

    - sdk/src/constants.js:179 + sdk\src\constants.js:179

    diff --git a/docs/dist/sdk/classes/F2.Constants.Sockets.html b/docs/dist/sdk/classes/F2.Constants.Sockets.html index 10cb1b83..f4cd3446 100644 --- a/docs/dist/sdk/classes/F2.Constants.Sockets.html +++ b/docs/dist/sdk/classes/F2.Constants.Sockets.html @@ -211,7 +211,7 @@

    F2.Constants.Sockets Class

    @@ -362,7 +362,7 @@

    - sdk/src/constants.js:205 + sdk\src\constants.js:205

    @@ -416,7 +416,7 @@

    - sdk/src/constants.js:214 + sdk\src\constants.js:214

    @@ -471,7 +471,7 @@

    - sdk/src/constants.js:226 + sdk\src\constants.js:226

    @@ -525,7 +525,7 @@

    - sdk/src/constants.js:235 + sdk\src\constants.js:235

    @@ -579,7 +579,7 @@

    - sdk/src/constants.js:244 + sdk\src\constants.js:244

    diff --git a/docs/dist/sdk/classes/F2.Constants.Views.html b/docs/dist/sdk/classes/F2.Constants.Views.html index c41fd7c5..59c88a12 100644 --- a/docs/dist/sdk/classes/F2.Constants.Views.html +++ b/docs/dist/sdk/classes/F2.Constants.Views.html @@ -215,7 +215,7 @@

    F2.Constants.Views Class

    @@ -377,7 +377,7 @@

    - sdk/src/constants.js:272 + sdk\src\constants.js:272

    @@ -430,7 +430,7 @@

    - sdk/src/constants.js:263 + sdk\src\constants.js:263

    @@ -484,7 +484,7 @@

    - sdk/src/constants.js:280 + sdk\src\constants.js:280

    @@ -537,7 +537,7 @@

    - sdk/src/constants.js:288 + sdk\src\constants.js:288

    @@ -591,7 +591,7 @@

    - sdk/src/constants.js:297 + sdk\src\constants.js:297

    @@ -645,7 +645,7 @@

    - sdk/src/constants.js:306 + sdk\src\constants.js:306

    diff --git a/docs/dist/sdk/classes/F2.Constants.html b/docs/dist/sdk/classes/F2.Constants.html index 1b8b47d0..f1824d2e 100644 --- a/docs/dist/sdk/classes/F2.Constants.html +++ b/docs/dist/sdk/classes/F2.Constants.html @@ -211,7 +211,7 @@

    F2.Constants Class

    - Defined in: sdk/src/constants.js:1 + Defined in: sdk\src\constants.js:1
    diff --git a/docs/dist/sdk/classes/F2.ContainerConfig.UI.Mask.html b/docs/dist/sdk/classes/F2.ContainerConfig.UI.Mask.html index 442eaee7..a6f71cea 100644 --- a/docs/dist/sdk/classes/F2.ContainerConfig.UI.Mask.html +++ b/docs/dist/sdk/classes/F2.ContainerConfig.UI.Mask.html @@ -213,7 +213,7 @@

    F2.ContainerConfig.UI.Mask Class

    - Defined in: sdk/src/classes.js:344 + Defined in: sdk\src\classes.js:344
    @@ -347,7 +347,7 @@

    - sdk/src/classes.js:351 + sdk\src\classes.js:351

    @@ -398,7 +398,7 @@

    - sdk/src/classes.js:358 + sdk\src\classes.js:358

    @@ -447,7 +447,7 @@

    - sdk/src/classes.js:364 + sdk\src\classes.js:364

    @@ -498,7 +498,7 @@

    - sdk/src/classes.js:371 + sdk\src\classes.js:371

    @@ -551,7 +551,7 @@

    - sdk/src/classes.js:380 + sdk\src\classes.js:380

    diff --git a/docs/dist/sdk/classes/F2.ContainerConfig.UI.html b/docs/dist/sdk/classes/F2.ContainerConfig.UI.html index 0b63ce48..06f0898d 100644 --- a/docs/dist/sdk/classes/F2.ContainerConfig.UI.html +++ b/docs/dist/sdk/classes/F2.ContainerConfig.UI.html @@ -211,7 +211,7 @@

    F2.ContainerConfig.UI Class

    - Defined in: sdk/src/classes.js:339 + Defined in: sdk\src\classes.js:339
    diff --git a/docs/dist/sdk/classes/F2.ContainerConfig.html b/docs/dist/sdk/classes/F2.ContainerConfig.html index 1805fbc9..c522d6f9 100644 --- a/docs/dist/sdk/classes/F2.ContainerConfig.html +++ b/docs/dist/sdk/classes/F2.ContainerConfig.html @@ -212,7 +212,7 @@

    F2.ContainerConfig Class

    - Defined in: sdk/src/classes.js:245 + Defined in: sdk\src\classes.js:245
    @@ -692,7 +692,7 @@

    - sdk/src/classes.js:251 + sdk\src\classes.js:251

    @@ -824,7 +824,7 @@

    - sdk/src/classes.js:263 + sdk\src\classes.js:263

    @@ -939,7 +939,7 @@

    - sdk/src/classes.js:277 + sdk\src\classes.js:277

    @@ -1071,7 +1071,7 @@

    - sdk/src/classes.js:389 + sdk\src\classes.js:389

    @@ -1284,7 +1284,7 @@

    - sdk/src/classes.js:453 + sdk\src\classes.js:453

    @@ -1429,7 +1429,7 @@

    - sdk/src/classes.js:475 + sdk\src\classes.js:475

    @@ -1574,7 +1574,7 @@

    - sdk/src/classes.js:497 + sdk\src\classes.js:497

    @@ -1703,7 +1703,7 @@

    - sdk/src/classes.js:288 + sdk\src\classes.js:288

    @@ -1754,7 +1754,7 @@

    - sdk/src/classes.js:314 + sdk\src\classes.js:314

    @@ -1804,7 +1804,7 @@

    - sdk/src/classes.js:517 + sdk\src\classes.js:517

    @@ -1868,7 +1868,7 @@

    - sdk/src/classes.js:532 + sdk\src\classes.js:532

    @@ -1932,7 +1932,7 @@

    - sdk/src/classes.js:295 + sdk\src\classes.js:295

    @@ -1988,7 +1988,7 @@

    - sdk/src/classes.js:307 + sdk\src\classes.js:307

    @@ -2039,7 +2039,7 @@

    - sdk/src/classes.js:321 + sdk\src\classes.js:321

    @@ -2090,7 +2090,7 @@

    - sdk/src/classes.js:330 + sdk\src\classes.js:330

    @@ -2141,7 +2141,7 @@

    - sdk/src/classes.js:437 + sdk\src\classes.js:437

    diff --git a/docs/dist/sdk/classes/F2.Events.html b/docs/dist/sdk/classes/F2.Events.html index aa82f0bc..89d37b2e 100644 --- a/docs/dist/sdk/classes/F2.Events.html +++ b/docs/dist/sdk/classes/F2.Events.html @@ -212,7 +212,7 @@

    F2.Events Class

    - Defined in: sdk/src/events.js:1 + Defined in: sdk\src\events.js:1
    @@ -521,7 +521,7 @@

    - sdk/src/events.js:16 + sdk\src\events.js:16

    @@ -636,7 +636,7 @@

    - sdk/src/events.js:27 + sdk\src\events.js:27

    @@ -757,7 +757,7 @@

    - sdk/src/events.js:38 + sdk\src\events.js:38

    @@ -888,7 +888,7 @@

    - sdk/src/events.js:52 + sdk\src\events.js:52

    @@ -999,7 +999,7 @@

    - sdk/src/events.js:61 + sdk\src\events.js:61

    @@ -1111,7 +1111,7 @@

    - sdk/src/events.js:71 + sdk\src\events.js:71

    diff --git a/docs/dist/sdk/classes/F2.Rpc.html b/docs/dist/sdk/classes/F2.Rpc.html index ca60c405..5c2bbc19 100644 --- a/docs/dist/sdk/classes/F2.Rpc.html +++ b/docs/dist/sdk/classes/F2.Rpc.html @@ -211,7 +211,7 @@

    F2.Rpc Class

    - Defined in: sdk/src/rpc.js:1 + Defined in: sdk\src\rpc.js:1
    @@ -618,7 +618,7 @@

    - sdk/src/rpc.js:15 + sdk\src\rpc.js:15

    @@ -692,7 +692,7 @@

    - sdk/src/rpc.js:69 + sdk\src\rpc.js:69

    @@ -806,7 +806,7 @@

    - sdk/src/rpc.js:117 + sdk\src\rpc.js:117

    @@ -938,7 +938,7 @@

    - sdk/src/rpc.js:135 + sdk\src\rpc.js:135

    @@ -1061,7 +1061,7 @@

    - sdk/src/rpc.js:216 + sdk\src\rpc.js:216

    @@ -1170,7 +1170,7 @@

    - sdk/src/rpc.js:230 + sdk\src\rpc.js:230

    @@ -1293,7 +1293,7 @@

    - sdk/src/rpc.js:243 + sdk\src\rpc.js:243

    @@ -1432,7 +1432,7 @@

    - sdk/src/rpc.js:273 + sdk\src\rpc.js:273

    @@ -1526,7 +1526,7 @@

    - sdk/src/rpc.js:289 + sdk\src\rpc.js:289

    @@ -1637,7 +1637,7 @@

    - sdk/src/rpc.js:308 + sdk\src\rpc.js:308

    diff --git a/docs/dist/sdk/classes/F2.UI.Modals.html b/docs/dist/sdk/classes/F2.UI.Modals.html index 4c1560c6..cea31e02 100644 --- a/docs/dist/sdk/classes/F2.UI.Modals.html +++ b/docs/dist/sdk/classes/F2.UI.Modals.html @@ -211,7 +211,7 @@

    F2.UI.Modals Class

    - Defined in: sdk/src/ui.js:67 + Defined in: sdk\src\ui.js:67
    @@ -383,7 +383,7 @@

    - sdk/src/ui.js:83 + sdk\src\ui.js:83

    @@ -502,7 +502,7 @@

    - sdk/src/ui.js:118 + sdk\src\ui.js:118

    diff --git a/docs/dist/sdk/classes/F2.UI.Views.html b/docs/dist/sdk/classes/F2.UI.Views.html index e9a098f4..69bbcfc7 100644 --- a/docs/dist/sdk/classes/F2.UI.Views.html +++ b/docs/dist/sdk/classes/F2.UI.Views.html @@ -211,7 +211,7 @@

    F2.UI.Views Class

    - Defined in: sdk/src/ui.js:205 + Defined in: sdk\src\ui.js:205
    @@ -397,7 +397,7 @@

    - sdk/src/ui.js:228 + sdk\src\ui.js:228

    @@ -495,7 +495,7 @@

    - sdk/src/ui.js:260 + sdk\src\ui.js:260

    @@ -606,7 +606,7 @@

    - sdk/src/ui.js:272 + sdk\src\ui.js:272

    diff --git a/docs/dist/sdk/classes/F2.UI.html b/docs/dist/sdk/classes/F2.UI.html index aac46f75..2539aae8 100644 --- a/docs/dist/sdk/classes/F2.UI.html +++ b/docs/dist/sdk/classes/F2.UI.html @@ -211,7 +211,7 @@

    F2.UI Class

    - Defined in: sdk/src/ui.js:5 + Defined in: sdk\src\ui.js:5
    @@ -264,7 +264,7 @@

    - sdk/src/ui.js:5 + sdk\src\ui.js:5

    @@ -614,7 +614,7 @@

    - sdk/src/ui.js:58 + sdk\src\ui.js:58

    @@ -712,7 +712,7 @@

    - sdk/src/ui.js:290 + sdk\src\ui.js:290

    @@ -820,7 +820,7 @@

    - sdk/src/ui.js:332 + sdk\src\ui.js:332

    @@ -908,7 +908,7 @@

    - sdk/src/ui.js:163 + sdk\src\ui.js:163

    @@ -1006,7 +1006,7 @@

    - sdk/src/ui.js:187 + sdk\src\ui.js:187

    @@ -1126,7 +1126,7 @@

    - sdk/src/ui.js:345 + sdk\src\ui.js:345

    @@ -1248,7 +1248,7 @@

    - sdk/src/ui.js:197 + sdk\src\ui.js:197

    diff --git a/docs/dist/sdk/classes/F2.html b/docs/dist/sdk/classes/F2.html index 917d90a0..57191651 100644 --- a/docs/dist/sdk/classes/F2.html +++ b/docs/dist/sdk/classes/F2.html @@ -211,7 +211,7 @@

    F2 Class

    - Defined in: sdk/src/container.js:1 + Defined in: sdk\src\container.js:1
    @@ -1339,7 +1339,7 @@

    - sdk/src/F2.js:39 + sdk\src\F2.js:39

    @@ -1468,7 +1468,7 @@

    - sdk/src/container.js:14 + sdk\src\container.js:14

    @@ -1599,7 +1599,7 @@

    - sdk/src/container.js:41 + sdk\src\container.js:41

    @@ -1710,7 +1710,7 @@

    - sdk/src/container.js:62 + sdk\src\container.js:62

    @@ -1818,7 +1818,7 @@

    - sdk/src/container.js:90 + sdk\src\container.js:90

    @@ -1924,7 +1924,7 @@

    - sdk/src/container.js:277 + sdk\src\container.js:277

    @@ -2015,7 +2015,7 @@

    - sdk/src/container.js:120 + sdk\src\container.js:120

    @@ -2120,7 +2120,7 @@

    - sdk/src/container.js:160 + sdk\src\container.js:160

    @@ -2225,7 +2225,7 @@

    - sdk/src/container.js:182 + sdk\src\container.js:182

    @@ -2306,7 +2306,7 @@

    - sdk/src/container.js:203 + sdk\src\container.js:203

    @@ -2363,7 +2363,7 @@

    - sdk/src/container.js:226 + sdk\src\container.js:226

    @@ -2420,7 +2420,7 @@

    - sdk/src/container.js:267 + sdk\src\container.js:267

    @@ -2501,7 +2501,7 @@

    - sdk/src/container.js:251 + sdk\src\container.js:251

    @@ -2614,7 +2614,7 @@

    - sdk/src/container.js:76 + sdk\src\container.js:76

    @@ -2724,7 +2724,7 @@

    - sdk/src/F2.js:76 + sdk\src\F2.js:76

    @@ -2830,7 +2830,7 @@

    - sdk/src/container.js:710 + sdk\src\container.js:710

    @@ -2925,7 +2925,7 @@

    - sdk/src/container.js:732 + sdk\src\container.js:732

    @@ -2994,7 +2994,7 @@

    - sdk/src/F2.js:102 + sdk\src\F2.js:102

    @@ -3072,7 +3072,7 @@

    - sdk/src/F2.js:150 + sdk\src\F2.js:150

    @@ -3199,7 +3199,7 @@

    - sdk/src/container.js:778 + sdk\src\container.js:778

    @@ -3268,7 +3268,7 @@

    - sdk/src/container.js:761 + sdk\src\container.js:761

    @@ -3337,7 +3337,7 @@

    - sdk/src/F2.js:190 + sdk\src\F2.js:190

    @@ -3422,7 +3422,7 @@

    - sdk/src/F2.js:202 + sdk\src\F2.js:202

    @@ -3541,7 +3541,7 @@

    - sdk/src/container.js:791 + sdk\src\container.js:791

    @@ -3621,7 +3621,7 @@

    - sdk/src/container.js:819 + sdk\src\container.js:819

    @@ -3700,7 +3700,7 @@

    - sdk/src/F2.js:212 + sdk\src\F2.js:212

    @@ -3803,7 +3803,7 @@

    - sdk/src/F2.js:256 + sdk\src\F2.js:256

    @@ -3914,7 +3914,7 @@

    - sdk/src/container.js:306 + sdk\src\container.js:306

    @@ -4021,7 +4021,7 @@

    - sdk/src/container.js:825 + sdk\src\container.js:825

    @@ -4120,7 +4120,7 @@

    - sdk/src/container.js:644 + sdk\src\container.js:644

    @@ -4232,7 +4232,7 @@

    - sdk/src/F2.js:275 + sdk\src\F2.js:275

    @@ -4355,7 +4355,7 @@

    - sdk/src/F2.js:331 + sdk\src\F2.js:331

    @@ -4464,7 +4464,7 @@

    - sdk/src/container.js:875 + sdk\src\container.js:875

    @@ -4659,7 +4659,7 @@

    - sdk/src/container.js:1202 + sdk\src\container.js:1202

    @@ -4724,7 +4724,7 @@

    - sdk/src/container.js:1217 + sdk\src\container.js:1217

    @@ -4825,7 +4825,7 @@

    - sdk/src/F2.js:340 + sdk\src\F2.js:340

    @@ -4959,7 +4959,7 @@

    - sdk/src/F2.js:361 + sdk\src\F2.js:361

    @@ -5031,7 +5031,7 @@

    - sdk/src/F2.js:114 + sdk\src\F2.js:114

    diff --git a/docs/dist/sdk/data.json b/docs/dist/sdk/data.json index f872a523..bea13be5 100644 --- a/docs/dist/sdk/data.json +++ b/docs/dist/sdk/data.json @@ -1,8 +1,8 @@ { "project": {}, "files": { - "sdk/src/F2.js": { - "name": "sdk/src/F2.js", + "sdk\\src\\F2.js": { + "name": "sdk\\src\\F2.js", "modules": { "f2": 1 }, @@ -12,8 +12,8 @@ }, "namespaces": {} }, - "sdk/src/app_handlers.js": { - "name": "sdk/src/app_handlers.js", + "sdk\\src\\app_handlers.js": { + "name": "sdk\\src\\app_handlers.js", "modules": {}, "classes": { "F2.AppHandlers": 1, @@ -22,8 +22,8 @@ "fors": {}, "namespaces": {} }, - "sdk/src/classes.js": { - "name": "sdk/src/classes.js", + "sdk\\src\\classes.js": { + "name": "sdk\\src\\classes.js", "modules": {}, "classes": { "F2.App": 1, @@ -39,8 +39,8 @@ }, "namespaces": {} }, - "sdk/src/constants.js": { - "name": "sdk/src/constants.js", + "sdk\\src\\constants.js": { + "name": "sdk\\src\\constants.js", "modules": {}, "classes": { "F2.Constants": 1, @@ -52,8 +52,8 @@ "fors": {}, "namespaces": {} }, - "sdk/src/container.js": { - "name": "sdk/src/container.js", + "sdk\\src\\container.js": { + "name": "sdk\\src\\container.js", "modules": {}, "classes": { "F2": 1 @@ -61,8 +61,8 @@ "fors": {}, "namespaces": {} }, - "sdk/src/events.js": { - "name": "sdk/src/events.js", + "sdk\\src\\events.js": { + "name": "sdk\\src\\events.js", "modules": {}, "classes": { "F2.Events": 1 @@ -70,8 +70,8 @@ "fors": {}, "namespaces": {} }, - "sdk/src/rpc.js": { - "name": "sdk/src/rpc.js", + "sdk\\src\\rpc.js": { + "name": "sdk\\src\\rpc.js", "modules": {}, "classes": { "F2.Rpc": 1 @@ -79,8 +79,8 @@ "fors": {}, "namespaces": {} }, - "sdk/src/ui.js": { - "name": "sdk/src/ui.js", + "sdk\\src\\ui.js": { + "name": "sdk\\src\\ui.js", "modules": {}, "classes": { "F2.UI": 1, @@ -130,7 +130,7 @@ }, "namespaces": {}, "tag": "main", - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 205, "description": "Open F2", "itemtype": "main" @@ -147,7 +147,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 1, "description": "Root namespace of the F2 SDK" }, @@ -161,7 +161,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 1, "description": "The new `AppHandlers` functionality provides Container Developers a higher level of control over configuring app rendering and interaction.\n\n

    \nThe addition of `F2.AppHandlers` replaces the previous {{#crossLink \"F2.ContainerConfig\"}}{{/crossLink}} properties `beforeAppRender`, `appRender`, and `afterAppRender`. These methods were deprecated—but not removed—in version 1.2. They will be permanently removed in a future version of F2.\n

    \n\n

    \nStarting with F2 version 1.2, `AppHandlers` is the preferred method for Container Developers to manage app layout.\n

    \n\n### Order of Execution\n\n**App Rendering**\n\n0. {{#crossLink \"F2/registerApps\"}}F2.registerApps(){{/crossLink}} method is called by the Container Developer and the following methods are run for *each* {{#crossLink \"F2.AppConfig\"}}{{/crossLink}} passed.\n1. **'appCreateRoot'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_CREATE\\_ROOT*) handlers are fired in the order they were attached.\n2. **'appRenderBefore'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_RENDER\\_BEFORE*) handlers are fired in the order they were attached.\n3. Each app's `manifestUrl` is requested asynchronously; on success the following methods are fired.\n3. **'appRender'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_RENDER*) handlers are fired in the order they were attached.\n4. **'appRenderAfter'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_RENDER\\_AFTER*) handlers are fired in the order they were attached.\n\n\n**App Removal**\n\n0. {{#crossLink \"F2/removeApp\"}}F2.removeApp(){{/crossLink}} with a specific {{#crossLink \"F2.AppConfig/instanceId \"}}{{/crossLink}} or {{#crossLink \"F2/removeAllApps\"}}F2.removeAllApps(){{/crossLink}} method is called by the Container Developer and the following methods are run.\n1. **'appDestroyBefore'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_DESTROY\\_BEFORE*) handlers are fired in the order they were attached.\n2. **'appDestroy'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_DESTROY*) handlers are fired in the order they were attached.\n3. **'appDestroyAfter'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_DESTROY\\_AFTER*) handlers are fired in the order they were attached.\n\n**Error Handling**\n\n0. **'appScriptLoadFailed'** (*{{#crossLink \"F2.Constants.AppHandlers\"}}{{/crossLink}}.APP\\_SCRIPT\\_LOAD\\_FAILED*) handlers are fired in the order they were attached." }, @@ -175,7 +175,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 422, "description": "A convenient collection of all available appHandler events." }, @@ -189,7 +189,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 6, "description": "The App Class is an optional class that can be namespaced onto the \n{{#crossLink \"F2\\Apps\"}}{{/crossLink}} namespace. The \n[F2 Docs](../../app-development.html#app-class)\nhas more information on the usage of the App Class.", "is_constructor": 1, @@ -221,7 +221,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 29, "description": "The AppConfig object represents an app's meta data" }, @@ -235,7 +235,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 183, "description": "The assets needed to render an app on the page" }, @@ -249,7 +249,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 218, "description": "The AppContent object" }, @@ -263,7 +263,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 245, "description": "An object containing configuration information for the\n[container](../../container-development.html)" }, @@ -277,7 +277,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 339, "description": "An object containing configuration defaults for F2.UI" }, @@ -291,7 +291,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 344, "description": "An object containing configuration defaults for the \nF2.UI.{{#crossLink \"F2.UI/showMask\"}}{{/crossLink}} and\nF2.UI.{{#crossLink \"F2.UI/hideMask\"}}{{/crossLink}} methods." }, @@ -305,7 +305,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 1, "description": "Constants used throughout the Open Financial Framework", "static": 1 @@ -320,7 +320,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 7, "description": "CSS class constants" }, @@ -334,7 +334,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 95, "description": "Events constants" }, @@ -348,7 +348,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 199, "description": "Constants for use with cross-domain sockets", "access": "protected", @@ -364,7 +364,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 254, "description": "The available view types to apps. The view should be specified by applying\nthe {{#crossLink \"F2.Constants.Css\"}}{{/crossLink}}.APP\\_VIEW class to the\ncontaining DOM Element. A DATA\\_ATTRIBUTE attribute should be added to the\nElement as well which defines what view type is represented.\nThe `hide` class can be applied to views that should be hidden by default." }, @@ -378,7 +378,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/events.js", + "file": "sdk\\src\\events.js", "line": 1, "description": "Handles [Context](../../app-development.html#context) passing from\ncontainers to apps and apps to apps." }, @@ -392,7 +392,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/rpc.js", + "file": "sdk\\src\\rpc.js", "line": 1, "description": "Handles socket communication between the container and secure apps" }, @@ -406,7 +406,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 5, "description": "UI helper methods", "is_constructor": 1, @@ -428,7 +428,7 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 67, "description": "Helper methods for creating and using Modals" }, @@ -442,14 +442,14 @@ "extension_for": [], "module": "f2", "namespace": "", - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 205, "description": "Helper methods for creating and using Views" } }, "classitems": [ { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 39, "description": "Abosolutizes a relative URL", "itemtype": "method", @@ -476,7 +476,7 @@ "module": "f2" }, { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 76, "description": "Parses URI", "itemtype": "method", @@ -498,7 +498,7 @@ "module": "f2" }, { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 102, "description": "A function to pass into F2.stringify which will prevent circular\nreference errors when serializing objects", "itemtype": "method", @@ -507,7 +507,7 @@ "module": "f2" }, { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 114, "description": "The apps namespace is a place for app developers to put the javascript\nclass that is used to initialize their app. The javascript classes should\nbe namepaced with the {{#crossLink \"F2.AppConfig\"}}{{/crossLink}}.appId. \nIt is recommended that the code be placed in a closure to help keep the\nglobal namespace clean.\n\nIf the class has an 'init' function, that function will be called \nautomatically by F2.", "itemtype": "property", @@ -521,7 +521,7 @@ "module": "f2" }, { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 150, "description": "Creates a namespace on F2 and copies the contents of an object into\nthat namespace optionally overwriting existing properties.", "itemtype": "method", @@ -551,7 +551,7 @@ "module": "f2" }, { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 190, "description": "Generates a somewhat random id", "itemtype": "method", @@ -564,7 +564,7 @@ "module": "f2" }, { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 202, "description": "Search for a value within an array.", "itemtype": "method", @@ -589,7 +589,7 @@ "module": "f2" }, { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 212, "description": "Tests a URL to see if it's on the same domain (local) or not", "itemtype": "method", @@ -609,7 +609,7 @@ "module": "f2" }, { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 256, "description": "Utility method to determine whether or not the argument passed in is or is not a native dom node.", "itemtype": "method", @@ -629,7 +629,7 @@ "module": "f2" }, { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 275, "description": "A utility logging function to write messages or objects to the browser console. This is a proxy for the [`console` API](https://developers.google.com/chrome-developer-tools/docs/console).", "itemtype": "method", @@ -655,7 +655,7 @@ "module": "f2" }, { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 331, "description": "Wrapper to convert a JSON string to an object", "itemtype": "method", @@ -675,7 +675,7 @@ "module": "f2" }, { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 340, "description": "Wrapper to convert an object to JSON\n\n**Note: When using F2.stringify on an F2.AppConfig object, it is\nrecommended to pass F2.appConfigReplacer as the replacer function in\norder to prevent circular serialization errors.**", "itemtype": "method", @@ -705,7 +705,7 @@ "module": "f2" }, { - "file": "sdk/src/F2.js", + "file": "sdk\\src\\F2.js", "line": 361, "description": "Function to get the F2 version number", "itemtype": "method", @@ -718,7 +718,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 191, "description": "Allows Container Developer to retrieve a unique token which must be passed to\nall `on` and `off` methods. This function will self destruct and can only be called \none time. Container Developers must store the return value inside of a closure.", "itemtype": "method", @@ -727,7 +727,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 205, "description": "Allows F2 to get a token internally. Token is required to call {{#crossLink \"F2.AppHandlers/\\_\\_trigger:method\"}}{{/crossLink}}.\nThis function will self destruct to eliminate other sources from using the {{#crossLink \"F2.AppHandlers/\\_\\_trigger:method\"}}{{/crossLink}}\nand additional internal methods.", "itemtype": "method", @@ -738,7 +738,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 220, "description": "Allows F2 to trigger specific events internally.", "itemtype": "method", @@ -762,7 +762,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 288, "description": "Allows Container Developer to easily tell all apps to render in a specific location. Only valid for eventType `appRender`.", "itemtype": "method", @@ -793,7 +793,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 313, "description": "Allows Container Developer to add listener method that will be triggered when a specific event occurs.", "itemtype": "method", @@ -824,7 +824,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 373, "description": "Allows Container Developer to remove listener methods for specific events", "itemtype": "method", @@ -849,7 +849,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 429, "description": "Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}} )", "itemtype": "property", @@ -864,7 +864,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 451, "description": "Equivalent to `appRenderBefore`. Identifies the before app render method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}} )", "itemtype": "property", @@ -879,7 +879,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 471, "description": "Equivalent to `appRender`. Identifies the app render method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}}, [appHtml](../../app-development.html#app-design) )", "itemtype": "property", @@ -894,7 +894,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 510, "description": "Equivalent to `appRenderAfter`. Identifies the after app render method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}} )", "itemtype": "property", @@ -909,7 +909,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 530, "description": "Equivalent to `appDestroyBefore`. Identifies the before app destroy method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( appInstance )", "itemtype": "property", @@ -924,7 +924,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 550, "description": "Equivalent to `appDestroy`. Identifies the app destroy method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( appInstance )", "itemtype": "property", @@ -939,7 +939,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 583, "description": "Equivalent to `appDestroyAfter`. Identifies the after app destroy method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( appInstance )", "itemtype": "property", @@ -954,7 +954,7 @@ "module": "f2" }, { - "file": "sdk/src/app_handlers.js", + "file": "sdk\\src\\app_handlers.js", "line": 603, "description": "Equivalent to `appScriptLoadFailed`. Identifies the app script load failed method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}}, scriptInfo )", "itemtype": "property", @@ -969,7 +969,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 1, "description": "Class stubs for documentation purposes", "mainName": "F2", @@ -980,7 +980,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 20, "description": "An optional init function that will automatically be called when\nF2.{{#crossLink \"F2\\registerApps\"}}{{/crossLink}} is called.", "itemtype": "method", @@ -990,7 +990,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 34, "description": "The unique ID of the app. More information can be found\n[here](../../app-development.html#f2-appid)", "itemtype": "property", @@ -1001,7 +1001,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 42, "description": "An object that represents the context of an app", "itemtype": "property", @@ -1011,7 +1011,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 48, "description": "True if the app should be requested in a single request with other apps.", "itemtype": "property", @@ -1022,7 +1022,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 55, "description": "The height of the app. The initial height will be pulled from\nthe {{#crossLink \"F2.AppConfig\"}}{{/crossLink}} object, but later\nmodified by calling\nF2.UI.{{#crossLink \"F2.UI/updateHeight\"}}{{/crossLink}}. This is used\nfor secure apps to be able to set the initial height of the iframe.", "itemtype": "property", @@ -1032,7 +1032,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 65, "description": "The unique runtime ID of the app.\n\n**This property is populated during the\nF2.{{#crossLink \"F2/registerApps\"}}{{/crossLink}} process**", "itemtype": "property", @@ -1042,7 +1042,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 74, "description": "True if the app will be loaded in an iframe. This property\nwill be true if the {{#crossLink \"F2.AppConfig\"}}{{/crossLink}} object\nsets isSecure = true. It will also be true if the\n[container](../../container-development.html) has made the decision to\nrun apps in iframes.", "itemtype": "property", @@ -1053,7 +1053,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 85, "description": "The language and region specification for this container \nrepresented as an IETF-defined standard language tag,\ne.g. `\"en-us\"` or `\"de-de\"`. This is passed during the \nF2.{{#crossLink \"F2/registerApps\"}}{{/crossLink}} process.", "itemtype": "property", @@ -1065,7 +1065,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 97, "description": "The languages and regions supported by this app represented\nas an array of IETF-defined standard language tags,\ne.g. `[\"en-us\",\"de-de\"]`.", "itemtype": "property", @@ -1077,7 +1077,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 108, "description": "The url to retrieve the {{#crossLink \"F2.AppManifest\"}}{{/crossLink}}\nobject.", "itemtype": "property", @@ -1088,7 +1088,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 116, "description": "The recommended maximum width in pixels that this app should be run.\n**It is up to the [container](../../container-development.html) to\nimplement the logic to prevent an app from being run when the maxWidth\nrequirements are not met.**", "itemtype": "property", @@ -1098,7 +1098,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 125, "description": "The recommended minimum grid size that this app should be run. This\nvalue corresponds to the 12-grid system that is used by the\n[container](../../container-development.html). This property should be\nset by apps that require a certain number of columns in their layout.", "itemtype": "property", @@ -1109,7 +1109,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 135, "description": "The recommended minimum width in pixels that this app should be run. **It\nis up to the [container](../../container-development.html) to implement\nthe logic to prevent an app from being run when the minWidth requirements\nare not met.", "itemtype": "property", @@ -1120,7 +1120,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 145, "description": "The name of the app", "itemtype": "property", @@ -1131,7 +1131,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 152, "description": "The root DOM element that contains the app\n\n**This property is populated during the\nF2.{{#crossLink \"F2/registerApps\"}}{{/crossLink}} process**", "itemtype": "property", @@ -1141,7 +1141,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 161, "description": "The instance of F2.UI providing easy access to F2.UI methods\n\n**This property is populated during the\nF2.{{#crossLink \"F2/registerApps\"}}{{/crossLink}} process**", "itemtype": "property", @@ -1151,7 +1151,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 170, "description": "The views that this app supports. Available views\nare defined in {{#crossLink \"F2.Constants.Views\"}}{{/crossLink}}. The\npresence of a view can be checked via\nF2.{{#crossLink \"F2/inArray\"}}{{/crossLink}}:\n\n F2.inArray(F2.Constants.Views.SETTINGS, app.views)", "itemtype": "property", @@ -1161,7 +1161,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 188, "description": "The array of {{#crossLink \"F2.AppManifest.AppContent\"}}{{/crossLink}}\nobjects", "itemtype": "property", @@ -1172,7 +1172,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 196, "description": "Any inline javascript tha should initially be run", "itemtype": "property", @@ -1183,7 +1183,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 203, "description": "Urls to javascript files required by the app", "itemtype": "property", @@ -1194,7 +1194,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 210, "description": "Urls to CSS files required by the app", "itemtype": "property", @@ -1205,7 +1205,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 223, "description": "Arbitrary data to be passed along with the app", "itemtype": "property", @@ -1216,7 +1216,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 230, "description": "The string of HTML representing the app", "itemtype": "property", @@ -1227,7 +1227,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 237, "description": "A status message", "itemtype": "property", @@ -1238,7 +1238,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 251, "description": "Allows the [container](../../container-development.html) to override how\nan app's html is inserted into the page. The function should accept an\n{{#crossLink \"F2.AppConfig\"}}{{/crossLink}} object and also a string of\nhtml", "itemtype": "method", @@ -1265,7 +1265,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 263, "description": "Allows the [container](../../container-development.html) to wrap an app\nin extra html. The function should accept an\n{{#crossLink \"F2.AppConfig\"}}{{/crossLink}} object and also a string of\nhtml. The extra html can provide links to edit app settings and remove an\napp from the container. See\n{{#crossLink \"F2.Constants.Css\"}}{{/crossLink}} for CSS classes that\nshould be applied to elements.", "itemtype": "method", @@ -1288,7 +1288,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 277, "description": "Allows the container to render html for an app before the AppManifest for\nan app has loaded. This can be useful if the design calls for loading\nicons to appear for each app before each app is loaded and rendered to\nthe page.", "itemtype": "method", @@ -1310,7 +1310,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 288, "description": "True to enable debug mode in F2.js. Adds additional logging, resource cache busting, etc.", "itemtype": "property", @@ -1321,7 +1321,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 295, "description": "The default language and region specification for this container \nrepresented as an IETF-defined standard language tag,\ne.g. `\"en-us\"` or `\"de-de\"`. This value is passed to each app\nregistered as `containerLocale`.", "itemtype": "property", @@ -1333,7 +1333,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 307, "description": "Milliseconds before F2 fires callback on script resource load errors. Due to issue with the way Internet Explorer attaches load events to script elements, the error event doesn't fire.", "itemtype": "property", @@ -1344,7 +1344,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 314, "description": "Tells the container that it is currently running within\na secure app page", "itemtype": "property", @@ -1354,7 +1354,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 321, "description": "Allows the container to specify which page is used when\nloading a secure app. The page must reside on a different domain than the\ncontainer", "itemtype": "property", @@ -1364,7 +1364,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 330, "description": "Specifies what views a container will provide buttons\nor links to. Generally, the views will be switched via buttons or links\nin the app's header.", "itemtype": "property", @@ -1375,7 +1375,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 351, "description": "The backround color of the overlay", "itemtype": "property", @@ -1386,7 +1386,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 358, "description": "The path to the loading icon", "itemtype": "property", @@ -1396,7 +1396,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 364, "description": "The opacity of the background overlay", "itemtype": "property", @@ -1407,7 +1407,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 371, "description": "Do not use inline styles for mask functinality. Instead classes will\nbe applied to the elements and it is up to the container provider to\nimplement the class definitions.", "itemtype": "property", @@ -1418,7 +1418,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 380, "description": "The z-index to use for the overlay", "itemtype": "property", @@ -1429,7 +1429,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 389, "description": "Allows the container to fully override how the AppManifest request is\nmade inside of F2.", "itemtype": "method", @@ -1472,7 +1472,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 437, "description": "Allows the container to override individual parts of the AppManifest\nrequest. See properties and methods with the `xhr.` prefix.", "itemtype": "property", @@ -1485,7 +1485,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 453, "description": "Allows the container to override the request data type (JSON or JSONP)\nthat is used for the request", "itemtype": "method", @@ -1513,7 +1513,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 475, "description": "Allows the container to override the request method that is used (just\nlike the `type` parameter to `jQuery.ajax()`.", "itemtype": "method", @@ -1541,7 +1541,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 497, "description": "Allows the container to override the url that is used to request an\napp's F2.{{#crossLink \"F2.AppManifest\"}}{{/crossLink}}", "itemtype": "method", @@ -1569,7 +1569,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 517, "description": "Allows the container to override the script loader which requests\ndependencies defined in the {{#crossLink \"F2.AppManifest\"}}{{/crossLink}}.", "itemtype": "property", @@ -1582,7 +1582,7 @@ "module": "f2" }, { - "file": "sdk/src/classes.js", + "file": "sdk\\src\\classes.js", "line": 532, "description": "Allows the container to override the stylesheet loader which requests\ndependencies defined in the {{#crossLink \"F2.AppManifest\"}}{{/crossLink}}.", "itemtype": "property", @@ -1595,13 +1595,13 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 13, "class": "F2.Constants.Css", "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 17, "description": "The APP class should be applied to the DOM Element that surrounds the\nentire app, including any extra html that surrounds the APP\\_CONTAINER\nthat is inserted by the container. See the \n{{#crossLink \"F2.ContainerConfig\"}}{{/crossLink}} object.", "itemtype": "property", @@ -1613,7 +1613,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 28, "description": "The APP\\_CONTAINER class should be applied to the outermost DOM Element\nof the app.", "itemtype": "property", @@ -1625,7 +1625,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 37, "description": "The APP\\_TITLE class should be applied to the DOM Element that contains\nthe title for an app. If this class is not present, then\nF2.UI.{{#crossLink \"F2.UI/setTitle\"}}{{/crossLink}} will not function.", "itemtype": "property", @@ -1637,7 +1637,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 47, "description": "The APP\\_VIEW class should be applied to the DOM Element that contains\na view for an app. The DOM Element should also have a\n{{#crossLink \"F2.Constants.Views\"}}{{/crossLink}}.DATA_ATTRIBUTE\nattribute that specifies which\n{{#crossLink \"F2.Constants.Views\"}}{{/crossLink}} it is.", "itemtype": "property", @@ -1649,7 +1649,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 59, "description": "APP\\_VIEW\\_TRIGGER class should be applied to the DOM Elements that\ntrigger an\n{{#crossLink \"F2.Constants.Events\"}}{{/crossLink}}.APP\\_VIEW\\_CHANGE\nevent. The DOM Element should also have a\n{{#crossLink \"F2.Constants.Views\"}}{{/crossLink}}.DATA_ATTRIBUTE\nattribute that specifies which\n{{#crossLink \"F2.Constants.Views\"}}{{/crossLink}} it will trigger.", "itemtype": "property", @@ -1661,7 +1661,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 73, "description": "The MASK class is applied to the overlay element that is created\nwhen the F2.UI.{{#crossLink \"F2.UI/showMask\"}}{{/crossLink}} method is\nfired.", "itemtype": "property", @@ -1673,7 +1673,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 83, "description": "The MASK_CONTAINER class is applied to the Element that is passed into\nthe F2.UI.{{#crossLink \"F2.UI/showMask\"}}{{/crossLink}} method.", "itemtype": "property", @@ -1685,19 +1685,19 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 100, "class": "F2.Constants.Events", "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 102, "class": "F2.Constants.Events", "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 106, "description": "The APP_SCRIPTS_LOADED event is fired when all the scripts defined in\nthe AppManifest have been loaded.", "itemtype": "property", @@ -1709,7 +1709,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 115, "description": "The APP\\_SYMBOL\\_CHANGE event is fired when the symbol is changed in an\napp. It is up to the app developer to fire this event.\nReturns an object with the symbol and company name:\n\n { symbol: 'MSFT', name: 'Microsoft Corp (NASDAQ)' }", "itemtype": "property", @@ -1721,7 +1721,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 128, "description": "The APP\\_WIDTH\\_CHANGE event will be fired by the container when the\nwidth of an app is changed. The app's instanceId should be concatenated\nto this constant.\nReturns an object with the gridSize and width in pixels:\n\n { gridSize:8, width:620 }", "itemtype": "property", @@ -1733,7 +1733,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 142, "description": "The CONTAINER\\_SYMBOL\\_CHANGE event is fired when the symbol is changed\nat the container level. This event should only be fired by the\ncontainer or container provider.\nReturns an object with the symbol and company name:\n\n { symbol: 'MSFT', name: 'Microsoft Corp (NASDAQ)' }", "itemtype": "property", @@ -1745,7 +1745,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 156, "description": "The CONTAINER\\_WIDTH\\_CHANGE event will be fired by the container when\nthe width of the container has changed.", "itemtype": "property", @@ -1757,7 +1757,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 165, "description": "The CONTAINER\\_LOCALE\\_CHANGE event will be fired by the container when\nthe locale of the container has changed. This event should only be fired by the\ncontainer or container provider.\nReturns an object with the updated locale (IETF-defined standard language tag):\n\n { locale: 'en-us' }", "itemtype": "property", @@ -1769,7 +1769,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 179, "description": "The RESOURCE_FAILED_TO_LOAD event will be fired by the container when\nit fails to load a script or style.", "itemtype": "property", @@ -1783,7 +1783,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 205, "description": "The EVENT message is sent whenever\nF2.Events.{{#crossLink \"F2.Events/emit\"}}{{/crossLink}} is fired", "itemtype": "property", @@ -1795,7 +1795,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 214, "description": "The LOAD message is sent when an iframe socket initially loads.\nReturns a JSON string that represents:\n\n [ App, AppManifest]", "itemtype": "property", @@ -1807,7 +1807,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 226, "description": "The RPC message is sent when a method is passed up from within a secure\napp page.", "itemtype": "property", @@ -1819,7 +1819,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 235, "description": "The RPC\\_CALLBACK message is sent when a call back from an RPC method is\nfired.", "itemtype": "property", @@ -1831,7 +1831,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 244, "description": "The UI\\_RPC message is sent when a UI method called.", "itemtype": "property", @@ -1843,7 +1843,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 263, "description": "The DATA_ATTRIBUTE should be placed on the DOM Element that contains the\nview.", "itemtype": "property", @@ -1855,7 +1855,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 272, "description": "The ABOUT view gives details about the app.", "itemtype": "property", @@ -1867,7 +1867,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 280, "description": "The HELP view provides users with help information for using an app.", "itemtype": "property", @@ -1879,7 +1879,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 288, "description": "The HOME view is the main view for an app. This view should always\nbe provided by an app.", "itemtype": "property", @@ -1891,7 +1891,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 297, "description": "The REMOVE view is a special view that handles the removal of an app\nfrom the container.", "itemtype": "property", @@ -1903,7 +1903,7 @@ "module": "f2" }, { - "file": "sdk/src/constants.js", + "file": "sdk\\src\\constants.js", "line": 306, "description": "The SETTINGS view provides users the ability to modify advanced settings\nfor an app.", "itemtype": "property", @@ -1915,7 +1915,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 14, "description": "Appends the app's html to the DOM", "itemtype": "method", @@ -1944,7 +1944,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 41, "description": "Renders the html for an app.", "itemtype": "method", @@ -1969,7 +1969,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 62, "description": "Rendering hook to allow containers to render some html prior to an app\nloading", "itemtype": "method", @@ -1993,7 +1993,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 76, "description": "Handler to inform the container that a script failed to load", "itemtype": "method", @@ -2017,7 +2017,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 90, "description": "Adds properties to the AppConfig object", "itemtype": "method", @@ -2039,7 +2039,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 120, "description": "Generate an AppConfig from the element's attributes", "itemtype": "method", @@ -2061,7 +2061,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 160, "description": "Returns true if the DOM node has children that are not text nodes", "itemtype": "method", @@ -2083,7 +2083,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 182, "description": "Adds properties to the ContainerConfig object to take advantage of defaults", "itemtype": "method", @@ -2101,7 +2101,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 203, "description": "Attach app events", "itemtype": "method", @@ -2112,7 +2112,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 226, "description": "Attach container Events", "itemtype": "method", @@ -2123,7 +2123,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 251, "description": "Checks if an element is a placeholder element", "itemtype": "method", @@ -2145,7 +2145,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 267, "description": "Has the container been init?", "itemtype": "method", @@ -2160,7 +2160,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 277, "description": "Instantiates each app from it's appConfig and stores that in a local private collection", "itemtype": "method", @@ -2178,7 +2178,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 306, "description": "Loads the app's html/css/javascript", "itemtype": "method", @@ -2202,7 +2202,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 644, "description": "Loads the app's html/css/javascript into an iframe", "itemtype": "method", @@ -2225,7 +2225,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 710, "description": "Checks if the app is valid", "itemtype": "method", @@ -2247,7 +2247,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 732, "description": "Checks if the ContainerConfig is valid", "itemtype": "method", @@ -2262,7 +2262,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 761, "description": "Gets the current list of apps in the container", "itemtype": "method", @@ -2275,7 +2275,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 778, "description": "Gets the current locale defined by the container", "itemtype": "method", @@ -2288,7 +2288,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 791, "description": "Initializes the container. This method must be called before performing\nany other actions in the container.", "itemtype": "method", @@ -2304,7 +2304,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 819, "description": "Has the container been init?", "itemtype": "method", @@ -2317,7 +2317,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 825, "description": "Automatically load apps that are already defined in the DOM. Elements will \nbe rendered into the location of the placeholder DOM element. Any AppHandlers\nthat are defined will be bypassed.", "itemtype": "method", @@ -2333,7 +2333,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 875, "description": "Begins the loading process for all apps and/or initialization process for pre-loaded apps.\nThe app will be passed the {{#crossLink \"F2.AppConfig\"}}{{/crossLink}} object which will\ncontain the app's unique instanceId within the container. If the\n{{#crossLink \"F2.AppConfig\"}}{{/crossLink}}.root property is populated the app is considered\nto be a pre-loaded app and will be handled accordingly. Optionally, the\n{{#crossLink \"F2.AppManifest\"}}{{/crossLink}} can be passed in and those\nassets will be used instead of making a request.", "itemtype": "method", @@ -2360,7 +2360,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 1202, "description": "Removes all apps from the container", "itemtype": "method", @@ -2369,7 +2369,7 @@ "module": "f2" }, { - "file": "sdk/src/container.js", + "file": "sdk\\src\\container.js", "line": 1217, "description": "Removes an app from the container", "itemtype": "method", @@ -2385,7 +2385,7 @@ "module": "f2" }, { - "file": "sdk/src/events.js", + "file": "sdk\\src\\events.js", "line": 16, "description": "Same as F2.Events.emit except that it will not send the event\nto all sockets.", "itemtype": "method", @@ -2410,7 +2410,7 @@ "module": "f2" }, { - "file": "sdk/src/events.js", + "file": "sdk\\src\\events.js", "line": 27, "description": "Execute each of the listeners that may be listening for the specified\nevent name in order with the list of arguments.", "itemtype": "method", @@ -2433,7 +2433,7 @@ "module": "f2" }, { - "file": "sdk/src/events.js", + "file": "sdk\\src\\events.js", "line": 38, "description": "Adds a listener that will execute n times for the event before being \nremoved. The listener is invoked only the first time the event is \nfired, after which it is removed.", "itemtype": "method", @@ -2459,7 +2459,7 @@ "module": "f2" }, { - "file": "sdk/src/events.js", + "file": "sdk\\src\\events.js", "line": 52, "description": "Remove a listener for the specified event.", "itemtype": "method", @@ -2480,7 +2480,7 @@ "module": "f2" }, { - "file": "sdk/src/events.js", + "file": "sdk\\src\\events.js", "line": 61, "description": "Adds a listener for the specified event", "itemtype": "method", @@ -2501,7 +2501,7 @@ "module": "f2" }, { - "file": "sdk/src/events.js", + "file": "sdk\\src\\events.js", "line": 71, "description": "Adds a one time listener for the event. The listener is invoked only\nthe first time the event is fired, after which it is removed.", "itemtype": "method", @@ -2522,7 +2522,7 @@ "module": "f2" }, { - "file": "sdk/src/rpc.js", + "file": "sdk\\src\\rpc.js", "line": 15, "description": "Creates a socket connection from the app to the container using \neasyXDM.", "itemtype": "method", @@ -2533,7 +2533,7 @@ "module": "f2" }, { - "file": "sdk/src/rpc.js", + "file": "sdk\\src\\rpc.js", "line": 69, "description": "Creates a socket connection from the container to the app using \neasyXDM.", "itemtype": "method", @@ -2556,7 +2556,7 @@ "module": "f2" }, { - "file": "sdk/src/rpc.js", + "file": "sdk\\src\\rpc.js", "line": 117, "itemtype": "method", "name": "_createRpcCallback", @@ -2582,7 +2582,7 @@ "module": "f2" }, { - "file": "sdk/src/rpc.js", + "file": "sdk\\src\\rpc.js", "line": 135, "description": "Handles messages that come across the sockets", "itemtype": "method", @@ -2610,7 +2610,7 @@ "module": "f2" }, { - "file": "sdk/src/rpc.js", + "file": "sdk\\src\\rpc.js", "line": 216, "description": "Registers a callback function", "itemtype": "method", @@ -2632,7 +2632,7 @@ "module": "f2" }, { - "file": "sdk/src/rpc.js", + "file": "sdk\\src\\rpc.js", "line": 230, "description": "Broadcast an RPC function to all sockets", "itemtype": "method", @@ -2653,7 +2653,7 @@ "module": "f2" }, { - "file": "sdk/src/rpc.js", + "file": "sdk\\src\\rpc.js", "line": 243, "description": "Calls a remote function", "itemtype": "method", @@ -2684,7 +2684,7 @@ "module": "f2" }, { - "file": "sdk/src/rpc.js", + "file": "sdk\\src\\rpc.js", "line": 273, "description": "Init function which tells F2.Rpc whether it is running at the container-\nlevel or the app-level. This method is generally called by\nF2.{{#crossLink \"F2/init\"}}{{/crossLink}}", "itemtype": "method", @@ -2701,7 +2701,7 @@ "module": "f2" }, { - "file": "sdk/src/rpc.js", + "file": "sdk\\src\\rpc.js", "line": 289, "description": "Determines whether the Instance ID is considered to be 'remote'. This is\ndetermined by checking if 1) the app has an open socket and 2) whether\nF2.Rpc is running inside of an iframe", "itemtype": "method", @@ -2721,7 +2721,7 @@ "module": "f2" }, { - "file": "sdk/src/rpc.js", + "file": "sdk\\src\\rpc.js", "line": 308, "description": "Creates a container-to-app or app-to-container socket for communication", "itemtype": "method", @@ -2744,7 +2744,7 @@ "module": "f2" }, { - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 58, "description": "Removes a overlay from an Element on the page", "itemtype": "method", @@ -2760,7 +2760,7 @@ "module": "f2" }, { - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 83, "description": "Display an alert message on the page", "itemtype": "method", @@ -2782,7 +2782,7 @@ "module": "f2" }, { - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 118, "description": "Display a confirm message on the page", "itemtype": "method", @@ -2808,7 +2808,7 @@ "module": "f2" }, { - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 163, "description": "Sets the title of the app as shown in the browser. Depending on the\ncontainer HTML, this method may do nothing if the container has not been\nconfigured properly or else the container provider does not allow Title's\nto be set.", "itemtype": "method", @@ -2824,7 +2824,7 @@ "module": "f2" }, { - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 187, "description": "Display an ovarlay over an Element on the page", "itemtype": "method", @@ -2845,7 +2845,7 @@ "module": "f2" }, { - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 197, "description": "For secure apps, this method updates the size of the iframe that\ncontains the app. **Note: It is recommended that app developers call\nthis method anytime Elements are added or removed from the DOM**", "itemtype": "method", @@ -2861,7 +2861,7 @@ "module": "f2" }, { - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 228, "description": "Change the current view for the app or add an event listener", "itemtype": "method", @@ -2878,7 +2878,7 @@ "module": "f2" }, { - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 260, "description": "Removes a view event listener", "itemtype": "method", @@ -2899,7 +2899,7 @@ "module": "f2" }, { - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 272, "description": "Adds a view event listener", "itemtype": "method", @@ -2920,7 +2920,7 @@ "module": "f2" }, { - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 290, "description": "Removes a overlay from an Element on the page", "itemtype": "method", @@ -2942,7 +2942,7 @@ "module": "f2" }, { - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 332, "itemtype": "method", "name": "init", @@ -2958,7 +2958,7 @@ "module": "f2" }, { - "file": "sdk/src/ui.js", + "file": "sdk\\src\\ui.js", "line": 345, "description": "Display an ovarlay over an Element on the page", "itemtype": "method", @@ -2988,63 +2988,63 @@ "warnings": [ { "message": "replacing incorrect tag: returns with return", - "line": " sdk/src/F2.js:39" + "line": " sdk\\src\\F2.js:39" }, { "message": "replacing incorrect tag: returns with return", - "line": " sdk/src/F2.js:76" + "line": " sdk\\src\\F2.js:76" }, { "message": "replacing incorrect tag: returns with return", - "line": " sdk/src/F2.js:212" + "line": " sdk\\src\\F2.js:212" }, { "message": "replacing incorrect tag: params with param", - "line": " sdk/src/app_handlers.js:288" + "line": " sdk\\src\\app_handlers.js:288" }, { "message": "replacing incorrect tag: params with param", - "line": " sdk/src/app_handlers.js:313" + "line": " sdk\\src\\app_handlers.js:313" }, { "message": "replacing incorrect tag: depreciated with deprecated", - "line": " sdk/src/constants.js:179" + "line": " sdk\\src\\constants.js:179" }, { "message": "replacing incorrect tag: returns with return", - "line": " sdk/src/container.js:710" + "line": " sdk\\src\\container.js:710" }, { "message": "replacing incorrect tag: returns with return", - "line": " sdk/src/container.js:732" + "line": " sdk\\src\\container.js:732" }, { "message": "replacing incorrect tag: returns with return", - "line": " sdk/src/container.js:761" + "line": " sdk\\src\\container.js:761" }, { "message": "replacing incorrect tag: returns with return", - "line": " sdk/src/container.js:778" + "line": " sdk\\src\\container.js:778" }, { "message": "replacing incorrect tag: params with param", - "line": " sdk/src/ui.js:163" + "line": " sdk\\src\\ui.js:163" }, { "message": "replacing incorrect tag: params with param", - "line": " sdk/src/ui.js:197" + "line": " sdk\\src\\ui.js:197" }, { "message": "Missing item type", - "line": " sdk/src/constants.js:13" + "line": " sdk\\src\\constants.js:13" }, { "message": "Missing item type", - "line": " sdk/src/constants.js:100" + "line": " sdk\\src\\constants.js:100" }, { "message": "Missing item type", - "line": " sdk/src/constants.js:102" + "line": " sdk\\src\\constants.js:102" } ] } \ No newline at end of file diff --git a/docs/dist/sdk/files/sdk_src_F2.js.html b/docs/dist/sdk/files/sdk_src_F2.js.html index 2f5abc95..2e6da904 100644 --- a/docs/dist/sdk/files/sdk_src_F2.js.html +++ b/docs/dist/sdk/files/sdk_src_F2.js.html @@ -1,7 +1,7 @@ -sdk/src/F2.js - Open Financial Framework +sdk\src\F2.js - Open Financial Framework @@ -97,12 +97,12 @@
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk/src/F2.js
  • +
  • sdk\src\F2.js
  • @@ -197,7 +197,7 @@ -

    sdk/src/F2.js File

    +

    sdk\src\F2.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_app_handlers.js.html b/docs/dist/sdk/files/sdk_src_app_handlers.js.html
    index 0fb05634..fa98dc12 100644
    --- a/docs/dist/sdk/files/sdk_src_app_handlers.js.html
    +++ b/docs/dist/sdk/files/sdk_src_app_handlers.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk/src/app_handlers.js - Open Financial Framework
    +sdk\src\app_handlers.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk/src/app_handlers.js
  • +
  • sdk\src\app_handlers.js
  • @@ -197,7 +197,7 @@ -

    sdk/src/app_handlers.js File

    +

    sdk\src\app_handlers.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_classes.js.html b/docs/dist/sdk/files/sdk_src_classes.js.html
    index b9fbb98e..b08d67a2 100644
    --- a/docs/dist/sdk/files/sdk_src_classes.js.html
    +++ b/docs/dist/sdk/files/sdk_src_classes.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk/src/classes.js - Open Financial Framework
    +sdk\src\classes.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk/src/classes.js
  • +
  • sdk\src\classes.js
  • @@ -197,7 +197,7 @@ -

    sdk/src/classes.js File

    +

    sdk\src\classes.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_constants.js.html b/docs/dist/sdk/files/sdk_src_constants.js.html
    index 672659ad..bc6b962a 100644
    --- a/docs/dist/sdk/files/sdk_src_constants.js.html
    +++ b/docs/dist/sdk/files/sdk_src_constants.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk/src/constants.js - Open Financial Framework
    +sdk\src\constants.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk/src/constants.js
  • +
  • sdk\src\constants.js
  • @@ -197,7 +197,7 @@ -

    sdk/src/constants.js File

    +

    sdk\src\constants.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_container.js.html b/docs/dist/sdk/files/sdk_src_container.js.html
    index 876784a8..fc85ab51 100644
    --- a/docs/dist/sdk/files/sdk_src_container.js.html
    +++ b/docs/dist/sdk/files/sdk_src_container.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk/src/container.js - Open Financial Framework
    +sdk\src\container.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk/src/container.js
  • +
  • sdk\src\container.js
  • @@ -197,7 +197,7 @@ -

    sdk/src/container.js File

    +

    sdk\src\container.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_events.js.html b/docs/dist/sdk/files/sdk_src_events.js.html
    index c283d207..f591e9f8 100644
    --- a/docs/dist/sdk/files/sdk_src_events.js.html
    +++ b/docs/dist/sdk/files/sdk_src_events.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk/src/events.js - Open Financial Framework
    +sdk\src\events.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk/src/events.js
  • +
  • sdk\src\events.js
  • @@ -197,7 +197,7 @@ -

    sdk/src/events.js File

    +

    sdk\src\events.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_rpc.js.html b/docs/dist/sdk/files/sdk_src_rpc.js.html
    index 4f4973d8..0ec1c379 100644
    --- a/docs/dist/sdk/files/sdk_src_rpc.js.html
    +++ b/docs/dist/sdk/files/sdk_src_rpc.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk/src/rpc.js - Open Financial Framework
    +sdk\src\rpc.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk/src/rpc.js
  • +
  • sdk\src\rpc.js
  • @@ -197,7 +197,7 @@ -

    sdk/src/rpc.js File

    +

    sdk\src\rpc.js File

    
    diff --git a/docs/dist/sdk/files/sdk_src_ui.js.html b/docs/dist/sdk/files/sdk_src_ui.js.html
    index 22b7333c..220868c0 100644
    --- a/docs/dist/sdk/files/sdk_src_ui.js.html
    +++ b/docs/dist/sdk/files/sdk_src_ui.js.html
    @@ -1,7 +1,7 @@
     
     
     
    -sdk/src/ui.js - Open Financial Framework
    +sdk\src\ui.js - Open Financial Framework
     
     
     
    @@ -97,12 +97,12 @@
                   
  • Extend F2
  • F2.js API Reference
  • -
  • Submit Feedback
  • +
  • Submit Feedback
  • Other versions
  • -
  • sdk/src/ui.js
  • +
  • sdk\src\ui.js
  • @@ -197,7 +197,7 @@ -

    sdk/src/ui.js File

    +

    sdk\src\ui.js File

    
    diff --git a/docs/dist/sdk/modules/f2.html b/docs/dist/sdk/modules/f2.html
    index 279d6786..4195e3f3 100644
    --- a/docs/dist/sdk/modules/f2.html
    +++ b/docs/dist/sdk/modules/f2.html
    @@ -206,7 +206,7 @@ 

    f2 Module

    - Defined in: sdk/src/ui.js:205 + Defined in: sdk\src\ui.js:205
    diff --git a/sdk/f2.nuspec b/sdk/f2.nuspec deleted file mode 100644 index 5cb0a95b..00000000 --- a/sdk/f2.nuspec +++ /dev/null @@ -1,28 +0,0 @@ - - - - F2 - 1.4.2 - F2: The Open Financial Framework - Markit On Demand - OpenF2 - https://github.com/OpenF2/F2#copyright-and-license - http://www.openf2.org/ - http://docs.openf2.org/img/favicon-32px.png - false - An open framework created for the financial services industry. - F2 is an open and free web integration framework that has been designed to help you and other financial industry participants develop custom solutions that combine the best tools and content from multiple providers into one, privately-labeled, seamlessly integrated front-end. - https://github.com/OpenF2/F2/wiki/Changelog - javascript js html css jquery twitter bootstrap - en-US - - - - - - - - - - - \ No newline at end of file From 42d0ce6bca36d634282dc4612d093de0461aecd8 Mon Sep 17 00:00:00 2001 From: qrider Date: Wed, 10 May 2017 16:56:34 -0600 Subject: [PATCH 3/6] Updated package.json #267 --- docs/dist/extending-f2.html | 2 +- docs/dist/f2js-sdk.html | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/dist/extending-f2.html b/docs/dist/extending-f2.html index f3cfad87..2f63b610 100644 --- a/docs/dist/extending-f2.html +++ b/docs/dist/extending-f2.html @@ -165,7 +165,7 @@
    diff --git a/docs/dist/f2js-sdk.html b/docs/dist/f2js-sdk.html index 7f147fcf..aef303f0 100644 --- a/docs/dist/f2js-sdk.html +++ b/docs/dist/f2js-sdk.html @@ -187,7 +187,7 @@

    There is a page on the wiki tracking deprecated features in F2. Starting with version 1.2, three ContainerConfig properties have been retired. As F2 features and/or F2.js APIs are deprecated, we will attempt to give reasonable advance notice via any or all of the F2 communication channels. In addition, we will strive to ensure that backward compatibility will be maintained for at least one major version of F2. For example, if Feature X is deprecated in version 1.3, we will attempt to maintain backward compatibility until the next major release (version 2.0). F2 documentation will be updated accordingly to reflect any changes, and the conversation behind deprecated features will be publicly available on GitHub.

    F2 uses third party libraries inside F2.js (see Framework: Choices). These open-source libraries are all on their own release schedules. We cannot guarantee that we will always stay abreast and in tune with such latest releases, but in an effort to improve the F2 framework, we will attempt to update F2.js so that it uses the latest, most stable and most secure version of the third party software. These updates to F2 will be made through the normal release process on GitHub and comments will be open.

    -

    Have a question? Ask it on the F2 Google Group (or send an email to OpenF2@googlegroups.com) or start a discussion using Issues on GitHub.

    +

    Have a question? Ask it on the F2 Google Group (or send an email to OpenF2@googlegroups.com) or start a discussion using Issues on GitHub.

    To track bugs, enhancements or other issues, F2 is using Issues on GitHub.


    F2 is licensed under the Apache License version 2.0. Details are available in the project readme.

    diff --git a/package.json b/package.json index 989ef521..96c59079 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "grunt-contrib-uglify": "~0.2.0", "grunt-contrib-watch": "^0.6.1", "grunt-express": "~0.3.3", - "grunt-http": "^1.6.0", + "grunt-http": "^2.0.0", "handlebars": "1.0.10", "highlight.js": "^8.5.0", "marked": "^0.3.3", From df1b4d16f5739fa3761745b457f8f90bbfdc0bd4 Mon Sep 17 00:00:00 2001 From: qrider Date: Thu, 11 May 2017 10:47:21 -0600 Subject: [PATCH 4/6] Feature/add manifest request fail app handler #283 --- F2.latest.js | 6 +- dist/f2.debug.js | 28 ++++- dist/f2.min.js | 6 +- dist/f2.min.map | 2 +- dist/f2.no-third-party.js | 28 ++++- docs/dist/extending-f2.html | 2 +- docs/dist/f2js-sdk.html | 2 +- docs/dist/sdk/classes/F2.AppHandlers.html | 12 +- .../sdk/classes/F2.Constants.AppHandlers.html | 103 ++++++++++++++++-- docs/dist/sdk/classes/F2.html | 4 +- docs/dist/sdk/data.json | 53 +++++---- .../sdk/files/sdk_src_app_handlers.js.html | 21 ++++ docs/dist/sdk/files/sdk_src_container.js.html | 5 + sdk/f2.debug.js | 28 ++++- sdk/f2.min.js | 6 +- sdk/f2.min.map | 2 +- sdk/f2.no-third-party.js | 28 ++++- sdk/packages/f2.basic.js | 28 ++++- sdk/packages/f2.basic.min.js | 6 +- sdk/packages/f2.no-bootstrap.js | 28 ++++- sdk/packages/f2.no-bootstrap.min.js | 6 +- sdk/packages/f2.no-easyXDM.js | 28 ++++- sdk/packages/f2.no-easyXDM.min.js | 6 +- sdk/packages/f2.no-jquery-or-bootstrap.js | 28 ++++- sdk/packages/f2.no-jquery-or-bootstrap.min.js | 6 +- sdk/src/app_handlers.js | 21 ++++ sdk/src/container.js | 5 + 27 files changed, 429 insertions(+), 69 deletions(-) diff --git a/F2.latest.js b/F2.latest.js index c07ee815..09c33768 100644 --- a/F2.latest.js +++ b/F2.latest.js @@ -1,4 +1,4 @@ -/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-11-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 @@ -29,7 +29,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.4",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidthe;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -56,5 +56,5 @@ var $,jQuery=$=window.jQuery.noConflict(!0);+function(a){"use strict";function b * in the terms and conditions related to the specific Third Party Material, if any. * */ -var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','",""].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); +var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appManifestRequestFail:[],appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_MANIFEST_REQUEST_FAIL:"appManifestRequestFail",APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); //# sourceMappingURL=f2.min.map \ No newline at end of file diff --git a/dist/f2.debug.js b/dist/f2.debug.js index 0f14c4e9..108504d1 100644 --- a/dist/f2.debug.js +++ b/dist/f2.debug.js @@ -14768,7 +14768,7 @@ global.easyXDM = easyXDM; })(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent); /*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -15179,6 +15179,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -15564,6 +15565,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the @@ -18598,6 +18619,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/dist/f2.min.js b/dist/f2.min.js index c07ee815..09c33768 100644 --- a/dist/f2.min.js +++ b/dist/f2.min.js @@ -1,4 +1,4 @@ -/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-11-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 @@ -29,7 +29,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.4",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidthe;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -56,5 +56,5 @@ var $,jQuery=$=window.jQuery.noConflict(!0);+function(a){"use strict";function b * in the terms and conditions related to the specific Third Party Material, if any. * */ -var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); +var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appManifestRequestFail:[],appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_MANIFEST_REQUEST_FAIL:"appManifestRequestFail",APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); //# sourceMappingURL=f2.min.map \ No newline at end of file diff --git a/dist/f2.min.map b/dist/f2.min.map index fd932d8c..f021511f 100644 --- a/dist/f2.min.map +++ b/dist/f2.min.map @@ -1 +1 @@ -{"version":3,"file":"f2.min.js","sources":["f2.debug.js"],"names":["exports","F2","F2_TESTING_MODE","runInContext","context","has","name","undef","isSupported","value","serialized","stringify","stringifySupported","isExtended","toJSON","Number","String","getClass","a","Date","exception","parse","parseSupported","length","root","Object","SyntaxError","TypeError","Math","nativeJSON","isProperty","forEach","objectProto","prototype","toString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","functionClass","dateClass","numberClass","stringClass","arrayClass","booleanClass","charIndexBuggy","floor","Months","getDay","year","month","hasOwnProperty","property","constructor","members","__proto__","original","this","result","parent","call","object","callback","Properties","size","valueOf","isFunction","isConstructor","hasProperty","objectTypes","Escapes",92,34,8,12,10,13,9,"leadingZeroes","toPaddedString","width","slice","unicodePrefix","quote","index","useCharIndex","symbols","split","charCode","charCodeAt","charAt","serialize","properties","whitespace","indentation","stack","className","date","time","hours","minutes","seconds","milliseconds","results","element","prefix","push","join","pop","source","filter","Index","Source","fromCharCode","Unescapes",47,98,116,110,102,114,"abort","lex","begin","position","isSigned","get","hasMembers","update","walk","isLoader","define","amd","function","freeExports","nodeType","window","freeGlobal","module","global","JSON","previousJSON","isRestored","JSON3","noConflict","factory","document","w","Error","noGlobal","isArraylike","obj","type","jQuery","isWindow","winnow","elements","qualifier","not","grep","elem","i","risSimple","test","inArray","sibling","cur","dir","createOptions","options","optionsCache","each","match","rnotwhite","_","flag","detach","addEventListener","removeEventListener","completed","detachEvent","event","readyState","ready","dataAttr","key","data","undefined","replace","rmultiDash","toLowerCase","getAttribute","rbrace","parseJSON","e","isEmptyDataObject","isEmptyObject","internalData","pvt","acceptData","ret","thisCache","internalKey","expando","isNode","cache","id","deletedIds","guid","noop","extend","camelCase","internalRemoveData","isArray","concat","map","cleanData","support","deleteExpando","returnTrue","returnFalse","safeActiveElement","activeElement","err","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","createElement","getAll","tag","elems","found","getElementsByTagName","strundefined","querySelectorAll","childNodes","nodeName","merge","fixDefaultChecked","rcheckableType","defaultChecked","checked","manipulationTarget","content","firstChild","appendChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","exec","removeAttribute","setGlobalEval","refElements","_data","cloneCopyEvent","src","dest","hasData","l","oldData","curData","events","handle","add","fixCloneNodeIssues","noCloneEvent","removeEvent","text","parentNode","outerHTML","html5Clone","innerHTML","trim","defaultSelected","selected","defaultValue","actualDisplay","doc","style","appendTo","body","display","getDefaultComputedStyle","css","defaultDisplay","elemdisplay","iframe","documentElement","contentWindow","contentDocument","write","close","addGetHookIf","conditionFn","hookFn","condition","apply","arguments","vendorPropName","capName","toUpperCase","origName","cssPrefixes","showHide","show","hidden","values","isHidden","setPositiveNumber","subtract","matches","rnumsplit","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","Tween","prop","end","easing","init","createFxNow","setTimeout","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","createTween","animation","tween","collection","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","checkDisplay","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","done","hide","_removeData","start","propFilter","specialEasing","cssHooks","expand","Animation","stopped","animationPrefilters","deferred","Deferred","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","fx","timer","progress","complete","fail","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","error","buildParams","traditional","v","rbracket","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","getWindow","defaultView","parentWindow","indexOf","class2type","hasOwn","version","selector","fn","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","toArray","num","pushStack","prevObject","args","first","eq","last","len","j","sort","splice","copyIsArray","copy","clone","isPlainObject","random","isReady","msg","Array","isNumeric","ownLast","globalEval","execScript","string","makeArray","arr","second","invert","callbackInverse","callbackExpect","arg","proxy","Sizzle","seed","m","groups","old","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","contains","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","setAttribute","toSelector","rsibling","testContext","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","removeChild","addHandle","handler","attrHandle","siblingCheck","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","outerCache","newCache","dirruns","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","compilerCache","sortOrder","push_native","booleans","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","unloadHandler","els","node","hasCompare","top","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","innerText","lang","elemLang","hash","location","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","n","r","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","once","stopOnFalse","disable","remove","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","suffix","expanded","parts","unit","propHooks","eased","step","linear","p","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","andSelf","_jQuery","_$","$","Plugin","_relatedTarget","$this","Modal","DEFAULTS","$body","$element","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","VERSION","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","backdrop","keyboard","that","checkScrollbar","setScrollbar","escape","resize","transition","adjustDialog","enforceFocus","emulateTransitionEnd","hideModal","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","doAnimate","callbackRemove","modalIsOverflowing","clientHeight","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","right","abs","clientWidth","measureScrollbar","bodyPad","scrollDiv","modal","Constructor","$target","showEvent","_events","_conf","configure","conf","delimiter","maxListeners","wildcard","newListener","listenerTree","EventEmitter","searchListenerTree","tree","leaf","branch","xTree","xxTree","isolatedBranch","endReached","listeners","typeLength","currentType","nextType","_listeners","**","growListenerTree","listener","warned","defaultMaxListeners","console","trace","setMaxListeners","many","ttl","_origin","emit","_all","ns","onAny","addListener","leafs","iLeaf","offAny","removeListener","removeAllListeners","listenersAny","EventEmitter2","process","title","decodeURIComponent","isHostMethod","isHostObject","o","hasFlash","navigator","plugins","description","mimeTypes","enabledPlugin","flashVersion","flash","GetVariable","notSupportedException","major","minor","HAS_FLASH_THROTTLED_BUG","dom_onReady","domIsReady","domReadyQueue","whenReady","scope","getParentObject","ii","easyXDM","_easyXDM","IFRAME_PREFIX","getDomainName","reURI","getPort","getLocation","proto","domain","port","resolveUrl","reDoubleSlash","path","substring","pathname","lastIndexOf","protocol","host","reParent","appendQueryParameters","parameters","q","useHash","destination","noOverwrite","member","testForNamePropertyBug","channelId","HAS_NAME_PROPERTY_BUG","createFrame","config","frame","frameBorder","allowTransparency","onLoad","usePost","action","checkAcl","acl","re","substr","prepareTransportStack","stackEls","isHost","query","xdm_p","channel","secret","swf","product","userAgent","remoteHelper","xdm_c","xdm_s","xdm_e","useResize","useParent","usePolling","local","images","search","xdm_pa","xdm_po","HashTransport","ReliableBehavior","QueueBehavior","encode","maxLength","VerifyBehavior","initiate","PostMessageTransport","NameTransport","NixTransport","SameOriginTransport","FrameElementTransport","FlashTransport","lazy","chainStack","stackElements","stackEl","defaults","incoming","message","origin","up","outgoing","recipient","down","destroy","removeFromStack","un","emptyFn","sEvent","fpNotify","pair","evalJSON","getJSONObject","DomHelper","requiresJSON","_map","Fn","del","Socket","onMessage","onReady","postMessage","Rpc","jsonRpcConfig","RpcBehavior","pub","targetOrigin","onDOMReady","sendFn","addSwf","swfContainer","swfNoThrottle","flashVars","destroyChannel","swfdomain","createChannel","_getOrigin","uri","_window_onMessage","callerWindow","waitForReady","referrer","_sendMessage","sendMessage","_onReady","readyCount","_onMessage","remoteOrigin","_onLoad","remoteWindow","remoteUrl","_callerWindow","_msgNr","_handleHash","_lastMsg","_remoteOrigin","_pollHash","_listenerWindow","_attachListeners","_timer","pollInterval","tries","getRef","frames","ex","idOut","idIn","currentMessage","ack","waiting","destroying","doFragment","seq","fragments","startVerification","mySecret","theirSecret","_send","jsonrpc","serializer","_createMethod","definition","_callbacks","_callbackCounter","namedParams","_executeMethod","ex1","_absolutizeURI","removeDotSegments","output","_parseURI","authority","hostname","appConfigReplacer","Apps","overwrite","isFunc","S4","array","isLocalRequest","urlLower","isNativeDOMNode","testObject","bIsNode","Node","bIsElement","HTMLElement","log","_log","_logMethod","methods","replacer","space","_ct","_f2t","_handlerCollection","appCreateRoot","appRenderBefore","appDestroyBefore","appRenderAfter","appDestroyAfter","appRender","appDestroy","appScriptLoadFailed","_defaultMethods","appConfig","appHtml","$root","appInstance","app","appId","_createHandler","sNamespace","func_or_element","bDomNodeAppropriate","_validateToken","domNode","sToken","_removeHandler","eventKey","currentEventKey","eventCollection","newEvents","ec","currentEventHandler","newHandlerCollection","iCounter","hc","currentHandler","getToken","__f2GetToken","__trigger","passableArgs","hcl","$appRoot","arData","AppHandlers","APP_CREATE_ROOT","APP_RENDER_BEFORE","APP_RENDER","APP_RENDER_AFTER","APP_DESTROY_BEFORE","APP_DESTROY","APP_DESTROY_AFTER","APP_SCRIPT_LOAD_FAILED","App","appContent","AppConfig","enableBatchRequests","instanceId","isSecure","containerLocale","localeSupport","manifestUrl","minGridSize","ui","views","AppManifest","apps","inlineScripts","AppContent","ContainerConfig","afterAppRender","beforeAppRender","debugMode","locale","scriptErrorTimeout","isSecureAppPage","secureAppPagePath","supportedViews","UI","Mask","backgroundColor","loadingIcon","useClasses","appConfigs","loadScripts","inlines","loadStyles","Css","_PREFIX","APP","APP_CONTAINER","APP_TITLE","APP_VIEW","APP_VIEW_TRIGGER","MASK","MASK_CONTAINER","Events","_APP_EVENT_PREFIX","_CONTAINER_EVENT_PREFIX","APP_SCRIPTS_LOADED","APP_SYMBOL_CHANGE","APP_WIDTH_CHANGE","CONTAINER_SYMBOL_CHANGE","CONTAINER_WIDTH_CHANGE","CONTAINER_LOCALE_CHANGE","RESOURCE_FAILED_TO_LOAD","JSONP_CALLBACK","AppStatus","ERROR","SUCCESS","Sockets","EVENT","LOAD","RPC","RPC_CALLBACK","UI_RPC","Views","DATA_ATTRIBUTE","ABOUT","HELP","HOME","REMOVE","SETTINGS","_socketEmit","broadcast","Constants","timesToListen","_secureAppPagePath","_apps","_rEvents","_rRpc","_rRpcCallback","_rSocketLoad","_rUiCall","_createAppToContainerSocket","isLoaded","messagePlayback","socket","appParts","registerApps","_createContainerToAppSocket","appManifest","iframeProps","scrolling","_createRpcCallback","callbackId","parseFunction","functionName","parseMessage","regEx","callbacks","c","_registerCallback","messageType","cid","isRemote","register","_containerConfig","UI_Class","_appConfig","_updateHeight","outerHeight","_modalHtml","showCancel","hideMask","Modals","_renderAlert","_renderConfirm","alert","isInit","confirm","okCallback","cancelCallback","setTitle","showMask","showLoader","updateHeight","_rValidEvents","_isValid","containerConfig","showLoading","mask","background-color","background-image","background-position","background-repeat","min-height","z-index","_config","_bUsesAppHandlers","_sAppHandlerToken","_loadingScripts","_afterAppRender","appContainer","_appRender","_outerHtml","_beforeAppRender","_appScriptLoadFailed","scriptInfo","_createAppConfig","_getAppConfigFromElement","hasAttribute","contextJson","warn","_hasNonTextChildNodes","hasNodes","hasChildNodes","_hydrateContainerConfig","_initAppEvents","view","removeApp","_initContainerEvents","resizeTimeout","resizeHandler","_isPlaceholderElement","_isInit","_createAppInstance","_loadApps","_loadSecureApp","_findExistingScripts","_findExistingStyles","_loadStyles","cb","existingStyles","stylesFragment","useCreateStyleSheet","createStyleSheet","resourceUrl","_loadScripts","existingScripts","scriptCount","scriptsLoaded","insertBeforeEl","readyStates","loaded","_error","evtData","_checkComplete","_emptyWaitlist","resourceKey","errorEvt","waitlist","getTime","onerror","_loadInlineScripts","loadInlineScripts","eval","elementInDocument","_loadHtml","_validateApp","_validateContainerConfig","getContainerState","getContainerLocale","loadPlaceholders","addAll","appManifests","appStack","batches","callbackStack","haveManifests","preloaded","req","requests","manifestRequest","completeFunc","errorFunc","item","successFunc","requestFunc","successCallback","errorCallback","completeCallback","jqxhr","removeAllApps","autoloadEls"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"f2.min.js","sources":["f2.debug.js"],"names":["exports","F2","F2_TESTING_MODE","runInContext","context","has","name","undef","isSupported","value","serialized","stringify","stringifySupported","isExtended","toJSON","Number","String","getClass","a","Date","exception","parse","parseSupported","length","root","Object","SyntaxError","TypeError","Math","nativeJSON","isProperty","forEach","objectProto","prototype","toString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","functionClass","dateClass","numberClass","stringClass","arrayClass","booleanClass","charIndexBuggy","floor","Months","getDay","year","month","hasOwnProperty","property","constructor","members","__proto__","original","this","result","parent","call","object","callback","Properties","size","valueOf","isFunction","isConstructor","hasProperty","objectTypes","Escapes",92,34,8,12,10,13,9,"leadingZeroes","toPaddedString","width","slice","unicodePrefix","quote","index","useCharIndex","symbols","split","charCode","charCodeAt","charAt","serialize","properties","whitespace","indentation","stack","className","date","time","hours","minutes","seconds","milliseconds","results","element","prefix","push","join","pop","source","filter","Index","Source","fromCharCode","Unescapes",47,98,116,110,102,114,"abort","lex","begin","position","isSigned","get","hasMembers","update","walk","isLoader","define","amd","function","freeExports","nodeType","window","freeGlobal","module","global","JSON","previousJSON","isRestored","JSON3","noConflict","factory","document","w","Error","noGlobal","isArraylike","obj","type","jQuery","isWindow","winnow","elements","qualifier","not","grep","elem","i","risSimple","test","inArray","sibling","cur","dir","createOptions","options","optionsCache","each","match","rnotwhite","_","flag","detach","addEventListener","removeEventListener","completed","detachEvent","event","readyState","ready","dataAttr","key","data","undefined","replace","rmultiDash","toLowerCase","getAttribute","rbrace","parseJSON","e","isEmptyDataObject","isEmptyObject","internalData","pvt","acceptData","ret","thisCache","internalKey","expando","isNode","cache","id","deletedIds","guid","noop","extend","camelCase","internalRemoveData","isArray","concat","map","cleanData","support","deleteExpando","returnTrue","returnFalse","safeActiveElement","activeElement","err","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","createElement","getAll","tag","elems","found","getElementsByTagName","strundefined","querySelectorAll","childNodes","nodeName","merge","fixDefaultChecked","rcheckableType","defaultChecked","checked","manipulationTarget","content","firstChild","appendChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","exec","removeAttribute","setGlobalEval","refElements","_data","cloneCopyEvent","src","dest","hasData","l","oldData","curData","events","handle","add","fixCloneNodeIssues","noCloneEvent","removeEvent","text","parentNode","outerHTML","html5Clone","innerHTML","trim","defaultSelected","selected","defaultValue","actualDisplay","doc","style","appendTo","body","display","getDefaultComputedStyle","css","defaultDisplay","elemdisplay","iframe","documentElement","contentWindow","contentDocument","write","close","addGetHookIf","conditionFn","hookFn","condition","apply","arguments","vendorPropName","capName","toUpperCase","origName","cssPrefixes","showHide","show","hidden","values","isHidden","setPositiveNumber","subtract","matches","rnumsplit","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","Tween","prop","end","easing","init","createFxNow","setTimeout","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","createTween","animation","tween","collection","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","checkDisplay","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","done","hide","_removeData","start","propFilter","specialEasing","cssHooks","expand","Animation","stopped","animationPrefilters","deferred","Deferred","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","fx","timer","progress","complete","fail","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","error","buildParams","traditional","v","rbracket","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","getWindow","defaultView","parentWindow","indexOf","class2type","hasOwn","version","selector","fn","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","toArray","num","pushStack","prevObject","args","first","eq","last","len","j","sort","splice","copyIsArray","copy","clone","isPlainObject","random","isReady","msg","Array","isNumeric","ownLast","globalEval","execScript","string","makeArray","arr","second","invert","callbackInverse","callbackExpect","arg","proxy","Sizzle","seed","m","groups","old","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","contains","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","setAttribute","toSelector","rsibling","testContext","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","removeChild","addHandle","handler","attrHandle","siblingCheck","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","outerCache","newCache","dirruns","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","compilerCache","sortOrder","push_native","booleans","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","unloadHandler","els","node","hasCompare","top","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","innerText","lang","elemLang","hash","location","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","n","r","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","once","stopOnFalse","disable","remove","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","suffix","expanded","parts","unit","propHooks","eased","step","linear","p","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","andSelf","_jQuery","_$","$","Plugin","_relatedTarget","$this","Modal","DEFAULTS","$body","$element","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","VERSION","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","backdrop","keyboard","that","checkScrollbar","setScrollbar","escape","resize","transition","adjustDialog","enforceFocus","emulateTransitionEnd","hideModal","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","doAnimate","callbackRemove","modalIsOverflowing","clientHeight","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","right","abs","clientWidth","measureScrollbar","bodyPad","scrollDiv","modal","Constructor","$target","showEvent","_events","_conf","configure","conf","delimiter","maxListeners","wildcard","newListener","listenerTree","EventEmitter","searchListenerTree","tree","leaf","branch","xTree","xxTree","isolatedBranch","endReached","listeners","typeLength","currentType","nextType","_listeners","**","growListenerTree","listener","warned","defaultMaxListeners","console","trace","setMaxListeners","many","ttl","_origin","emit","_all","ns","onAny","addListener","leafs","iLeaf","offAny","removeListener","removeAllListeners","listenersAny","EventEmitter2","process","title","decodeURIComponent","isHostMethod","isHostObject","o","hasFlash","navigator","plugins","description","mimeTypes","enabledPlugin","flashVersion","flash","GetVariable","notSupportedException","major","minor","HAS_FLASH_THROTTLED_BUG","dom_onReady","domIsReady","domReadyQueue","whenReady","scope","getParentObject","ii","easyXDM","_easyXDM","IFRAME_PREFIX","getDomainName","reURI","getPort","getLocation","proto","domain","port","resolveUrl","reDoubleSlash","path","substring","pathname","lastIndexOf","protocol","host","reParent","appendQueryParameters","parameters","q","useHash","destination","noOverwrite","member","testForNamePropertyBug","channelId","HAS_NAME_PROPERTY_BUG","createFrame","config","frame","frameBorder","allowTransparency","onLoad","usePost","action","checkAcl","acl","re","substr","prepareTransportStack","stackEls","isHost","query","xdm_p","channel","secret","swf","product","userAgent","remoteHelper","xdm_c","xdm_s","xdm_e","useResize","useParent","usePolling","local","images","search","xdm_pa","xdm_po","HashTransport","ReliableBehavior","QueueBehavior","encode","maxLength","VerifyBehavior","initiate","PostMessageTransport","NameTransport","NixTransport","SameOriginTransport","FrameElementTransport","FlashTransport","lazy","chainStack","stackElements","stackEl","defaults","incoming","message","origin","up","outgoing","recipient","down","destroy","removeFromStack","un","emptyFn","sEvent","fpNotify","pair","evalJSON","getJSONObject","DomHelper","requiresJSON","_map","Fn","del","Socket","onMessage","onReady","postMessage","Rpc","jsonRpcConfig","RpcBehavior","pub","targetOrigin","onDOMReady","sendFn","addSwf","swfContainer","swfNoThrottle","flashVars","destroyChannel","swfdomain","createChannel","_getOrigin","uri","_window_onMessage","callerWindow","waitForReady","referrer","_sendMessage","sendMessage","_onReady","readyCount","_onMessage","remoteOrigin","_onLoad","remoteWindow","remoteUrl","_callerWindow","_msgNr","_handleHash","_lastMsg","_remoteOrigin","_pollHash","_listenerWindow","_attachListeners","_timer","pollInterval","tries","getRef","frames","ex","idOut","idIn","currentMessage","ack","waiting","destroying","doFragment","seq","fragments","startVerification","mySecret","theirSecret","_send","jsonrpc","serializer","_createMethod","definition","_callbacks","_callbackCounter","namedParams","_executeMethod","ex1","_absolutizeURI","removeDotSegments","output","_parseURI","authority","hostname","appConfigReplacer","Apps","overwrite","isFunc","S4","array","isLocalRequest","urlLower","isNativeDOMNode","testObject","bIsNode","Node","bIsElement","HTMLElement","log","_log","_logMethod","methods","replacer","space","_ct","_f2t","_handlerCollection","appManifestRequestFail","appCreateRoot","appRenderBefore","appDestroyBefore","appRenderAfter","appDestroyAfter","appRender","appDestroy","appScriptLoadFailed","_defaultMethods","appConfig","appHtml","$root","appInstance","app","appId","_createHandler","sNamespace","func_or_element","bDomNodeAppropriate","_validateToken","domNode","sToken","_removeHandler","eventKey","currentEventKey","eventCollection","newEvents","ec","currentEventHandler","newHandlerCollection","iCounter","hc","currentHandler","getToken","__f2GetToken","__trigger","passableArgs","hcl","$appRoot","arData","AppHandlers","APP_MANIFEST_REQUEST_FAIL","APP_CREATE_ROOT","APP_RENDER_BEFORE","APP_RENDER","APP_RENDER_AFTER","APP_DESTROY_BEFORE","APP_DESTROY","APP_DESTROY_AFTER","APP_SCRIPT_LOAD_FAILED","App","appContent","AppConfig","enableBatchRequests","instanceId","isSecure","containerLocale","localeSupport","manifestUrl","minGridSize","ui","views","AppManifest","apps","inlineScripts","AppContent","ContainerConfig","afterAppRender","beforeAppRender","debugMode","locale","scriptErrorTimeout","isSecureAppPage","secureAppPagePath","supportedViews","UI","Mask","backgroundColor","loadingIcon","useClasses","appConfigs","loadScripts","inlines","loadStyles","Css","_PREFIX","APP","APP_CONTAINER","APP_TITLE","APP_VIEW","APP_VIEW_TRIGGER","MASK","MASK_CONTAINER","Events","_APP_EVENT_PREFIX","_CONTAINER_EVENT_PREFIX","APP_SCRIPTS_LOADED","APP_SYMBOL_CHANGE","APP_WIDTH_CHANGE","CONTAINER_SYMBOL_CHANGE","CONTAINER_WIDTH_CHANGE","CONTAINER_LOCALE_CHANGE","RESOURCE_FAILED_TO_LOAD","JSONP_CALLBACK","AppStatus","ERROR","SUCCESS","Sockets","EVENT","LOAD","RPC","RPC_CALLBACK","UI_RPC","Views","DATA_ATTRIBUTE","ABOUT","HELP","HOME","REMOVE","SETTINGS","_socketEmit","broadcast","Constants","timesToListen","_secureAppPagePath","_apps","_rEvents","_rRpc","_rRpcCallback","_rSocketLoad","_rUiCall","_createAppToContainerSocket","isLoaded","messagePlayback","socket","appParts","registerApps","_createContainerToAppSocket","appManifest","iframeProps","scrolling","_createRpcCallback","callbackId","parseFunction","functionName","parseMessage","regEx","callbacks","c","_registerCallback","messageType","cid","isRemote","register","_containerConfig","UI_Class","_appConfig","_updateHeight","outerHeight","_modalHtml","showCancel","hideMask","Modals","_renderAlert","_renderConfirm","alert","isInit","confirm","okCallback","cancelCallback","setTitle","showMask","showLoader","updateHeight","_rValidEvents","_isValid","containerConfig","showLoading","mask","background-color","background-image","background-position","background-repeat","min-height","z-index","_config","_bUsesAppHandlers","_sAppHandlerToken","_loadingScripts","_afterAppRender","appContainer","_appRender","_outerHtml","_beforeAppRender","_appScriptLoadFailed","scriptInfo","_createAppConfig","_getAppConfigFromElement","hasAttribute","contextJson","warn","_hasNonTextChildNodes","hasNodes","hasChildNodes","_hydrateContainerConfig","_initAppEvents","view","removeApp","_initContainerEvents","resizeTimeout","resizeHandler","_isPlaceholderElement","_isInit","_createAppInstance","_loadApps","_loadSecureApp","_findExistingScripts","_findExistingStyles","_loadStyles","cb","existingStyles","stylesFragment","useCreateStyleSheet","createStyleSheet","resourceUrl","_loadScripts","existingScripts","scriptCount","scriptsLoaded","insertBeforeEl","readyStates","loaded","_error","evtData","_checkComplete","_emptyWaitlist","resourceKey","errorEvt","waitlist","getTime","onerror","_loadInlineScripts","loadInlineScripts","eval","elementInDocument","_loadHtml","_validateApp","_validateContainerConfig","getContainerState","getContainerLocale","loadPlaceholders","addAll","appManifests","appStack","batches","callbackStack","haveManifests","preloaded","req","requests","manifestRequest","completeFunc","errorFunc","item","successFunc","requestFunc","successCallback","errorCallback","completeCallback","jqxhr","removeAllApps","autoloadEls"],"mappings":";;CAAC,SAAUA,SAEV,IAAIA,QAAQC,IAAOD,QAAQE,gBAA3B,EAKA,WA2BC,QAASC,GAAaC,EAASJ,GAuC7B,QAASK,GAAIC,GACX,GAAID,EAAIC,KAAUC,EAEhB,MAAOF,GAAIC,EAEb,IAAIE,EACJ,IAAY,yBAARF,EAGFE,EAAwB,KAAV,IAAI,OACb,IAAY,QAARF,EAGTE,EAAcH,EAAI,mBAAqBA,EAAI,kBACtC,CACL,GAAII,GAAOC,EAAa,oDAExB,IAAY,kBAARJ,EAA0B,CAC5B,GAAIK,GAAYX,EAAQW,UAAWC,EAAyC,kBAAbD,IAA2BE,CAC1F,IAAID,EAAoB,EAErBH,EAAQ,WACP,MAAO,KACNK,OAASL,CACZ,KACEG,EAGmB,MAAjBD,EAAU,IAGkB,MAA5BA,EAAU,GAAII,KACa,MAA3BJ,EAAU,GAAIK,KAKdL,EAAUM,KAAcV,GAGxBI,EAAUJ,KAAWA,GAGrBI,MAAgBJ,GAMK,MAArBI,EAAUF,IACY,OAAtBE,GAAWF,KAGW,UAAtBE,GAAWJ,KAEQ,QAAnBI,EAAU,OAK4B,oBAAtCA,GAAWJ,EAAOU,EAAU,QAG5BN,GAAYO,GAAMT,GAAO,GAAM,EAAO,KAAM,oBAAwBC,GAEzC,MAA3BC,EAAU,KAAMF,IACc,iBAA9BE,GAAW,EAAG,GAAI,KAAM,IAGS,iCAAjCA,EAAU,GAAIQ,GAAK,WAEa,iCAAhCR,EAAU,GAAIQ,GAAK,UAGkB,iCAArCR,EAAU,GAAIQ,GAAK,gBAGQ,8BAA3BR,EAAU,GAAIQ,GAAK,KACrB,MAAOC,GACPR,GAAqB,GAGzBJ,EAAcI,EAGhB,GAAY,cAARN,EAAsB,CACxB,GAAIe,GAAQrB,EAAQqB,KACpB,IAAoB,kBAATA,GACT,IAIE,GAAmB,IAAfA,EAAM,OAAeA,GAAM,GAAQ,CAErCZ,EAAQY,EAAMX,EACd,IAAIY,GAAsC,GAArBb,EAAS,EAAEc,QAAiC,IAAlBd,EAAS,EAAE,EAC1D,IAAIa,EAAgB,CAClB,IAEEA,GAAkBD,EAAM,OACxB,MAAOD,IACT,GAAIE,EACF,IAIEA,EAAiC,IAAhBD,EAAM,MACvB,MAAOD,IAEX,GAAIE,EACF,IAIEA,EAAiC,IAAhBD,EAAM,MACvB,MAAOD,OAIf,MAAOA,GACPE,GAAiB,EAGrBd,EAAcc,GAGlB,MAAOjB,GAAIC,KAAUE,EApKvBJ,IAAYA,EAAUoB,EAAa,UACnCxB,IAAYA,EAAUwB,EAAa,SAGnC,IAAIT,GAASX,EAAgB,QAAKoB,EAAa,OAC3CR,EAASZ,EAAgB,QAAKoB,EAAa,OAC3CC,EAASrB,EAAgB,QAAKoB,EAAa,OAC3CL,EAAOf,EAAc,MAAKoB,EAAW,KACrCE,EAActB,EAAqB,aAAKoB,EAAkB,YAC1DG,EAAYvB,EAAmB,WAAKoB,EAAgB,UACpDI,EAAOxB,EAAc,MAAKoB,EAAW,KACrCK,EAAazB,EAAc,MAAKoB,EAAW,IAGtB,iBAAdK,IAA0BA,IACnC7B,EAAQW,UAAYkB,EAAWlB,UAC/BX,EAAQqB,MAAQQ,EAAWR,MAI7B,IAEIS,GAAYC,EAASxB,EAFrByB,EAAcP,EAAOQ,UACrBhB,EAAWe,EAAYE,SAIvBrB,EAAa,GAAIM,GAAK,iBAC1B,KAGEN,EAA4C,SAA/BA,EAAWsB,kBAA4D,IAA7BtB,EAAWuB,eAAmD,IAA5BvB,EAAWwB,cAItE,IAA5BxB,EAAWyB,eAAqD,IAA9BzB,EAAW0B,iBAAuD,GAA9B1B,EAAW2B,iBAA2D,KAAnC3B,EAAW4B,qBACtH,MAAOrB,IAqIT,IAAKf,EAAI,QAAS,CAEhB,GAAIqC,GAAgB,oBAChBC,EAAY,gBACZC,EAAc,kBACdC,EAAc,kBACdC,EAAa,iBACbC,EAAe,mBAGfC,EAAiB3C,EAAI,wBAGzB,KAAKQ,EACH,GAAIoC,GAAQrB,EAAKqB,MAGbC,GAAU,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAG5DC,EAAS,SAAUC,EAAMC,GAC3B,MAAOH,GAAOG,GAAS,KAAOD,EAAO,MAAQH,GAAOG,EAAO,MAAQC,IAAUA,EAAQ,KAAO,GAAKJ,GAAOG,EAAO,KAAOC,GAAS,KAAOJ,GAAOG,EAAO,KAAOC,GAAS,KAwHxK,KAlHMvB,EAAaE,EAAYsB,kBAC7BxB,EAAa,SAAUyB,GACrB,GAAkBC,GAAdC,IA4BJ,QA3BKA,EAAQC,UAAY,KAAMD,EAAQC,WAGrCxB,SAAY,GACXuB,GAASvB,UAAYjB,EAGtBa,EAAa,SAAUyB,GAIrB,GAAII,GAAWC,KAAKF,UAAWG,EAASN,KAAaK,KAAKF,UAAY,KAAME,KAG5E,OADAA,MAAKF,UAAYC,EACVE,IAITL,EAAcC,EAAQD,YAGtB1B,EAAa,SAAUyB,GACrB,GAAIO,IAAUF,KAAKJ,aAAeA,GAAavB,SAC/C,OAAOsB,KAAYK,SAAUL,IAAYO,IAAUF,KAAKL,KAAcO,EAAOP,MAGjFE,EAAU,KACH3B,EAAWiC,KAAKH,KAAML,KAMjCxB,EAAU,SAAUiC,EAAQC,GAC1B,GAAcC,GAAYT,EAASF,EAA/BY,EAAO,GAKVD,EAAa,WACZN,KAAKQ,QAAU,IACdnC,UAAUmC,QAAU,EAGvBX,EAAU,GAAIS,EACd,KAAKX,IAAYE,GAEX3B,EAAWiC,KAAKN,EAASF,IAC3BY,GAsDJ,OAnDAD,GAAaT,EAAU,KAGlBU,EAoBHpC,EAFiB,GAARoC,EAEC,SAAUH,EAAQC,GAE1B,GAAuEV,GAAnEE,KAAcY,EAAapD,EAAS8C,KAAKC,IAAWtB,CACxD,KAAKa,IAAYS,GAITK,GAA0B,aAAZd,GAA6BzB,EAAWiC,KAAKN,EAASF,MAAcE,EAAQF,GAAY,KAAMzB,EAAWiC,KAAKC,EAAQT,IACxIU,EAASV,IAML,SAAUS,EAAQC,GAC1B,GAAyDV,GAAUe,EAA/DD,EAAapD,EAAS8C,KAAKC,IAAWtB,CAC1C,KAAKa,IAAYS,GACTK,GAA0B,aAAZd,IAA4BzB,EAAWiC,KAAKC,EAAQT,KAAee,EAA6B,gBAAbf,IACrGU,EAASV,IAKTe,GAAiBxC,EAAWiC,KAAKC,EAAST,EAAW,iBACvDU,EAASV,KA1CbE,GAAW,UAAW,WAAY,iBAAkB,uBAAwB,gBAAiB,iBAAkB,eAG/G1B,EAAU,SAAUiC,EAAQC,GAC1B,GAAyDV,GAAUhC,EAA/D8C,EAAapD,EAAS8C,KAAKC,IAAWtB,EACtC6B,GAAeF,GAA2C,kBAAtBL,GAAOR,aAA6BgB,QAAmBR,GAAOV,iBAAmBU,EAAOV,gBAAkBxB,CAClJ,KAAKyB,IAAYS,GAGTK,GAA0B,aAAZd,IAA4BgB,EAAYR,KAAKC,EAAQT,IACvEU,EAASV,EAIb,KAAKhC,EAASkC,EAAQlC,OAAQgC,EAAWE,IAAUlC,GAASgD,EAAYR,KAAKC,EAAQT,IAAaU,EAASV,OAgCxGxB,EAAQiC,EAAQC,KASpB5D,EAAI,kBAAmB,CAE1B,GAAIoE,IACFC,GAAI,OACJC,GAAI,MACJC,EAAG,MACHC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,EAAG,OAKDC,EAAgB,SAChBC,EAAiB,SAAUC,EAAO1E,GAGpC,OAAQwE,GAAiBxE,GAAS,IAAI2E,OAAOD,IAO3CE,EAAgB,QAChBC,EAAQ,SAAU7E,GAGpB,IAFA,GAAIoD,GAAS,IAAK0B,EAAQ,EAAGhE,EAASd,EAAMc,OAAQiE,GAAgBxC,GAAkBzB,EAAS,GAC3FkE,EAAUD,IAAiBxC,EAAiBvC,EAAMiF,MAAM,IAAMjF,GACnDc,EAARgE,EAAgBA,IAAS,CAC9B,GAAII,GAAWlF,EAAMmF,WAAWL,EAGhC,QAAQI,GACN,IAAK,GAAG,IAAK,GAAG,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IACvD9B,GAAUY,EAAQkB,EAClB,MACF,SACE,GAAe,GAAXA,EAAe,CACjB9B,GAAUwB,EAAgBH,EAAe,EAAGS,EAASzD,SAAS,IAC9D,OAEF2B,GAAU2B,EAAeC,EAAQF,GAAS9E,EAAMoF,OAAON,IAG7D,MAAO1B,GAAS,KAKdiC,EAAY,SAAUvC,EAAUS,EAAQC,EAAU8B,EAAYC,EAAYC,EAAaC,GACzF,GAAIzF,GAAO0F,EAAW/C,EAAMC,EAAO+C,EAAMC,EAAMC,EAAOC,EAASC,EAASC,EAAcC,EAASC,EAASpB,EAAOhE,EAAQqF,EAAQ/C,CAC/H,KAEEpD,EAAQuD,EAAOT,GACf,MAAOnC,IACT,GAAoB,gBAATX,IAAqBA,EAE9B,GADA0F,EAAYlF,EAAS8C,KAAKtD,GACtB0F,GAAaxD,GAAcb,EAAWiC,KAAKtD,EAAO,UA4CpB,kBAAhBA,GAAMK,SAA0BqF,GAAavD,GAAeuD,GAAatD,GAAesD,GAAarD,GAAehB,EAAWiC,KAAKtD,EAAO,aAK3JA,EAAQA,EAAMK,OAAOyC,QAhDrB,IAAI9C,EAAQ,GAAK,GAAa,EAAI,EAAZA,EAAe,CAInC,GAAI0C,EAAQ,CAKV,IADAiD,EAAOnD,EAAMxC,EAAQ,OAChB2C,EAAOH,EAAMmD,EAAO,UAAY,KAAO,EAAGjD,EAAOC,EAAO,EAAG,IAAMgD,EAAMhD,KAC5E,IAAKC,EAAQJ,GAAOmD,EAAOjD,EAAOC,EAAM,IAAM,OAAQD,EAAOC,EAAMC,EAAQ,IAAM+C,EAAM/C,KACvF+C,EAAO,EAAIA,EAAOjD,EAAOC,EAAMC,GAK/BgD,GAAQ5F,EAAQ,MAAQ,OAAS,MAGjC6F,EAAQrD,EAAMoD,EAAO,MAAQ,GAC7BE,EAAUtD,EAAMoD,EAAO,KAAO,GAC9BG,EAAUvD,EAAMoD,EAAO,KAAO,GAC9BI,EAAeJ,EAAO,QAEtBjD,GAAO3C,EAAM0B,iBACbkB,EAAQ5C,EAAM2B,cACdgE,EAAO3F,EAAM4B,aACbiE,EAAQ7F,EAAM6B,cACdiE,EAAU9F,EAAM8B,gBAChBiE,EAAU/F,EAAM+B,gBAChBiE,EAAehG,EAAMgC,oBAGvBhC,IAAiB,GAAR2C,GAAaA,GAAQ,KAAc,EAAPA,EAAW,IAAM,KAAO8B,EAAe,EAAU,EAAP9B,GAAYA,EAAOA,GAAQ8B,EAAe,EAAG9B,IAC1H,IAAM8B,EAAe,EAAG7B,EAAQ,GAAK,IAAM6B,EAAe,EAAGkB,GAG7D,IAAMlB,EAAe,EAAGoB,GAAS,IAAMpB,EAAe,EAAGqB,GAAW,IAAMrB,EAAe,EAAGsB,GAE5F,IAAMtB,EAAe,EAAGuB,GAAgB,QAE1ChG,GAAQ,IAed,IALIwD,IAGFxD,EAAQwD,EAASF,KAAKC,EAAQT,EAAU9C,IAE5B,OAAVA,EACF,MAAO,MAGT,IADA0F,EAAYlF,EAAS8C,KAAKtD,GACtB0F,GAAapD,EAEf,MAAO,GAAKtC,CACP,IAAI0F,GAAavD,EAGtB,MAAOnC,GAAQ,GAAK,GAAa,EAAI,EAAZA,EAAgB,GAAKA,EAAQ,MACjD,IAAI0F,GAAatD,EAEtB,MAAOyC,GAAM,GAAK7E,EAGpB,IAAoB,gBAATA,GAAmB,CAG5B,IAAKc,EAAS2E,EAAM3E,OAAQA,KAC1B,GAAI2E,EAAM3E,KAAYd,EAEpB,KAAMkB,IASV,IALAuE,EAAMW,KAAKpG,GACXiG,KAEAE,EAASX,EACTA,GAAeD,EACXG,GAAarD,EAAY,CAE3B,IAAKyC,EAAQ,EAAGhE,EAASd,EAAMc,OAAgBA,EAARgE,EAAgBA,IACrDoB,EAAUb,EAAUP,EAAO9E,EAAOwD,EAAU8B,EAAYC,EAAYC,EAAaC,GACjFQ,EAAQG,KAAKF,IAAYpG,EAAQ,OAASoG,EAE5C9C,GAAS6C,EAAQnF,OAAUyE,EAAa,MAAQC,EAAcS,EAAQI,KAAK,MAAQb,GAAe,KAAOW,EAAS,IAAO,IAAMF,EAAQI,KAAK,KAAO,IAAQ,SAK3J/E,GAAQgE,GAActF,EAAO,SAAU8C,GACrC,GAAIoD,GAAUb,EAAUvC,EAAU9C,EAAOwD,EAAU8B,EAAYC,EAAYC,EAAaC,EACpFS,KAAYpG,GAOdmG,EAAQG,KAAKvB,EAAM/B,GAAY,KAAOyC,EAAa,IAAM,IAAMW,KAGnE9C,EAAS6C,EAAQnF,OAAUyE,EAAa,MAAQC,EAAcS,EAAQI,KAAK,MAAQb,GAAe,KAAOW,EAAS,IAAO,IAAMF,EAAQI,KAAK,KAAO,IAAQ,IAI7J,OADAZ,GAAMa,MACClD,GAKX7D,GAAQW,UAAY,SAAUqG,EAAQC,EAAQ9B,GAC5C,GAAIa,GAAY/B,EAAU8B,EAAYI,CACtC,IAAI3B,QAAmByC,KAAWA,EAChC,IAAKd,EAAYlF,EAAS8C,KAAKkD,KAAYvE,EACzCuB,EAAWgD,MACN,IAAId,GAAarD,EAAY,CAElCiD,IACA,KAAK,GAAuCtF,GAAnC8E,EAAQ,EAAGhE,EAAS0F,EAAO1F,OAAuBA,EAARgE,EAAgB9E,EAAQwG,EAAO1B,KAAYY,EAAYlF,EAAS8C,KAAKtD,IAAS0F,GAAatD,GAAesD,GAAavD,KAAiBmD,EAAWtF,GAAS,KAGnN,GAAI0E,EACF,IAAKgB,EAAYlF,EAAS8C,KAAKoB,KAAWvC,GAGxC,IAAKuC,GAASA,EAAQ,GAAK,EACzB,IAAKa,EAAa,GAAIb,EAAQ,KAAOA,EAAQ,IAAKa,EAAWzE,OAAS4D,EAAOa,GAAc,UAEpFG,IAAatD,IACtBmD,EAAab,EAAM5D,QAAU,GAAK4D,EAAQA,EAAMC,MAAM,EAAG,IAM7D,OAAOU,GAAU,IAAKrF,KAAYA,EAAM,IAAMuG,EAAQvG,GAAQwD,EAAU8B,EAAYC,EAAY,QAKpG,IAAK3F,EAAI,cAAe,CACtB,GAgBI6G,GAAOC,EAhBPC,EAAepG,EAAOoG,aAItBC,GACF3C,GAAI,KACJC,GAAI,IACJ2C,GAAI,IACJC,GAAI,KACJC,IAAK,IACLC,IAAK,KACLC,IAAK,KACLC,IAAK,MAOHC,EAAQ,WAEV,KADAV,GAAQC,EAAS,KACXzF,KAMJmG,EAAM,WAER,IADA,GAA6CpH,GAAOqH,EAAOC,EAAUC,EAAUrC,EAA3EqB,EAASG,EAAQ5F,EAASyF,EAAOzF,OACtBA,EAAR2F,GAEL,OADAvB,EAAWqB,EAAOpB,WAAWsB,IAE3B,IAAK,GAAG,IAAK,IAAI,IAAK,IAAI,IAAK,IAG7BA,GACA,MACF,KAAK,KAAK,IAAK,KAAK,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAKlD,MAFAzG,GAAQuC,EAAiBgE,EAAOnB,OAAOqB,GAASF,EAAOE,GACvDA,IACOzG,CACT,KAAK,IAKH,IAAKA,EAAQ,IAAKyG,IAAiB3F,EAAR2F,GAEzB,GADAvB,EAAWqB,EAAOpB,WAAWsB,GACd,GAAXvB,EAGFiC,QACK,IAAgB,IAAZjC,EAKT,OADAA,EAAWqB,EAAOpB,aAAasB,IAE7B,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAAK,KAAK,IAAK,KAAK,IAAK,KAErEzG,GAAS4G,EAAU1B,GACnBuB,GACA,MACF,KAAK,KAKH,IADAY,IAAUZ,EACLa,EAAWb,EAAQ,EAAWa,EAARb,EAAkBA,IAC3CvB,EAAWqB,EAAOpB,WAAWsB,GAGvBvB,GAAY,IAAkB,IAAZA,GAAkBA,GAAY,IAAkB,KAAZA,GAAmBA,GAAY,IAAkB,IAAZA,GAE/FiC,GAIJnH,IAAS2G,EAAa,KAAOJ,EAAO5B,MAAM0C,EAAOZ,GACjD,MACF,SAEEU,QAEC,CACL,GAAgB,IAAZjC,EAGF,KAKF,KAHAA,EAAWqB,EAAOpB,WAAWsB,GAC7BY,EAAQZ,EAEDvB,GAAY,IAAkB,IAAZA,GAA8B,IAAZA,GACzCA,EAAWqB,EAAOpB,aAAasB,EAGjCzG,IAASuG,EAAO5B,MAAM0C,EAAOZ,GAGjC,GAAgC,IAA5BF,EAAOpB,WAAWsB,GAGpB,MADAA,KACOzG,CAGTmH,IACF,SASE,GAPAE,EAAQZ,EAEQ,IAAZvB,IACFqC,GAAW,EACXrC,EAAWqB,EAAOpB,aAAasB,IAG7BvB,GAAY,IAAkB,IAAZA,EAAgB,CAQpC,IANgB,IAAZA,IAAoBA,EAAWqB,EAAOpB,WAAWsB,EAAQ,GAAKvB,GAAY,IAAkB,IAAZA,IAElFiC,IAEFI,GAAW,EAEIzG,EAAR2F,IAAoBvB,EAAWqB,EAAOpB,WAAWsB,GAASvB,GAAY,IAAkB,IAAZA,GAAiBuB,KAGpG,GAAgC,IAA5BF,EAAOpB,WAAWsB,GAAc,CAGlC,IAFAa,IAAab,EAEK3F,EAAXwG,IAAuBpC,EAAWqB,EAAOpB,WAAWmC,GAAYpC,GAAY,IAAkB,IAAZA,GAAiBoC,KACtGA,GAAYb,GAEdU,IAEFV,EAAQa,EAKV,GADApC,EAAWqB,EAAOpB,WAAWsB,GACb,KAAZvB,GAA+B,IAAZA,EAAgB,CAQrC,IAPAA,EAAWqB,EAAOpB,aAAasB,IAGf,IAAZvB,GAA8B,IAAZA,IACpBuB,IAGGa,EAAWb,EAAkB3F,EAAXwG,IAAuBpC,EAAWqB,EAAOpB,WAAWmC,GAAYpC,GAAY,IAAkB,IAAZA,GAAiBoC,KACtHA,GAAYb,GAEdU,IAEFV,EAAQa,EAGV,OAAQf,EAAO5B,MAAM0C,EAAOZ,GAO9B,GAJIc,GACFJ,IAGoC,QAAlCZ,EAAO5B,MAAM8B,EAAOA,EAAQ,GAE9B,MADAA,IAAS,GACF,CACF,IAAsC,SAAlCF,EAAO5B,MAAM8B,EAAOA,EAAQ,GAErC,MADAA,IAAS,GACF,CACF,IAAsC,QAAlCF,EAAO5B,MAAM8B,EAAOA,EAAQ,GAErC,MADAA,IAAS,EACF,IAGTU,KAKN,MAAO,KAILK,EAAM,SAAUxH,GAClB,GAAIiG,GAASwB,CAKb,IAJa,KAATzH,GAEFmH,IAEkB,gBAATnH,GAAmB,CAC5B,GAAqD,MAAhDuC,EAAiBvC,EAAMoF,OAAO,GAAKpF,EAAM,IAE5C,MAAOA,GAAM2E,MAAM,EAGrB,IAAa,KAAT3E,EAAc,CAGhB,IADAiG,KAEEjG,EAAQoH,IAEK,KAATpH,EAHEyH,IAAeA,GAAa,GAS9BA,IACW,KAATzH,GACFA,EAAQoH,IACK,KAATpH,GAEFmH,KAIFA,KAIS,KAATnH,GACFmH,IAEFlB,EAAQG,KAAKoB,EAAIxH,GAEnB,OAAOiG,GACF,GAAa,KAATjG,EAAc,CAGvB,IADAiG,KAEEjG,EAAQoH,IAEK,KAATpH,EAHEyH,IAAeA,GAAa,GAQ9BA,IACW,KAATzH,GACFA,EAAQoH,IACK,KAATpH,GAEFmH,KAIFA,MAMS,KAATnH,GAAgC,gBAATA,IAAsE,MAAhDuC,EAAiBvC,EAAMoF,OAAO,GAAKpF,EAAM,KAAuB,KAAToH,MACtGD,IAEFlB,EAAQjG,EAAM2E,MAAM,IAAM6C,EAAIJ,IAEhC,OAAOnB,GAGTkB,IAEF,MAAOnH,IAIL0H,EAAS,SAAUnB,EAAQzD,EAAUU,GACvC,GAAI0C,GAAUyB,EAAKpB,EAAQzD,EAAUU,EACjC0C,KAAYpG,QACPyG,GAAOzD,GAEdyD,EAAOzD,GAAYoD,GAOnByB,EAAO,SAAUpB,EAAQzD,EAAUU,GACrC,GAA8B1C,GAA1Bd,EAAQuG,EAAOzD,EACnB,IAAoB,gBAAT9C,IAAqBA,EAI9B,GAAIQ,EAAS8C,KAAKtD,IAAUqC,EAC1B,IAAKvB,EAASd,EAAMc,OAAQA,KAC1B4G,EAAO1H,EAAOc,EAAQ0C,OAGxBlC,GAAQtB,EAAO,SAAU8C,GACvB4E,EAAO1H,EAAO8C,EAAUU,IAI9B,OAAOA,GAASF,KAAKiD,EAAQzD,EAAU9C,GAIzCT,GAAQqB,MAAQ,SAAU2F,EAAQ/C,GAChC,GAAIJ,GAAQpD,CAUZ,OATAyG,GAAQ,EACRC,EAAS,GAAKH,EACdnD,EAASoE,EAAIJ,KAEA,KAATA,KACFD,IAGFV,EAAQC,EAAS,KACVlD,GAAYhD,EAAS8C,KAAKE,IAAavB,EAAgB0F,GAAM3H,KAAYA,EAAM,IAAMoD,EAAQpD,GAAQ,GAAIwD,GAAYJ,IAMlI,MADA7D,GAAsB,aAAIG,EACnBH,EA31BT,GAAIqI,GAA6B,kBAAXC,SAAyBA,OAAOC,IAGlD/D,GACFgE,YAAY,EACZxE,QAAU,GAIRyE,EAAcjE,QAAmBxE,WAAYA,UAAYA,QAAQ0I,UAAY1I,QAM7EwB,EAAOgD,QAAmBmE,UAAWA,QAAU/E,KAC/CgF,EAAaH,GAAejE,QAAmBqE,UAAWA,SAAWA,OAAOH,UAA6B,gBAAVI,SAAsBA,MA80BzH,KA50BIF,GAAeA,EAAmB,SAAMA,GAAcA,EAAmB,SAAMA,GAAcA,EAAiB,OAAMA,IACtHpH,EAAOoH,GA20BLH,IAAgBJ,EAElBlI,EAAaqB,EAAMiH,OACd,CAEL,GAAI5G,GAAaL,EAAKuH,KAClBC,EAAexH,EAAY,MAC3ByH,GAAa,EAEbC,EAAQ/I,EAAaqB,EAAOA,EAAY,OAG1C2H,WAAc,WAOZ,MANKF,KACHA,GAAa,EACbzH,EAAKuH,KAAOlH,EACZL,EAAY,MAAIwH,EAChBnH,EAAamH,EAAe,MAEvBE,IAIX1H,GAAKuH,MACH1H,MAAS6H,EAAM7H,MACfV,UAAauI,EAAMvI,WAKnB0H,GACFC,OAAO,WACL,MAAOY,OAGVnF,KAAKH;;;;;;;;;;;;;AAeP,SAAUkF,EAAQM,GAEK,gBAAXP,SAAiD,gBAAnBA,QAAO7I,QAQhD6I,OAAO7I,QAAU8I,EAAOO,SACvBD,EAASN,GAAQ,GACjB,SAAUQ,GACT,IAAMA,EAAED,SACP,KAAM,IAAIE,OAAO,2CAElB,OAAOH,GAASE,IAGlBF,EAASN,IAIS,mBAAXH,QAAyBA,OAAS/E,KAAM,SAAU+E,EAAQa,GAqhBnE,QAASC,GAAaC,GACrB,GAAInI,GAASmI,EAAInI,OAChBoI,EAAOC,GAAOD,KAAMD,EAErB,OAAc,aAATC,GAAuBC,GAAOC,SAAUH,IACrC,EAGc,IAAjBA,EAAIhB,UAAkBnH,GACnB,EAGQ,UAAToI,GAA+B,IAAXpI,GACR,gBAAXA,IAAuBA,EAAS,GAAOA,EAAS,IAAOmI,GAmiEhE,QAASI,GAAQC,EAAUC,EAAWC,GACrC,GAAKL,GAAOvF,WAAY2F,GACvB,MAAOJ,IAAOM,KAAMH,EAAU,SAAUI,EAAMC,GAE7C,QAASJ,EAAUjG,KAAMoG,EAAMC,EAAGD,KAAWF,GAK/C,IAAKD,EAAUtB,SACd,MAAOkB,IAAOM,KAAMH,EAAU,SAAUI,GACvC,MAASA,KAASH,IAAgBC,GAKpC,IAA0B,gBAAdD,GAAyB,CACpC,GAAKK,GAAUC,KAAMN,GACpB,MAAOJ,IAAO3C,OAAQ+C,EAAWD,EAAUE,EAG5CD,GAAYJ,GAAO3C,OAAQ+C,EAAWD,GAGvC,MAAOH,IAAOM,KAAMH,EAAU,SAAUI,GACvC,MAASP,IAAOW,QAASJ,EAAMH,IAAe,IAAQC,IAiTxD,QAASO,GAASC,EAAKC,GACtB,EACCD,GAAMA,EAAKC,SACFD,GAAwB,IAAjBA,EAAI/B,SAErB,OAAO+B,GA8ER,QAASE,GAAeC,GACvB,GAAI5G,GAAS6G,GAAcD,KAI3B,OAHAhB,IAAOkB,KAAMF,EAAQG,MAAOC,QAAmB,SAAUC,EAAGC,GAC3DlH,EAAQkH,IAAS,IAEXlH,EA2YR,QAASmH,KACH9B,GAAS+B,kBACb/B,GAASgC,oBAAqB,mBAAoBC,GAAW,GAC7D3C,EAAO0C,oBAAqB,OAAQC,GAAW,KAG/CjC,GAASkC,YAAa,qBAAsBD,GAC5C3C,EAAO4C,YAAa,SAAUD,IAOhC,QAASA,MAEHjC,GAAS+B,kBAAmC,SAAfI,MAAM7B,MAA2C,aAAxBN,GAASoC,cACnEN,IACAvB,GAAO8B,SA+JT,QAASC,GAAUxB,EAAMyB,EAAKC,GAG7B,GAAcC,SAATD,GAAwC,IAAlB1B,EAAKzB,SAAiB,CAEhD,GAAIpI,GAAO,QAAUsL,EAAIG,QAASC,GAAY,OAAQC,aAItD,IAFAJ,EAAO1B,EAAK+B,aAAc5L,GAEL,gBAATuL,GAAoB,CAC/B,IACCA,EAAgB,SAATA,GAAkB,EACf,UAATA,GAAmB,EACV,SAATA,EAAkB,MAEjBA,EAAO,KAAOA,GAAQA,EACvBM,GAAO7B,KAAMuB,GAASjC,GAAOwC,UAAWP,GACxCA,EACA,MAAOQ,IAGTzC,GAAOiC,KAAM1B,EAAMyB,EAAKC,OAGxBA,GAAOC,OAIT,MAAOD,GAIR,QAASS,GAAmB5C,GAC3B,GAAIpJ,EACJ,KAAMA,IAAQoJ,GAGb,IAAc,SAATpJ,IAAmBsJ,GAAO2C,cAAe7C,EAAIpJ,MAGpC,WAATA,EACJ,OAAO,CAIT,QAAO,EAGR,QAASkM,GAAcrC,EAAM7J,EAAMuL,EAAMY,GACxC,GAAM7C,GAAO8C,WAAYvC,GAAzB,CAIA,GAAIwC,GAAKC,EACRC,EAAcjD,GAAOkD,QAIrBC,EAAS5C,EAAKzB,SAIdsE,EAAQD,EAASnD,GAAOoD,MAAQ7C,EAIhC8C,EAAKF,EAAS5C,EAAM0C,GAAgB1C,EAAM0C,IAAiBA,CAI5D,IAAOI,GAAOD,EAAMC,KAASR,GAAQO,EAAMC,GAAIpB,OAAmBC,SAATD,GAAsC,gBAATvL,GAgEtF,MA5DM2M,KAIJA,EADIF,EACC5C,EAAM0C,GAAgBK,EAAWnG,OAAS6C,GAAOuD,OAEjDN,GAIDG,EAAOC,KAGZD,EAAOC,GAAOF,MAAgBjM,OAAQ8I,GAAOwD,QAKzB,gBAAT9M,IAAqC,kBAATA,MAClCmM,EACJO,EAAOC,GAAOrD,GAAOyD,OAAQL,EAAOC,GAAM3M,GAE1C0M,EAAOC,GAAKpB,KAAOjC,GAAOyD,OAAQL,EAAOC,GAAKpB,KAAMvL,IAItDsM,EAAYI,EAAOC,GAKbR,IACCG,EAAUf,OACfe,EAAUf,SAGXe,EAAYA,EAAUf,MAGTC,SAATD,IACJe,EAAWhD,GAAO0D,UAAWhN,IAAWuL,GAKpB,gBAATvL,IAGXqM,EAAMC,EAAWtM,GAGL,MAAPqM,IAGJA,EAAMC,EAAWhD,GAAO0D,UAAWhN,MAGpCqM,EAAMC,EAGAD,GAGR,QAASY,GAAoBpD,EAAM7J,EAAMmM,GACxC,GAAM7C,GAAO8C,WAAYvC,GAAzB,CAIA,GAAIyC,GAAWxC,EACd2C,EAAS5C,EAAKzB,SAGdsE,EAAQD,EAASnD,GAAOoD,MAAQ7C,EAChC8C,EAAKF,EAAS5C,EAAMP,GAAOkD,SAAYlD,GAAOkD,OAI/C,IAAME,EAAOC,GAAb,CAIA,GAAK3M,IAEJsM,EAAYH,EAAMO,EAAOC,GAAOD,EAAOC,GAAKpB,MAE3B,CAGVjC,GAAO4D,QAASlN,GAsBrBA,EAAOA,EAAKmN,OAAQ7D,GAAO8D,IAAKpN,EAAMsJ,GAAO0D,YAnBxChN,IAAQsM,GACZtM,GAASA,IAITA,EAAOsJ,GAAO0D,UAAWhN,GAExBA,EADIA,IAAQsM,IACHtM,GAEFA,EAAKoF,MAAM,MAarB0E,EAAI9J,EAAKiB,MACT,MAAQ6I,WACAwC,GAAWtM,EAAK8J,GAKxB,IAAKqC,GAAOH,EAAkBM,IAAchD,GAAO2C,cAAcK,GAChE,QAMGH,UACEO,GAAOC,GAAKpB,KAIbS,EAAmBU,EAAOC,QAM5BF,EACJnD,GAAO+D,WAAaxD,IAAQ,GAIjByD,GAAQC,eAAiBb,GAASA,EAAMrE,aAE5CqE,GAAOC,GAIdD,EAAOC,GAAO,QA+YhB,QAASa,KACR,OAAO,EAGR,QAASC,KACR,OAAO,EAGR,QAASC,KACR,IACC,MAAO3E,IAAS4E,cACf,MAAQC,KA8+BX,QAASC,GAAoB9E,GAC5B,GAAI+E,GAAOC,GAAU3I,MAAO,KAC3B4I,EAAWjF,EAASkF,wBAErB,IAAKD,EAASE,cACb,KAAQJ,EAAK7M,QACZ+M,EAASE,cACRJ,EAAKrH,MAIR,OAAOuH,GAyCR,QAASG,GAAQrO,EAASsO,GACzB,GAAIC,GAAOxE,EACVC,EAAI,EACJwE,QAAexO,GAAQyO,uBAAyBC,GAAe1O,EAAQyO,qBAAsBH,GAAO,WAC5FtO,GAAQ2O,mBAAqBD,GAAe1O,EAAQ2O,iBAAkBL,GAAO,KACpF5C,MAEF,KAAM8C,EACL,IAAMA,KAAYD,EAAQvO,EAAQ4O,YAAc5O,EAA8B,OAApB+J,EAAOwE,EAAMvE,IAAaA,KAC7EsE,GAAO9E,GAAOqF,SAAU9E,EAAMuE,GACnCE,EAAM/H,KAAMsD,GAEZP,GAAOsF,MAAON,EAAOH,EAAQtE,EAAMuE,GAKtC,OAAe5C,UAAR4C,GAAqBA,GAAO9E,GAAOqF,SAAU7O,EAASsO,GAC5D9E,GAAOsF,OAAS9O,GAAWwO,GAC3BA,EAIF,QAASO,GAAmBhF,GACtBiF,GAAe9E,KAAMH,EAAKR,QAC9BQ,EAAKkF,eAAiBlF,EAAKmF,SAM7B,QAASC,GAAoBpF,EAAMqF,GAClC,MAAO5F,IAAOqF,SAAU9E,EAAM,UAC7BP,GAAOqF,SAA+B,KAArBO,EAAQ9G,SAAkB8G,EAAUA,EAAQC,WAAY,MAEzEtF,EAAK0E,qBAAqB,SAAS,IAClC1E,EAAKuF,YAAavF,EAAKwF,cAAcnB,cAAc,UACpDrE,EAIF,QAASyF,GAAezF,GAEvB,MADAA,GAAKR,MAA6C,OAArCC,GAAOiG,KAAKC,KAAM3F,EAAM,SAAqB,IAAMA,EAAKR,KAC9DQ,EAER,QAAS4F,GAAe5F,GACvB,GAAIY,GAAQiF,GAAkBC,KAAM9F,EAAKR,KAMzC,OALKoB,GACJZ,EAAKR,KAAOoB,EAAM,GAElBZ,EAAK+F,gBAAgB,QAEf/F,EAIR,QAASgG,GAAexB,EAAOyB,GAG9B,IAFA,GAAIjG,GACHC,EAAI,EACwB,OAApBD,EAAOwE,EAAMvE,IAAaA,IAClCR,GAAOyG,MAAOlG,EAAM,cAAeiG,GAAexG,GAAOyG,MAAOD,EAAYhG,GAAI,eAIlF,QAASkG,GAAgBC,EAAKC,GAE7B,GAAuB,IAAlBA,EAAK9H,UAAmBkB,GAAO6G,QAASF,GAA7C,CAIA,GAAI5G,GAAMS,EAAGsG,EACZC,EAAU/G,GAAOyG,MAAOE,GACxBK,EAAUhH,GAAOyG,MAAOG,EAAMG,GAC9BE,EAASF,EAAQE,MAElB,IAAKA,EAAS,OACND,GAAQE,OACfF,EAAQC,SAER,KAAMlH,IAAQkH,GACb,IAAMzG,EAAI,EAAGsG,EAAIG,EAAQlH,GAAOpI,OAAYmP,EAAJtG,EAAOA,IAC9CR,GAAO4B,MAAMuF,IAAKP,EAAM7G,EAAMkH,EAAQlH,GAAQS,IAM5CwG,EAAQ/E,OACZ+E,EAAQ/E,KAAOjC,GAAOyD,UAAYuD,EAAQ/E,QAI5C,QAASmF,GAAoBT,EAAKC,GACjC,GAAIvB,GAAU5C,EAAGR,CAGjB,IAAuB,IAAlB2E,EAAK9H,SAAV,CAOA,GAHAuG,EAAWuB,EAAKvB,SAAShD,eAGnB2B,GAAQqD,cAAgBT,EAAM5G,GAAOkD,SAAY,CACtDjB,EAAOjC,GAAOyG,MAAOG,EAErB,KAAMnE,IAAKR,GAAKgF,OACfjH,GAAOsH,YAAaV,EAAMnE,EAAGR,EAAKiF,OAInCN,GAAKN,gBAAiBtG,GAAOkD,SAIZ,WAAbmC,GAAyBuB,EAAKW,OAASZ,EAAIY,MAC/CvB,EAAeY,GAAOW,KAAOZ,EAAIY,KACjCpB,EAAeS,IAIS,WAAbvB,GACNuB,EAAKY,aACTZ,EAAKa,UAAYd,EAAIc,WAOjBzD,GAAQ0D,YAAgBf,EAAIgB,YAAc3H,GAAO4H,KAAKhB,EAAKe,aAC/Df,EAAKe,UAAYhB,EAAIgB,YAGE,UAAbtC,GAAwBG,GAAe9E,KAAMiG,EAAI5G,OAK5D6G,EAAKnB,eAAiBmB,EAAKlB,QAAUiB,EAAIjB,QAIpCkB,EAAK/P,QAAU8P,EAAI9P,QACvB+P,EAAK/P,MAAQ8P,EAAI9P,QAKM,WAAbwO,EACXuB,EAAKiB,gBAAkBjB,EAAKkB,SAAWnB,EAAIkB,iBAInB,UAAbxC,GAAqC,aAAbA,KACnCuB,EAAKmB,aAAepB,EAAIoB,eAghB1B,QAASC,GAAetR,EAAMuR,GAC7B,GAAIC,GACH3H,EAAOP,GAAQiI,EAAIrD,cAAelO,IAASyR,SAAUF,EAAIG,MAGzDC,EAAUtJ,EAAOuJ,0BAA6BJ,EAAQnJ,EAAOuJ,wBAAyB/H,EAAM,KAI3F2H,EAAMG,QAAUrI,GAAOuI,IAAKhI,EAAM,GAAK,UAMzC,OAFAA,GAAKgB,SAEE8G,EAOR,QAASG,GAAgBnD,GACxB,GAAI4C,GAAMxI,GACT4I,EAAUI,GAAapD,EA0BxB,OAxBMgD,KACLA,EAAUL,EAAe3C,EAAU4C,GAGlB,SAAZI,GAAuBA,IAG3BK,IAAUA,IAAU1I,GAAQ,mDAAoDmI,SAAUF,EAAIU,iBAG9FV,GAAQS,GAAQ,GAAIE,eAAiBF,GAAQ,GAAIG,iBAAkBpJ,SAGnEwI,EAAIa,QACJb,EAAIc,QAEJV,EAAUL,EAAe3C,EAAU4C,GACnCS,GAAOnH,UAIRkH,GAAapD,GAAagD,GAGpBA,EA2KR,QAASW,GAAcC,EAAaC,GAEnC,OACC7K,IAAK,WACJ,GAAI8K,GAAYF,GAEhB,IAAkB,MAAbE,EAML,MAAKA,cAIGnP,MAAKqE,KAMLrE,KAAKqE,IAAM6K,GAAQE,MAAOpP,KAAMqP,aAgM3C,QAASC,GAAgBpB,EAAOxR,GAG/B,GAAKA,IAAQwR,GACZ,MAAOxR,EAQR,KAJA,GAAI6S,GAAU7S,EAAKuF,OAAO,GAAGuN,cAAgB9S,EAAK8E,MAAM,GACvDiO,EAAW/S,EACX8J,EAAIkJ,GAAY/R,OAET6I,KAEP,GADA9J,EAAOgT,GAAalJ,GAAM+I,EACrB7S,IAAQwR,GACZ,MAAOxR,EAIT,OAAO+S,GAGR,QAASE,GAAUxJ,EAAUyJ,GAM5B,IALA,GAAIvB,GAAS9H,EAAMsJ,EAClBC,KACAnO,EAAQ,EACRhE,EAASwI,EAASxI,OAEHA,EAARgE,EAAgBA,IACvB4E,EAAOJ,EAAUxE,GACX4E,EAAK2H,QAIX4B,EAAQnO,GAAUqE,GAAOyG,MAAOlG,EAAM,cACtC8H,EAAU9H,EAAK2H,MAAMG,QAChBuB,GAGEE,EAAQnO,IAAuB,SAAZ0M,IACxB9H,EAAK2H,MAAMG,QAAU,IAMM,KAAvB9H,EAAK2H,MAAMG,SAAkB0B,GAAUxJ,KAC3CuJ,EAAQnO,GAAUqE,GAAOyG,MAAOlG,EAAM,aAAciI,EAAejI,EAAK8E,cAGzEwE,EAASE,GAAUxJ,IAEd8H,GAAuB,SAAZA,IAAuBwB,IACtC7J,GAAOyG,MAAOlG,EAAM,aAAcsJ,EAASxB,EAAUrI,GAAOuI,IAAKhI,EAAM,aAO1E,KAAM5E,EAAQ,EAAWhE,EAARgE,EAAgBA,IAChC4E,EAAOJ,EAAUxE,GACX4E,EAAK2H,QAGL0B,GAA+B,SAAvBrJ,EAAK2H,MAAMG,SAA6C,KAAvB9H,EAAK2H,MAAMG,UACzD9H,EAAK2H,MAAMG,QAAUuB,EAAOE,EAAQnO,IAAW,GAAK,QAItD,OAAOwE,GAGR,QAAS6J,GAAmBzJ,EAAM1J,EAAOoT,GACxC,GAAIC,GAAUC,GAAU9D,KAAMxP,EAC9B,OAAOqT,GAENlS,KAAKoS,IAAK,EAAGF,EAAS,IAAQD,GAAY,KAAUC,EAAS,IAAO,MACpErT,EAGF,QAASwT,GAAsB9J,EAAM7J,EAAM4T,EAAOC,EAAaC,GAS9D,IARA,GAAIhK,GAAI8J,KAAYC,EAAc,SAAW,WAE5C,EAES,UAAT7T,EAAmB,EAAI,EAEvB+T,EAAM,EAEK,EAAJjK,EAAOA,GAAK,EAEJ,WAAV8J,IACJG,GAAOzK,GAAOuI,IAAKhI,EAAM+J,EAAQI,GAAWlK,IAAK,EAAMgK,IAGnDD,GAEW,YAAVD,IACJG,GAAOzK,GAAOuI,IAAKhI,EAAM,UAAYmK,GAAWlK,IAAK,EAAMgK,IAI7C,WAAVF,IACJG,GAAOzK,GAAOuI,IAAKhI,EAAM,SAAWmK,GAAWlK,GAAM,SAAS,EAAMgK,MAIrEC,GAAOzK,GAAOuI,IAAKhI,EAAM,UAAYmK,GAAWlK,IAAK,EAAMgK,GAG5C,YAAVF,IACJG,GAAOzK,GAAOuI,IAAKhI,EAAM,SAAWmK,GAAWlK,GAAM,SAAS,EAAMgK,IAKvE,OAAOC,GAGR,QAASE,GAAkBpK,EAAM7J,EAAM4T,GAGtC,GAAIM,IAAmB,EACtBH,EAAe,UAAT/T,EAAmB6J,EAAKsK,YAActK,EAAKuK,aACjDN,EAASO,GAAWxK,GACpBgK,EAAcvG,GAAQgH,WAAgE,eAAnDhL,GAAOuI,IAAKhI,EAAM,aAAa,EAAOiK,EAK1E,IAAY,GAAPC,GAAmB,MAAPA,EAAc,CAQ9B,GANAA,EAAMQ,GAAQ1K,EAAM7J,EAAM8T,IACf,EAANC,GAAkB,MAAPA,KACfA,EAAMlK,EAAK2H,MAAOxR,IAIdwU,GAAUxK,KAAK+J,GACnB,MAAOA,EAKRG,GAAmBL,IAAiBvG,GAAQmH,qBAAuBV,IAAQlK,EAAK2H,MAAOxR,IAGvF+T,EAAMW,WAAYX,IAAS,EAI5B,MAASA,GACRJ,EACC9J,EACA7J,EACA4T,IAAWC,EAAc,SAAW,WACpCK,EACAJ,GAEE,KA2SL,QAASa,GAAO9K,EAAMS,EAASsK,EAAMC,EAAKC,GACzC,MAAO,IAAIH,GAAMhT,UAAUoT,KAAMlL,EAAMS,EAASsK,EAAMC,EAAKC,GAwK5D,QAASE,KAIR,MAHAC,YAAW,WACVC,GAAQ1J,SAEA0J,GAAQ5L,GAAO6L,MAIzB,QAASC,GAAO/L,EAAMgM,GACrB,GAAIC,GACHC,GAAUC,OAAQnM,GAClBS,EAAI,CAKL,KADAuL,EAAeA,EAAe,EAAI,EACtB,EAAJvL,EAAQA,GAAK,EAAIuL,EACxBC,EAAQtB,GAAWlK,GACnByL,EAAO,SAAWD,GAAUC,EAAO,UAAYD,GAAUjM,CAO1D,OAJKgM,KACJE,EAAME,QAAUF,EAAM1Q,MAAQwE,GAGxBkM,EAGR,QAASG,GAAavV,EAAOyU,EAAMe,GAKlC,IAJA,GAAIC,GACHC,GAAeC,GAAUlB,QAAezH,OAAQ2I,GAAU,MAC1D7Q,EAAQ,EACRhE,EAAS4U,EAAW5U,OACLA,EAARgE,EAAgBA,IACvB,GAAM2Q,EAAQC,EAAY5Q,GAAQxB,KAAMkS,EAAWf,EAAMzU,GAGxD,MAAOyV,GAKV,QAASG,GAAkBlM,EAAMmM,EAAOC,GAEvC,GAAIrB,GAAMzU,EAAO+V,EAAQN,EAAOO,EAAOC,EAASzE,EAAS0E,EACxDC,EAAOhT,KACPiT,KACA/E,EAAQ3H,EAAK2H,MACb2B,EAAStJ,EAAKzB,UAAYiL,GAAUxJ,GACpC2M,EAAWlN,GAAOyG,MAAOlG,EAAM,SAG1BoM,GAAKQ,QACVN,EAAQ7M,GAAOoN,YAAa7M,EAAM,MACX,MAAlBsM,EAAMQ,WACVR,EAAMQ,SAAW,EACjBP,EAAUD,EAAMS,MAAMC,KACtBV,EAAMS,MAAMC,KAAO,WACZV,EAAMQ,UACXP,MAIHD,EAAMQ,WAENL,EAAKQ,OAAO,WAGXR,EAAKQ,OAAO,WACXX,EAAMQ,WACArN,GAAOmN,MAAO5M,EAAM,MAAO5I,QAChCkV,EAAMS,MAAMC,YAOO,IAAlBhN,EAAKzB,WAAoB,UAAY4N,IAAS,SAAWA,MAK7DC,EAAKc,UAAavF,EAAMuF,SAAUvF,EAAMwF,UAAWxF,EAAMyF,WAIzDtF,EAAUrI,GAAOuI,IAAKhI,EAAM,WAG5BwM,EAA2B,SAAZ1E,EACdrI,GAAOyG,MAAOlG,EAAM,eAAkBiI,EAAgBjI,EAAK8E,UAAagD,EAEnD,WAAjB0E,GAA6D,SAAhC/M,GAAOuI,IAAKhI,EAAM,WAI7CyD,GAAQ4J,wBAA8D,WAApCpF,EAAgBjI,EAAK8E,UAG5D6C,EAAM2F,KAAO,EAFb3F,EAAMG,QAAU,iBAOdsE,EAAKc,WACTvF,EAAMuF,SAAW,SACXzJ,GAAQ8J,oBACbd,EAAKQ,OAAO,WACXtF,EAAMuF,SAAWd,EAAKc,SAAU,GAChCvF,EAAMwF,UAAYf,EAAKc,SAAU,GACjCvF,EAAMyF,UAAYhB,EAAKc,SAAU,KAMpC,KAAMnC,IAAQoB,GAEb,GADA7V,EAAQ6V,EAAOpB,GACVyC,GAAS1H,KAAMxP,GAAU,CAG7B,SAFO6V,GAAOpB,GACdsB,EAASA,GAAoB,WAAV/V,EACdA,KAAYgT,EAAS,OAAS,QAAW,CAG7C,GAAe,SAAVhT,IAAoBqW,GAAiChL,SAArBgL,EAAU5B,GAG9C,QAFAzB,IAAS,EAKXoD,EAAM3B,GAAS4B,GAAYA,EAAU5B,IAAUtL,GAAOkI,MAAO3H,EAAM+K,OAInEjD,GAAUnG,MAIZ,IAAMlC,GAAO2C,cAAesK,GAwCqD,YAAxD,SAAZ5E,EAAqBG,EAAgBjI,EAAK8E,UAAagD,KACnEH,EAAMG,QAAUA,OAzCoB,CAC/B6E,EACC,UAAYA,KAChBrD,EAASqD,EAASrD,QAGnBqD,EAAWlN,GAAOyG,MAAOlG,EAAM,aAI3BqM,IACJM,EAASrD,QAAUA,GAEfA,EACJ7J,GAAQO,GAAOqJ,OAEfoD,EAAKgB,KAAK,WACThO,GAAQO,GAAO0N,SAGjBjB,EAAKgB,KAAK,WACT,GAAI1C,EACJtL,IAAOkO,YAAa3N,EAAM,SAC1B,KAAM+K,IAAQ2B,GACbjN,GAAOkI,MAAO3H,EAAM+K,EAAM2B,EAAM3B,KAGlC,KAAMA,IAAQ2B,GACbX,EAAQF,EAAavC,EAASqD,EAAU5B,GAAS,EAAGA,EAAM0B,GAElD1B,IAAQ4B,KACfA,EAAU5B,GAASgB,EAAM6B,MACpBtE,IACJyC,EAAMf,IAAMe,EAAM6B,MAClB7B,EAAM6B,MAAiB,UAAT7C,GAA6B,WAATA,EAAoB,EAAI,KAW/D,QAAS8C,GAAY1B,EAAO2B,GAC3B,GAAI1S,GAAOjF,EAAM8U,EAAQ3U,EAAOgW,CAGhC,KAAMlR,IAAS+Q,GAed,GAdAhW,EAAOsJ,GAAO0D,UAAW/H,GACzB6P,EAAS6C,EAAe3X,GACxBG,EAAQ6V,EAAO/Q,GACVqE,GAAO4D,QAAS/M,KACpB2U,EAAS3U,EAAO,GAChBA,EAAQ6V,EAAO/Q,GAAU9E,EAAO,IAG5B8E,IAAUjF,IACdgW,EAAOhW,GAASG,QACT6V,GAAO/Q,IAGfkR,EAAQ7M,GAAOsO,SAAU5X,GACpBmW,GAAS,UAAYA,GAAQ,CACjChW,EAAQgW,EAAM0B,OAAQ1X,SACf6V,GAAOhW,EAId,KAAMiF,IAAS9E,GACN8E,IAAS+Q,KAChBA,EAAO/Q,GAAU9E,EAAO8E,GACxB0S,EAAe1S,GAAU6P,OAI3B6C,GAAe3X,GAAS8U,EAK3B,QAASgD,GAAWjO,EAAMpE,EAAY6E,GACrC,GAAI/G,GACHwU,EACA9S,EAAQ,EACRhE,EAAS+W,GAAoB/W,OAC7BgX,EAAW3O,GAAO4O,WAAWpB,OAAQ,iBAE7BqB,GAAKtO,OAEbsO,EAAO,WACN,GAAKJ,EACJ,OAAO,CAUR,KARA,GAAIK,GAAclD,IAASF,IAC1BqD,EAAY/W,KAAKoS,IAAK,EAAGiC,EAAU2C,UAAY3C,EAAU4C,SAAWH,GAEpEI,EAAOH,EAAY1C,EAAU4C,UAAY,EACzCE,EAAU,EAAID,EACdvT,EAAQ,EACRhE,EAAS0U,EAAU+C,OAAOzX,OAEXA,EAARgE,EAAiBA,IACxB0Q,EAAU+C,OAAQzT,GAAQ0T,IAAKF,EAKhC,OAFAR,GAASW,WAAY/O,GAAQ8L,EAAW8C,EAASJ,IAElC,EAAVI,GAAexX,EACZoX,GAEPJ,EAASY,YAAahP,GAAQ8L,KACvB,IAGTA,EAAYsC,EAASa,SACpBjP,KAAMA,EACNmM,MAAO1M,GAAOyD,UAAYtH,GAC1BwQ,KAAM3M,GAAOyD,QAAQ,GAAQ4K,kBAAqBrN,GAClDyO,mBAAoBtT,EACpBuT,gBAAiB1O,EACjBgO,UAAWpD,IAASF,IACpBuD,SAAUjO,EAAQiO,SAClBG,UACAhD,YAAa,SAAUd,EAAMC,GAC5B,GAAIe,GAAQtM,GAAOqL,MAAO9K,EAAM8L,EAAUM,KAAMrB,EAAMC,EACpDc,EAAUM,KAAK0B,cAAe/C,IAAUe,EAAUM,KAAKnB,OAEzD,OADAa,GAAU+C,OAAOnS,KAAMqP,GAChBA,GAERqD,KAAM,SAAUC,GACf,GAAIjU,GAAQ,EAGXhE,EAASiY,EAAUvD,EAAU+C,OAAOzX,OAAS,CAC9C,IAAK8W,EACJ,MAAOzU,KAGR,KADAyU,GAAU,EACM9W,EAARgE,EAAiBA,IACxB0Q,EAAU+C,OAAQzT,GAAQ0T,IAAK,EAUhC,OALKO,GACJjB,EAASY,YAAahP,GAAQ8L,EAAWuD,IAEzCjB,EAASkB,WAAYtP,GAAQ8L,EAAWuD,IAElC5V,QAGT0S,EAAQL,EAAUK,KAInB,KAFA0B,EAAY1B,EAAOL,EAAUM,KAAK0B,eAElB1W,EAARgE,EAAiBA,IAExB,GADA1B,EAASyU,GAAqB/S,GAAQxB,KAAMkS,EAAW9L,EAAMmM,EAAOL,EAAUM,MAE7E,MAAO1S,EAmBT,OAfA+F,IAAO8D,IAAK4I,EAAON,EAAaC,GAE3BrM,GAAOvF,WAAY4R,EAAUM,KAAKwB,QACtC9B,EAAUM,KAAKwB,MAAMhU,KAAMoG,EAAM8L,GAGlCrM,GAAO8P,GAAGC,MACT/P,GAAOyD,OAAQoL,GACdtO,KAAMA,EACNyM,KAAMX,EACNc,MAAOd,EAAUM,KAAKQ,SAKjBd,EAAU2D,SAAU3D,EAAUM,KAAKqD,UACxChC,KAAM3B,EAAUM,KAAKqB,KAAM3B,EAAUM,KAAKsD,UAC1CC,KAAM7D,EAAUM,KAAKuD,MACrB1C,OAAQnB,EAAUM,KAAKa,QA6rC1B,QAAS2C,GAA6BC,GAGrC,MAAO,UAAUC,EAAoBC,GAED,gBAAvBD,KACXC,EAAOD,EACPA,EAAqB,IAGtB,IAAIE,GACH/P,EAAI,EACJgQ,EAAYH,EAAmBhO,cAAclB,MAAOC,OAErD,IAAKpB,GAAOvF,WAAY6V,GAEvB,KAASC,EAAWC,EAAUhQ,MAEC,MAAzB+P,EAAStU,OAAQ,IACrBsU,EAAWA,EAAS/U,MAAO,IAAO,KACjC4U,EAAWG,GAAaH,EAAWG,QAAkBE,QAASH,KAI9DF,EAAWG,GAAaH,EAAWG,QAAkBtT,KAAMqT,IAQjE,QAASI,GAA+BN,EAAWpP,EAAS0O,EAAiBiB,GAK5E,QAASC,GAASL,GACjB,GAAIzI,EAYJ,OAXA+I,GAAWN,IAAa,EACxBvQ,GAAOkB,KAAMkP,EAAWG,OAAkB,SAAUlP,EAAGyP,GACtD,GAAIC,GAAsBD,EAAoB9P,EAAS0O,EAAiBiB,EACxE,OAAoC,gBAAxBI,IAAqCC,GAAqBH,EAAWE,GAIrEC,IACDlJ,EAAWiJ,GADf,QAHN/P,EAAQwP,UAAUC,QAASM,GAC3BH,EAASG,IACF,KAKFjJ,EAhBR,GAAI+I,MACHG,EAAqBZ,IAAca,EAkBpC,OAAOL,GAAS5P,EAAQwP,UAAW,MAAUK,EAAW,MAASD,EAAS,KAM3E,QAASM,GAAYC,EAAQxK,GAC5B,GAAIyK,GAAMpP,EACTqP,EAAcrR,GAAOsR,aAAaD,eAEnC,KAAMrP,IAAO2E,GACQzE,SAAfyE,EAAK3E,MACPqP,EAAarP,GAAQmP,EAAWC,IAASA,OAAgBpP,GAAQ2E,EAAK3E,GAO1E,OAJKoP,IACJpR,GAAOyD,QAAQ,EAAM0N,EAAQC,GAGvBD,EAOR,QAASI,GAAqBC,EAAGb,EAAOc,GAMvC,IALA,GAAIC,GAAeC,EAAIC,EAAe7R,EACrC8R,EAAWL,EAAEK,SACbrB,EAAYgB,EAAEhB,UAGY,MAAnBA,EAAW,IAClBA,EAAUsB,QACE5P,SAAPyP,IACJA,EAAKH,EAAEO,UAAYpB,EAAMqB,kBAAkB,gBAK7C,IAAKL,EACJ,IAAM5R,IAAQ8R,GACb,GAAKA,EAAU9R,IAAU8R,EAAU9R,GAAOW,KAAMiR,GAAO,CACtDnB,EAAUC,QAAS1Q,EACnB,OAMH,GAAKyQ,EAAW,IAAOiB,GACtBG,EAAgBpB,EAAW,OACrB,CAEN,IAAMzQ,IAAQ0R,GAAY,CACzB,IAAMjB,EAAW,IAAOgB,EAAES,WAAYlS,EAAO,IAAMyQ,EAAU,IAAO,CACnEoB,EAAgB7R,CAChB,OAEK2R,IACLA,EAAgB3R,GAIlB6R,EAAgBA,GAAiBF,EAMlC,MAAKE,IACCA,IAAkBpB,EAAW,IACjCA,EAAUC,QAASmB,GAEbH,EAAWG,IAJnB,OAWD,QAASM,GAAaV,EAAGW,EAAUxB,EAAOyB,GACzC,GAAIC,GAAOC,EAASC,EAAMC,EAAKC,EAC9BR,KAEAzB,EAAYgB,EAAEhB,UAAUhV,OAGzB,IAAKgV,EAAW,GACf,IAAM+B,IAAQf,GAAES,WACfA,EAAYM,EAAKlQ,eAAkBmP,EAAES,WAAYM,EAOnD,KAHAD,EAAU9B,EAAUsB,QAGZQ,GAcP,GAZKd,EAAEkB,eAAgBJ,KACtB3B,EAAOa,EAAEkB,eAAgBJ,IAAcH,IAIlCM,GAAQL,GAAaZ,EAAEmB,aAC5BR,EAAWX,EAAEmB,WAAYR,EAAUX,EAAEjB,WAGtCkC,EAAOH,EACPA,EAAU9B,EAAUsB,QAKnB,GAAiB,MAAZQ,EAEJA,EAAUG,MAGJ,IAAc,MAATA,GAAgBA,IAASH,EAAU,CAM9C,GAHAC,EAAON,EAAYQ,EAAO,IAAMH,IAAaL,EAAY,KAAOK,IAG1DC,EACL,IAAMF,IAASJ,GAId,GADAO,EAAMH,EAAMvW,MAAO,KACd0W,EAAK,KAAQF,IAGjBC,EAAON,EAAYQ,EAAO,IAAMD,EAAK,KACpCP,EAAY,KAAOO,EAAK,KACb,CAEND,KAAS,EACbA,EAAON,EAAYI,GAGRJ,EAAYI,MAAY,IACnCC,EAAUE,EAAK,GACfhC,EAAUC,QAAS+B,EAAK,IAEzB,OAOJ,GAAKD,KAAS,EAGb,GAAKA,GAAQf,EAAG,UACfW,EAAWI,EAAMJ,OAEjB,KACCA,EAAWI,EAAMJ,GAChB,MAAQ1P,GACT,OAASmQ,MAAO,cAAeC,MAAON,EAAO9P,EAAI,sBAAwBgQ,EAAO,OAASH,IAQ/F,OAASM,MAAO,UAAW3Q,KAAMkQ,GAymBlC,QAASW,GAAa9V,EAAQ8C,EAAKiT,EAAa5L,GAC/C,GAAIzQ,EAEJ,IAAKsJ,GAAO4D,QAAS9D,GAEpBE,GAAOkB,KAAMpB,EAAK,SAAUU,EAAGwS,GACzBD,GAAeE,GAASvS,KAAM1D,GAElCmK,EAAKnK,EAAQgW,GAIbF,EAAa9V,EAAS,KAAqB,gBAANgW,GAAiBxS,EAAI,IAAO,IAAKwS,EAAGD,EAAa5L,SAIlF,IAAM4L,GAAsC,WAAvB/S,GAAOD,KAAMD,GAQxCqH,EAAKnK,EAAQ8C,OANb,KAAMpJ,IAAQoJ,GACbgT,EAAa9V,EAAS,IAAMtG,EAAO,IAAKoJ,EAAKpJ,GAAQqc,EAAa5L,GA8PrE,QAAS+L,KACR,IACC,MAAO,IAAInU,GAAOoU,eACjB,MAAO1Q,KAGV,QAAS2Q,KACR,IACC,MAAO,IAAIrU,GAAOsU,cAAe,qBAChC,MAAO5Q,KA8SV,QAAS6Q,GAAW/S,GACnB,MAAOP,IAAOC,SAAUM,GACvBA,EACkB,IAAlBA,EAAKzB,SACJyB,EAAKgT,aAAehT,EAAKiT,cACzB,EA3xTH,GAAIlQ,MAEA9H,EAAQ8H,EAAW9H,MAEnBqI,EAASP,EAAWO,OAEpB5G,EAAOqG,EAAWrG,KAElBwW,EAAUnQ,EAAWmQ,QAErBC,KAEApb,GAAWob,EAAWpb,SAEtBqb,GAASD,EAAWha,eAEpBsK,MAKH4P,GAAU,SAGV5T,GAAS,SAAU6T,EAAUrd,GAG5B,MAAO,IAAIwJ,IAAO8T,GAAGrI,KAAMoI,EAAUrd,IAKtCud,GAAQ,qCAGRC,GAAY,QACZC,GAAa,eAGbC,GAAa,SAAUC,EAAKC,GAC3B,MAAOA,GAAO5K,cAGhBxJ,IAAO8T,GAAK9T,GAAO3H,WAElBgc,OAAQT,GAERha,YAAaoG,GAGb6T,SAAU,GAGVlc,OAAQ,EAER2c,QAAS,WACR,MAAO9Y,GAAMrB,KAAMH,OAKpBqE,IAAK,SAAUkW,GACd,MAAc,OAAPA,EAGE,EAANA,EAAUva,KAAMua,EAAMva,KAAKrC,QAAWqC,KAAMua,GAG9C/Y,EAAMrB,KAAMH,OAKdwa,UAAW,SAAUzP,GAGpB,GAAIhC,GAAM/C,GAAOsF,MAAOtL,KAAKJ,cAAemL,EAO5C,OAJAhC,GAAI0R,WAAaza,KACjB+I,EAAIvM,QAAUwD,KAAKxD,QAGZuM,GAMR7B,KAAM,SAAU7G,EAAUqa,GACzB,MAAO1U,IAAOkB,KAAMlH,KAAMK,EAAUqa,IAGrC5Q,IAAK,SAAUzJ,GACd,MAAOL,MAAKwa,UAAWxU,GAAO8D,IAAI9J,KAAM,SAAUuG,EAAMC,GACvD,MAAOnG,GAASF,KAAMoG,EAAMC,EAAGD,OAIjC/E,MAAO,WACN,MAAOxB,MAAKwa,UAAWhZ,EAAM4N,MAAOpP,KAAMqP,aAG3CsL,MAAO,WACN,MAAO3a,MAAK4a,GAAI,IAGjBC,KAAM,WACL,MAAO7a,MAAK4a,GAAI,KAGjBA,GAAI,SAAUpU,GACb,GAAIsU,GAAM9a,KAAKrC,OACdod,GAAKvU,GAAU,EAAJA,EAAQsU,EAAM,EAC1B,OAAO9a,MAAKwa,UAAWO,GAAK,GAASD,EAAJC,GAAY/a,KAAK+a,SAGnDxJ,IAAK,WACJ,MAAOvR,MAAKya,YAAcza,KAAKJ,YAAY,OAK5CqD,KAAMA,EACN+X,KAAM1R,EAAW0R,KACjBC,OAAQ3R,EAAW2R,QAGpBjV,GAAOyD,OAASzD,GAAO8T,GAAGrQ,OAAS,WAClC,GAAIkD,GAAKuO,EAAaC,EAAMze,EAAMsK,EAASoU,EAC1CjE,EAAS9H,UAAU,OACnB7I,EAAI,EACJ7I,EAAS0R,UAAU1R,OACnByZ,GAAO,CAsBR,KAnBuB,iBAAXD,KACXC,EAAOD,EAGPA,EAAS9H,UAAW7I,OACpBA,KAIsB,gBAAX2Q,IAAwBnR,GAAOvF,WAAW0W,KACrDA,MAII3Q,IAAM7I,IACVwZ,EAASnX,KACTwG,KAGW7I,EAAJ6I,EAAYA,IAEnB,GAAmC,OAA7BQ,EAAUqI,UAAW7I,IAE1B,IAAM9J,IAAQsK,GACb2F,EAAMwK,EAAQza,GACdye,EAAOnU,EAAStK,GAGXya,IAAWgE,IAKX/D,GAAQ+D,IAAUnV,GAAOqV,cAAcF,KAAUD,EAAclV,GAAO4D,QAAQuR,MAC7ED,GACJA,GAAc,EACdE,EAAQzO,GAAO3G,GAAO4D,QAAQ+C,GAAOA,MAGrCyO,EAAQzO,GAAO3G,GAAOqV,cAAc1O,GAAOA,KAI5CwK,EAAQza,GAASsJ,GAAOyD,OAAQ2N,EAAMgE,EAAOD,IAGzBjT,SAATiT,IACXhE,EAAQza,GAASye,GAOrB,OAAOhE,IAGRnR,GAAOyD,QAENP,QAAS,UAAa0Q,GAAU5b,KAAKsd,UAAWnT,QAAS,MAAO,IAGhEoT,SAAS,EAET1C,MAAO,SAAU2C,GAChB,KAAM,IAAI7V,OAAO6V,IAGlBhS,KAAM,aAKN/I,WAAY,SAAUqF,GACrB,MAA4B,aAArBE,GAAOD,KAAKD,IAGpB8D,QAAS6R,MAAM7R,SAAW,SAAU9D,GACnC,MAA4B,UAArBE,GAAOD,KAAKD,IAGpBG,SAAU,SAAUH,GAEnB,MAAc,OAAPA,GAAeA,GAAOA,EAAIf,QAGlC2W,UAAW,SAAU5V,GAKpB,OAAQE,GAAO4D,QAAS9D,IAAUA,EAAMsL,WAAYtL,GAAQ,GAAM,GAGnE6C,cAAe,SAAU7C,GACxB,GAAIpJ,EACJ,KAAMA,IAAQoJ,GACb,OAAO,CAER,QAAO,GAGRuV,cAAe,SAAUvV,GACxB,GAAIkC,EAKJ,KAAMlC,GAA4B,WAArBE,GAAOD,KAAKD,IAAqBA,EAAIhB,UAAYkB,GAAOC,SAAUH,GAC9E,OAAO,CAGR,KAEC,GAAKA,EAAIlG,cACP+Z,GAAOxZ,KAAK2F,EAAK,iBACjB6T,GAAOxZ,KAAK2F,EAAIlG,YAAYvB,UAAW,iBACxC,OAAO,EAEP,MAAQoK,GAET,OAAO,EAKR,GAAKuB,GAAQ2R,QACZ,IAAM3T,IAAOlC,GACZ,MAAO6T,IAAOxZ,KAAM2F,EAAKkC,EAM3B,KAAMA,IAAOlC,IAEb,MAAeoC,UAARF,GAAqB2R,GAAOxZ,KAAM2F,EAAKkC,IAG/CjC,KAAM,SAAUD,GACf,MAAY,OAAPA,EACGA,EAAM,GAEQ,gBAARA,IAAmC,kBAARA,GACxC4T,EAAYpb,GAAS6B,KAAK2F,KAAU,eAC7BA,IAMT8V,WAAY,SAAU3T,GAChBA,GAAQjC,GAAO4H,KAAM3F,KAIvBlD,EAAO8W,YAAc,SAAU5T,GAChClD,EAAe,KAAE5E,KAAM4E,EAAQkD,KAC3BA,IAMPyB,UAAW,SAAUoS,GACpB,MAAOA,GAAO3T,QAAS6R,GAAW,OAAQ7R,QAAS8R,GAAYC,KAGhE7O,SAAU,SAAU9E,EAAM7J,GACzB,MAAO6J,GAAK8E,UAAY9E,EAAK8E,SAAShD,gBAAkB3L,EAAK2L,eAI9DnB,KAAM,SAAUpB,EAAKzF,EAAUqa,GAC9B,GAAI7d,GACH2J,EAAI,EACJ7I,EAASmI,EAAInI,OACbiM,EAAU/D,EAAaC,EAExB,IAAK4U,GACJ,GAAK9Q,EACJ,KAAYjM,EAAJ6I,IACP3J,EAAQwD,EAAS+O,MAAOtJ,EAAKU,GAAKkU,GAE7B7d,KAAU,GAHI2J,SAQpB,KAAMA,IAAKV,GAGV,GAFAjJ,EAAQwD,EAAS+O,MAAOtJ,EAAKU,GAAKkU,GAE7B7d,KAAU,EACd,UAOH,IAAK+M,EACJ,KAAYjM,EAAJ6I,IACP3J,EAAQwD,EAASF,KAAM2F,EAAKU,GAAKA,EAAGV,EAAKU,IAEpC3J,KAAU,GAHI2J,SAQpB,KAAMA,IAAKV,GAGV,GAFAjJ,EAAQwD,EAASF,KAAM2F,EAAKU,GAAKA,EAAGV,EAAKU,IAEpC3J,KAAU,EACd,KAMJ,OAAOiJ,IAIR8H,KAAM,SAAUL,GACf,MAAe,OAARA,EACN,IACEA,EAAO,IAAKpF,QAAS4R,GAAO,KAIhCgC,UAAW,SAAUC,EAAKlZ,GACzB,GAAIiG,GAAMjG,KAaV,OAXY,OAAPkZ,IACCnW,EAAahI,OAAOme,IACxBhW,GAAOsF,MAAOvC,EACE,gBAARiT,IACLA,GAAQA,GAGX/Y,EAAK9C,KAAM4I,EAAKiT,IAIXjT,GAGRpC,QAAS,SAAUJ,EAAMyV,EAAKxV,GAC7B,GAAIsU,EAEJ,IAAKkB,EAAM,CACV,GAAKvC,EACJ,MAAOA,GAAQtZ,KAAM6b,EAAKzV,EAAMC,EAMjC,KAHAsU,EAAMkB,EAAIre,OACV6I,EAAIA,EAAQ,EAAJA,EAAQxI,KAAKoS,IAAK,EAAG0K,EAAMtU,GAAMA,EAAI,EAEjCsU,EAAJtU,EAASA,IAEhB,GAAKA,IAAKwV,IAAOA,EAAKxV,KAAQD,EAC7B,MAAOC,GAKV,MAAO,IAGR8E,MAAO,SAAUqP,EAAOsB,GAKvB,IAJA,GAAInB,IAAOmB,EAAOte,OACjBod,EAAI,EACJvU,EAAImU,EAAMhd,OAECmd,EAAJC,GACPJ,EAAOnU,KAAQyV,EAAQlB,IAKxB,IAAKD,IAAQA,EACZ,KAAsB5S,SAAd+T,EAAOlB,IACdJ,EAAOnU,KAAQyV,EAAQlB,IAMzB,OAFAJ,GAAMhd,OAAS6I,EAERmU,GAGRrU,KAAM,SAAUyE,EAAO1K,EAAU6b,GAShC,IARA,GAAIC,GACHjM,KACA1J,EAAI,EACJ7I,EAASoN,EAAMpN,OACfye,GAAkBF,EAIPve,EAAJ6I,EAAYA,IACnB2V,GAAmB9b,EAAU0K,EAAOvE,GAAKA,GACpC2V,IAAoBC,GACxBlM,EAAQjN,KAAM8H,EAAOvE,GAIvB,OAAO0J,IAIRpG,IAAK,SAAUiB,EAAO1K,EAAUgc,GAC/B,GAAIxf,GACH2J,EAAI,EACJ7I,EAASoN,EAAMpN,OACfiM,EAAU/D,EAAakF,GACvBhC,IAGD,IAAKa,EACJ,KAAYjM,EAAJ6I,EAAYA,IACnB3J,EAAQwD,EAAU0K,EAAOvE,GAAKA,EAAG6V,GAEnB,MAATxf,GACJkM,EAAI9F,KAAMpG,OAMZ,KAAM2J,IAAKuE,GACVlO,EAAQwD,EAAU0K,EAAOvE,GAAKA,EAAG6V,GAEnB,MAATxf,GACJkM,EAAI9F,KAAMpG,EAMb,OAAOgN,GAAOuF,SAAWrG,IAI1BQ,KAAM,EAIN+S,MAAO,SAAUxC,EAAItd,GACpB,GAAIke,GAAM4B,EAAO9D,CAUjB,OARwB,gBAAZhc,KACXgc,EAAMsB,EAAItd,GACVA,EAAUsd,EACVA,EAAKtB,GAKAxS,GAAOvF,WAAYqZ,IAKzBY,EAAOlZ,EAAMrB,KAAMkP,UAAW,GAC9BiN,EAAQ,WACP,MAAOxC,GAAG1K,MAAO5S,GAAWwD,KAAM0a,EAAK7Q,OAAQrI,EAAMrB,KAAMkP,cAI5DiN,EAAM/S,KAAOuQ,EAAGvQ,KAAOuQ,EAAGvQ,MAAQvD,GAAOuD,OAElC+S,GAZCpU,QAeT2J,IAAK,WACJ,OAAQ,GAAMtU,OAKfyM,QAASA,KAIVhE,GAAOkB,KAAK,gEAAgEpF,MAAM,KAAM,SAAS0E,EAAG9J,GACnGgd,EAAY,WAAahd,EAAO,KAAQA,EAAK2L,eAkB9C,IAAIkU;;;;;;;;;;AAWJ,SAAWxX,GA0LX,QAASwX,GAAQ1C,EAAUrd,EAASsG,EAAS0Z,GAC5C,GAAIrV,GAAOZ,EAAMkW,EAAG3X,EAEnB0B,EAAGkW,EAAQC,EAAKC,EAAKC,EAAYC,CAUlC,KAROtgB,EAAUA,EAAQuP,eAAiBvP,EAAUugB,KAAmBtX,GACtEuX,EAAaxgB,GAGdA,EAAUA,GAAWiJ,EACrB3C,EAAUA,MACVgC,EAAWtI,EAAQsI,SAEM,gBAAb+U,KAA0BA,GACxB,IAAb/U,GAA+B,IAAbA,GAA+B,KAAbA,EAEpC,MAAOhC,EAGR,KAAM0Z,GAAQS,EAAiB,CAG9B,GAAkB,KAAbnY,IAAoBqC,EAAQ+V,GAAW7Q,KAAMwN,IAEjD,GAAM4C,EAAItV,EAAM,IACf,GAAkB,IAAbrC,EAAiB,CAIrB,GAHAyB,EAAO/J,EAAQ2gB,eAAgBV,IAG1BlW,IAAQA,EAAKiH,WAQjB,MAAO1K,EALP,IAAKyD,EAAK8C,KAAOoT,EAEhB,MADA3Z,GAAQG,KAAMsD,GACPzD,MAOT,IAAKtG,EAAQuP,gBAAkBxF,EAAO/J,EAAQuP,cAAcoR,eAAgBV,KAC3EW,EAAU5gB,EAAS+J,IAAUA,EAAK8C,KAAOoT,EAEzC,MADA3Z,GAAQG,KAAMsD,GACPzD,MAKH,CAAA,GAAKqE,EAAM,GAEjB,MADAlE,GAAKmM,MAAOtM,EAAStG,EAAQyO,qBAAsB4O,IAC5C/W,CAGD,KAAM2Z,EAAItV,EAAM,KAAO6C,EAAQqT,uBAErC,MADApa,GAAKmM,MAAOtM,EAAStG,EAAQ6gB,uBAAwBZ,IAC9C3Z,EAKT,GAAKkH,EAAQsT,OAASC,IAAcA,EAAU7W,KAAMmT,IAAc,CASjE,GARA+C,EAAMD,EAAMzT,EACZ2T,EAAargB,EACbsgB,EAA2B,IAAbhY,GAAkB+U,EAMd,IAAb/U,GAAqD,WAAnCtI,EAAQ6O,SAAShD,cAA6B,CAWpE,IAVAqU,EAASc,EAAU3D,IAEb8C,EAAMngB,EAAQ8L,aAAa,OAChCsU,EAAMD,EAAIxU,QAASsV,GAAS,QAE5BjhB,EAAQkhB,aAAc,KAAMd,GAE7BA,EAAM,QAAUA,EAAM,MAEtBpW,EAAIkW,EAAO/e,OACH6I,KACPkW,EAAOlW,GAAKoW,EAAMe,EAAYjB,EAAOlW,GAEtCqW,GAAae,GAASlX,KAAMmT,IAAcgE,EAAarhB,EAAQgR,aAAgBhR,EAC/EsgB,EAAcJ,EAAOxZ,KAAK,KAG3B,GAAK4Z,EACJ,IAIC,MAHA7Z,GAAKmM,MAAOtM,EACX+Z,EAAW1R,iBAAkB2R,IAEvBha,EACN,MAAMgb,IACN,QACKnB,GACLngB,EAAQ8P,gBAAgB,QAQ7B,MAAOyR,GAAQlE,EAAS1R,QAAS4R,GAAO,MAAQvd,EAASsG,EAAS0Z,GASnE,QAASwB,KAGR,QAAS5U,GAAOpB,EAAKnL,GAMpB,MAJKohB,GAAKhb,KAAM+E,EAAM,KAAQkW,EAAKC,mBAE3B/U,GAAO6U,EAAKnG,SAEZ1O,EAAOpB,EAAM,KAAQnL,EAR9B,GAAIohB,KAUJ,OAAO7U,GAOR,QAASgV,GAActE,GAEtB,MADAA,GAAI5Q,IAAY,EACT4Q,EAOR,QAASuE,GAAQvE,GAChB,GAAIwE,GAAM7Y,EAASmF,cAAc,MAEjC,KACC,QAASkP,EAAIwE,GACZ,MAAO7V,GACR,OAAO,EACN,QAEI6V,EAAI9Q,YACR8Q,EAAI9Q,WAAW+Q,YAAaD,GAG7BA,EAAM,MASR,QAASE,GAAWvM,EAAOwM,GAI1B,IAHA,GAAIzC,GAAM/J,EAAMnQ,MAAM,KACrB0E,EAAIyL,EAAMtU,OAEH6I,KACP0X,EAAKQ,WAAY1C,EAAIxV,IAAOiY,EAU9B,QAASE,GAAcrhB,EAAGshB,GACzB,GAAI/X,GAAM+X,GAAKthB,EACduhB,EAAOhY,GAAsB,IAAfvJ,EAAEwH,UAAiC,IAAf8Z,EAAE9Z,YAChC8Z,EAAEE,aAAeC,KACjBzhB,EAAEwhB,aAAeC,EAGtB,IAAKF,EACJ,MAAOA,EAIR,IAAKhY,EACJ,KAASA,EAAMA,EAAImY,aAClB,GAAKnY,IAAQ+X,EACZ,MAAO,EAKV,OAAOthB,GAAI,EAAI,GAOhB,QAAS2hB,GAAmBlZ,GAC3B,MAAO,UAAUQ,GAChB,GAAI7J,GAAO6J,EAAK8E,SAAShD,aACzB,OAAgB,UAAT3L,GAAoB6J,EAAKR,OAASA,GAQ3C,QAASmZ,GAAoBnZ,GAC5B,MAAO,UAAUQ,GAChB,GAAI7J,GAAO6J,EAAK8E,SAAShD,aACzB,QAAiB,UAAT3L,GAA6B,WAATA,IAAsB6J,EAAKR,OAASA,GAQlE,QAASoZ,GAAwBrF,GAChC,MAAOsE,GAAa,SAAUgB,GAE7B,MADAA,IAAYA,EACLhB,EAAa,SAAU5B,EAAMtM,GAMnC,IALA,GAAI6K,GACHsE,EAAevF,KAAQ0C,EAAK7e,OAAQyhB,GACpC5Y,EAAI6Y,EAAa1hB,OAGV6I,KACFgW,EAAOzB,EAAIsE,EAAa7Y,MAC5BgW,EAAKzB,KAAO7K,EAAQ6K,GAAKyB,EAAKzB,SAYnC,QAAS8C,GAAarhB,GACrB,MAAOA,IAAmD,mBAAjCA,GAAQyO,sBAAwCzO,EAg/B1E,QAAS8iB,MAuET,QAAS3B,GAAY4B,GAIpB,IAHA,GAAI/Y,GAAI,EACPsU,EAAMyE,EAAO5hB,OACbkc,EAAW,GACAiB,EAAJtU,EAASA,IAChBqT,GAAY0F,EAAO/Y,GAAG3J,KAEvB,OAAOgd,GAGR,QAAS2F,GAAeC,EAASC,EAAYC,GAC5C,GAAI7Y,GAAM4Y,EAAW5Y,IACpB8Y,EAAmBD,GAAgB,eAAR7Y,EAC3B+Y,EAAW7L,GAEZ,OAAO0L,GAAW/E,MAEjB,SAAUpU,EAAM/J,EAASsjB,GACxB,KAASvZ,EAAOA,EAAMO,IACrB,GAAuB,IAAlBP,EAAKzB,UAAkB8a,EAC3B,MAAOH,GAASlZ,EAAM/J,EAASsjB,IAMlC,SAAUvZ,EAAM/J,EAASsjB,GACxB,GAAIC,GAAUC,EACbC,GAAaC,EAASL,EAGvB,IAAKC,GACJ,KAASvZ,EAAOA,EAAMO,IACrB,IAAuB,IAAlBP,EAAKzB,UAAkB8a,IACtBH,EAASlZ,EAAM/J,EAASsjB,GAC5B,OAAO,MAKV,MAASvZ,EAAOA,EAAMO,IACrB,GAAuB,IAAlBP,EAAKzB,UAAkB8a,EAAmB,CAE9C,GADAI,EAAazZ,EAAM2C,KAAc3C,EAAM2C,QACjC6W,EAAWC,EAAYlZ,KAC5BiZ,EAAU,KAAQG,GAAWH,EAAU,KAAQF,EAG/C,MAAQI,GAAU,GAAMF,EAAU,EAMlC,IAHAC,EAAYlZ,GAAQmZ,EAGdA,EAAU,GAAMR,EAASlZ,EAAM/J,EAASsjB,GAC7C,OAAO,IASf,QAASK,GAAgBC,GACxB,MAAOA,GAASziB,OAAS,EACxB,SAAU4I,EAAM/J,EAASsjB,GAExB,IADA,GAAItZ,GAAI4Z,EAASziB,OACT6I,KACP,IAAM4Z,EAAS5Z,GAAID,EAAM/J,EAASsjB,GACjC,OAAO,CAGT,QAAO,GAERM,EAAS,GAGX,QAASC,GAAkBxG,EAAUyG,EAAUxd,GAG9C,IAFA,GAAI0D,GAAI,EACPsU,EAAMwF,EAAS3iB,OACJmd,EAAJtU,EAASA,IAChB+V,EAAQ1C,EAAUyG,EAAS9Z,GAAI1D,EAEhC,OAAOA,GAGR,QAASyd,GAAUC,EAAW1W,EAAKzG,EAAQ7G,EAASsjB,GAOnD,IANA,GAAIvZ,GACHka,KACAja,EAAI,EACJsU,EAAM0F,EAAU7iB,OAChB+iB,EAAgB,MAAP5W,EAEEgR,EAAJtU,EAASA,KACVD,EAAOia,EAAUha,OAChBnD,GAAUA,EAAQkD,EAAM/J,EAASsjB,MACtCW,EAAaxd,KAAMsD,GACdma,GACJ5W,EAAI7G,KAAMuD,GAMd,OAAOia,GAGR,QAASE,GAAYC,EAAW/G,EAAU4F,EAASoB,EAAYC,EAAYC,GAO1E,MANKF,KAAeA,EAAY3X,KAC/B2X,EAAaF,EAAYE,IAErBC,IAAeA,EAAY5X,KAC/B4X,EAAaH,EAAYG,EAAYC,IAE/B3C,EAAa,SAAU5B,EAAM1Z,EAAStG,EAASsjB,GACrD,GAAI5K,GAAM1O,EAAGD,EACZya,KACAC,KACAC,EAAcpe,EAAQnF,OAGtBoN,EAAQyR,GAAQ6D,EAAkBxG,GAAY,IAAKrd,EAAQsI,UAAatI,GAAYA,MAGpF2kB,GAAYP,IAAepE,GAAS3C,EAEnC9O,EADAwV,EAAUxV,EAAOiW,EAAQJ,EAAWpkB,EAASsjB,GAG9CsB,EAAa3B,EAEZqB,IAAgBtE,EAAOoE,EAAYM,GAAeL,MAMjD/d,EACDqe,CAQF,IALK1B,GACJA,EAAS0B,EAAWC,EAAY5kB,EAASsjB,GAIrCe,EAMJ,IALA3L,EAAOqL,EAAUa,EAAYH,GAC7BJ,EAAY3L,KAAU1Y,EAASsjB,GAG/BtZ,EAAI0O,EAAKvX,OACD6I,MACDD,EAAO2O,EAAK1O,MACjB4a,EAAYH,EAAQza,MAAS2a,EAAWF,EAAQza,IAAOD,GAK1D,IAAKiW,GACJ,GAAKsE,GAAcF,EAAY,CAC9B,GAAKE,EAAa,CAIjB,IAFA5L,KACA1O,EAAI4a,EAAWzjB,OACP6I,MACDD,EAAO6a,EAAW5a,KAEvB0O,EAAKjS,KAAOke,EAAU3a,GAAKD,EAG7Bua,GAAY,KAAOM,KAAkBlM,EAAM4K,GAK5C,IADAtZ,EAAI4a,EAAWzjB,OACP6I,MACDD,EAAO6a,EAAW5a,MACtB0O,EAAO4L,EAAarH,GAAS+C,EAAMjW,GAASya,EAAOxa,IAAM,KAE1DgW,EAAKtH,KAAUpS,EAAQoS,GAAQ3O,SAOlC6a,GAAab,EACZa,IAAete,EACdse,EAAWnG,OAAQiG,EAAaE,EAAWzjB,QAC3CyjB,GAEGN,EACJA,EAAY,KAAMhe,EAASse,EAAYtB,GAEvC7c,EAAKmM,MAAOtM,EAASse,KAMzB,QAASC,GAAmB9B,GAwB3B,IAvBA,GAAI+B,GAAc7B,EAAS1E,EAC1BD,EAAMyE,EAAO5hB,OACb4jB,EAAkBrD,EAAKsD,SAAUjC,EAAO,GAAGxZ,MAC3C0b,EAAmBF,GAAmBrD,EAAKsD,SAAS,KACpDhb,EAAI+a,EAAkB,EAAI,EAG1BG,EAAelC,EAAe,SAAUjZ,GACvC,MAAOA,KAAS+a,GACdG,GAAkB,GACrBE,EAAkBnC,EAAe,SAAUjZ,GAC1C,MAAOkT,IAAS6H,EAAc/a,GAAS,IACrCkb,GAAkB,GACrBrB,GAAa,SAAU7Z,EAAM/J,EAASsjB,GACrC,GAAI/W,IAASwY,IAAqBzB,GAAOtjB,IAAYolB,MACnDN,EAAe9kB,GAASsI,SACxB4c,EAAcnb,EAAM/J,EAASsjB,GAC7B6B,EAAiBpb,EAAM/J,EAASsjB,GAGlC,OADAwB,GAAe,KACRvY,IAGG+R,EAAJtU,EAASA,IAChB,GAAMiZ,EAAUvB,EAAKsD,SAAUjC,EAAO/Y,GAAGT,MACxCqa,GAAaZ,EAAcW,EAAgBC,GAAYX,QACjD,CAIN,GAHAA,EAAUvB,EAAK7a,OAAQkc,EAAO/Y,GAAGT,MAAOqJ,MAAO,KAAMmQ,EAAO/Y,GAAG0J,SAG1DuP,EAASvW,GAAY,CAGzB,IADA6R,IAAMvU,EACMsU,EAAJC,IACFmD,EAAKsD,SAAUjC,EAAOxE,GAAGhV,MADdgV,KAKjB,MAAO4F,GACNna,EAAI,GAAK2Z,EAAgBC,GACzB5Z,EAAI,GAAKmX,EAER4B,EAAO/d,MAAO,EAAGgF,EAAI,GAAIqD,QAAShN,MAAgC,MAAzB0iB,EAAQ/Y,EAAI,GAAIT,KAAe,IAAM,MAC7EoC,QAAS4R,GAAO,MAClB0F,EACI1E,EAAJvU,GAAS6a,EAAmB9B,EAAO/d,MAAOgF,EAAGuU,IACzCD,EAAJC,GAAWsG,EAAoB9B,EAASA,EAAO/d,MAAOuZ,IAClDD,EAAJC,GAAW4C,EAAY4B,IAGzBa,EAASnd,KAAMwc,GAIjB,MAAOU,GAAgBC,GAGxB,QAASyB,GAA0BC,EAAiBC,GACnD,GAAIC,GAAQD,EAAYpkB,OAAS,EAChCskB,EAAYH,EAAgBnkB,OAAS,EACrCukB,EAAe,SAAU1F,EAAMhgB,EAASsjB,EAAKhd,EAASqf,GACrD,GAAI5b,GAAMwU,EAAG0E,EACZ2C,EAAe,EACf5b,EAAI,IACJga,EAAYhE,MACZ6F,KACAC,EAAgBV,EAEhB7W,EAAQyR,GAAQyF,GAAa/D,EAAKjS,KAAU,IAAG,IAAKkW,GAEpDI,EAAiBrC,GAA4B,MAAjBoC,EAAwB,EAAItkB,KAAKsd,UAAY,GACzER,EAAM/P,EAAMpN,MAUb,KARKwkB,IACJP,EAAmBplB,IAAYiJ,GAAYjJ,GAOpCgK,IAAMsU,GAA4B,OAApBvU,EAAOwE,EAAMvE,IAAaA,IAAM,CACrD,GAAKyb,GAAa1b,EAAO,CAExB,IADAwU,EAAI,EACK0E,EAAUqC,EAAgB/G,MAClC,GAAK0E,EAASlZ,EAAM/J,EAASsjB,GAAQ,CACpChd,EAAQG,KAAMsD,EACd,OAGG4b,IACJjC,EAAUqC,GAKPP,KAEEzb,GAAQkZ,GAAWlZ,IACxB6b,IAII5F,GACJgE,EAAUvd,KAAMsD,IAOnB,GADA6b,GAAgB5b,EACXwb,GAASxb,IAAM4b,EAAe,CAElC,IADArH,EAAI,EACK0E,EAAUsC,EAAYhH,MAC9B0E,EAASe,EAAW6B,EAAY7lB,EAASsjB,EAG1C,IAAKtD,EAAO,CAEX,GAAK4F,EAAe,EACnB,KAAQ5b,KACAga,EAAUha,IAAM6b,EAAW7b,KACjC6b,EAAW7b,GAAKrD,EAAIhD,KAAM2C,GAM7Buf,GAAa9B,EAAU8B,GAIxBpf,EAAKmM,MAAOtM,EAASuf,GAGhBF,IAAc3F,GAAQ6F,EAAW1kB,OAAS,GAC5CykB,EAAeL,EAAYpkB,OAAW,GAExC4e,EAAOiG,WAAY1f,GAUrB,MALKqf,KACJjC,EAAUqC,EACVX,EAAmBU,GAGb9B,EAGT,OAAOwB,GACN5D,EAAc8D,GACdA,EA50DF,GAAI1b,GACHwD,EACAkU,EACAuE,EACAC,EACAlF,EACAmF,EACA5E,EACA6D,EACAgB,EACAC,EAGA7F,EACAvX,EACAqd,EACA7F,EACAM,EACAwF,EACA7S,EACAkN,EAGAlU,EAAU,SAAW,EAAI,GAAI3L,MAC7Bwf,EAAehY,EAAOU,SACtBya,EAAU,EACVlM,EAAO,EACPgP,EAAahF,IACbiF,EAAajF,IACbkF,EAAgBlF,IAChBmF,EAAY,SAAU7lB,EAAGshB,GAIxB,MAHKthB,KAAMshB,IACViE,GAAe,GAET,GAIR9D,EAAe,GAAK,GAGpBpF,KAAcja,eACdsc,KACA7Y,EAAM6Y,EAAI7Y,IACVigB,EAAcpH,EAAI/Y,KAClBA,EAAO+Y,EAAI/Y,KACXzB,EAAQwa,EAAIxa,MAGZiY,GAAU,SAAUjP,EAAMjE,GAGzB,IAFA,GAAIC,GAAI,EACPsU,EAAMtQ,EAAK7M,OACAmd,EAAJtU,EAASA,IAChB,GAAKgE,EAAKhE,KAAOD,EAChB,MAAOC,EAGT,OAAO,IAGR6c,GAAW,6HAKXjhB,GAAa,sBAEbkhB,GAAoB,mCAKpBC,GAAaD,GAAkBnb,QAAS,IAAK,MAG7Cqb,GAAa,MAAQphB,GAAa,KAAOkhB,GAAoB,OAASlhB,GAErE,gBAAkBA,GAElB,2DAA6DmhB,GAAa,OAASnhB,GACnF,OAEDqhB,GAAU,KAAOH,GAAoB,wFAKPE,GAAa,eAM3CE,GAAc,GAAIC,QAAQvhB,GAAa,IAAK,KAC5C2X,GAAQ,GAAI4J,QAAQ,IAAMvhB,GAAa,8BAAgCA,GAAa,KAAM,KAE1FwhB,GAAS,GAAID,QAAQ,IAAMvhB,GAAa,KAAOA,GAAa,KAC5DyhB,GAAe,GAAIF,QAAQ,IAAMvhB,GAAa,WAAaA,GAAa,IAAMA,GAAa,KAE3F0hB,GAAmB,GAAIH,QAAQ,IAAMvhB,GAAa,iBAAmBA,GAAa,OAAQ,KAE1F2hB,GAAU,GAAIJ,QAAQF,IACtBO,GAAc,GAAIL,QAAQ,IAAMJ,GAAa,KAE7CU,IACCC,GAAM,GAAIP,QAAQ,MAAQL,GAAoB,KAC9Ca,MAAS,GAAIR,QAAQ,QAAUL,GAAoB,KACnDc,IAAO,GAAIT,QAAQ,KAAOL,GAAkBnb,QAAS,IAAK,MAAS,KACnEkc,KAAQ,GAAIV,QAAQ,IAAMH,IAC1Bc,OAAU,GAAIX,QAAQ,IAAMF,IAC5Bc,MAAS,GAAIZ,QAAQ,yDAA2DvhB,GAC/E,+BAAiCA,GAAa,cAAgBA,GAC9D,aAAeA,GAAa,SAAU,KACvCoiB,KAAQ,GAAIb,QAAQ,OAASN,GAAW,KAAM,KAG9CoB,aAAgB,GAAId,QAAQ,IAAMvhB,GAAa,mDAC9CA,GAAa,mBAAqBA,GAAa,mBAAoB,MAGrEsiB,GAAU,sCACVC,GAAU,SAEVC,GAAU,yBAGV1H,GAAa,mCAEbU,GAAW,OACXH,GAAU,QAGVoH,GAAY,GAAIlB,QAAQ,qBAAuBvhB,GAAa,MAAQA,GAAa,OAAQ,MACzF0iB,GAAY,SAAUzd,EAAG0d,EAASC,GACjC,GAAIC,GAAO,KAAOF,EAAU,KAI5B,OAAOE,KAASA,GAAQD,EACvBD,EACO,EAAPE,EAEC7nB,OAAOoG,aAAcyhB,EAAO,OAE5B7nB,OAAOoG,aAAcyhB,GAAQ,GAAK,MAAe,KAAPA,EAAe,QAO5DC,GAAgB,WACflI,IAIF,KACC/Z,EAAKmM,MACH4M,EAAMxa,EAAMrB,KAAM4c,EAAa3R,YAChC2R,EAAa3R,YAId4Q,EAAKe,EAAa3R,WAAWzN,QAASmH,SACrC,MAAQ2D,IACTxF,GAASmM,MAAO4M,EAAIre,OAGnB,SAAUwZ,EAAQgO,GACjB/B,EAAYhU,MAAO+H,EAAQ3V,EAAMrB,KAAKglB,KAKvC,SAAUhO,EAAQgO,GAIjB,IAHA,GAAIpK,GAAI5D,EAAOxZ,OACd6I,EAAI,EAEI2Q,EAAO4D,KAAOoK,EAAI3e,OAC3B2Q,EAAOxZ,OAASod,EAAI,IAoQvB/Q,EAAUuS,EAAOvS,WAOjB0Y,EAAQnG,EAAOmG,MAAQ,SAAUnc,GAGhC,GAAIoI,GAAkBpI,IAASA,EAAKwF,eAAiBxF,GAAMoI,eAC3D,OAAOA,GAA+C,SAA7BA,EAAgBtD,UAAsB,GAQhE2R,EAAcT,EAAOS,YAAc,SAAUoI,GAC5C,GAAIC,GAAYnlB,EACf+N,EAAMmX,EAAOA,EAAKrZ,eAAiBqZ,EAAOrI,CAG3C,OAAK9O,KAAQxI,GAA6B,IAAjBwI,EAAInJ,UAAmBmJ,EAAIU,iBAKpDlJ,EAAWwI,EACX6U,EAAU7U,EAAIU,gBACdzO,EAAS+N,EAAIsL,YAMRrZ,GAAUA,IAAWA,EAAOolB,MAE3BplB,EAAOsH,iBACXtH,EAAOsH,iBAAkB,SAAU0d,IAAe,GACvChlB,EAAOqlB,aAClBrlB,EAAOqlB,YAAa,WAAYL,KAMlCjI,GAAkByF,EAAOzU,GAQzBjE,EAAQwZ,WAAanF,EAAO,SAAUC,GAErC,MADAA,GAAI/b,UAAY,KACR+b,EAAIhW,aAAa,eAO1B0B,EAAQiB,qBAAuBoT,EAAO,SAAUC,GAE/C,MADAA,GAAIxS,YAAamC,EAAIuX,cAAc,MAC3BlH,EAAIrT,qBAAqB,KAAKtN,SAIvCqM,EAAQqT,uBAAyBuH,GAAQle,KAAMuH,EAAIoP,wBAMnDrT,EAAQyb,QAAUpH,EAAO,SAAUC,GAElC,MADAwE,GAAQhX,YAAawS,GAAMjV,GAAKH,GACxB+E,EAAIyX,oBAAsBzX,EAAIyX,kBAAmBxc,GAAUvL,SAI/DqM,EAAQyb,SACZvH,EAAKjS,KAAS,GAAI,SAAU5C,EAAI7M,GAC/B,GAAuC,mBAA3BA,GAAQ2gB,gBAAkCF,EAAiB,CACtE,GAAIR,GAAIjgB,EAAQ2gB,eAAgB9T,EAGhC,OAAOoT,IAAKA,EAAEjP,YAAeiP,QAG/ByB,EAAK7a,OAAW,GAAI,SAAUgG,GAC7B,GAAIsc,GAAStc,EAAGlB,QAAS0c,GAAWC,GACpC,OAAO,UAAUve,GAChB,MAAOA,GAAK+B,aAAa,QAAUqd,YAM9BzH,GAAKjS,KAAS,GAErBiS,EAAK7a,OAAW,GAAK,SAAUgG,GAC9B,GAAIsc,GAAStc,EAAGlB,QAAS0c,GAAWC,GACpC,OAAO,UAAUve,GAChB,GAAI6e,GAAwC,mBAA1B7e,GAAKqf,kBAAoCrf,EAAKqf,iBAAiB,KACjF,OAAOR,IAAQA,EAAKvoB,QAAU8oB,KAMjCzH,EAAKjS,KAAU,IAAIjC,EAAQiB,qBAC1B,SAAUH,EAAKtO,GACd,MAA6C,mBAAjCA,GAAQyO,qBACZzO,EAAQyO,qBAAsBH,GAG1Bd,EAAQsT,IACZ9gB,EAAQ2O,iBAAkBL,GAD3B,QAKR,SAAUA,EAAKtO,GACd,GAAI+J,GACHiS,KACAhS,EAAI,EAEJ1D,EAAUtG,EAAQyO,qBAAsBH,EAGzC,IAAa,MAARA,EAAc,CAClB,KAASvE,EAAOzD,EAAQ0D,MACA,IAAlBD,EAAKzB,UACT0T,EAAIvV,KAAMsD,EAIZ,OAAOiS,GAER,MAAO1V,IAITob,EAAKjS,KAAY,MAAIjC,EAAQqT,wBAA0B,SAAU9a,EAAW/F,GAC3E,MAAKygB,GACGzgB,EAAQ6gB,uBAAwB9a,GADxC,QAWDwgB,KAOAxF,MAEMvT,EAAQsT,IAAMsH,GAAQle,KAAMuH,EAAI9C,qBAGrCkT,EAAO,SAAUC,GAMhBwE,EAAQhX,YAAawS,GAAM3Q,UAAY,UAAYzE,EAAU,qBAC3CA,EAAU,iEAOvBoV,EAAInT,iBAAiB,wBAAwBxN,QACjD4f,EAAUta,KAAM,SAAWb,GAAa,gBAKnCkc,EAAInT,iBAAiB,cAAcxN,QACxC4f,EAAUta,KAAM,MAAQb,GAAa,aAAeihB,GAAW,KAI1D/E,EAAInT,iBAAkB,QAAUjC,EAAU,MAAOvL,QACtD4f,EAAUta,KAAK,MAMVqb,EAAInT,iBAAiB,YAAYxN,QACtC4f,EAAUta,KAAK,YAMVqb,EAAInT,iBAAkB,KAAOjC,EAAU,MAAOvL,QACnD4f,EAAUta,KAAK,cAIjBob,EAAO,SAAUC,GAGhB,GAAIuH,GAAQ5X,EAAIrD,cAAc,QAC9Bib,GAAMnI,aAAc,OAAQ,UAC5BY,EAAIxS,YAAa+Z,GAAQnI,aAAc,OAAQ,KAI1CY,EAAInT,iBAAiB,YAAYxN,QACrC4f,EAAUta,KAAM,OAASb,GAAa,eAKjCkc,EAAInT,iBAAiB,YAAYxN,QACtC4f,EAAUta,KAAM,WAAY,aAI7Bqb,EAAInT,iBAAiB,QACrBoS,EAAUta,KAAK,YAIX+G,EAAQ8b,gBAAkBlB,GAAQle,KAAOwJ,EAAU4S,EAAQ5S,SAChE4S,EAAQiD,uBACRjD,EAAQkD,oBACRlD,EAAQmD,kBACRnD,EAAQoD,qBAER7H,EAAO,SAAUC,GAGhBtU,EAAQmc,kBAAoBjW,EAAQ/P,KAAMme,EAAK,OAI/CpO,EAAQ/P,KAAMme,EAAK,aACnByE,EAAc9f,KAAM,KAAMwgB,MAI5BlG,EAAYA,EAAU5f,QAAU,GAAIgmB,QAAQpG,EAAUra,KAAK,MAC3D6f,EAAgBA,EAAcplB,QAAU,GAAIgmB,QAAQZ,EAAc7f,KAAK,MAIvEmiB,EAAaT,GAAQle,KAAMoc,EAAQsD,yBAKnChJ,EAAWiI,GAAcT,GAAQle,KAAMoc,EAAQ1F,UAC9C,SAAU9f,EAAGshB,GACZ,GAAIyH,GAAuB,IAAf/oB,EAAEwH,SAAiBxH,EAAEqR,gBAAkBrR,EAClDgpB,EAAM1H,GAAKA,EAAEpR,UACd,OAAOlQ,KAAMgpB,MAAWA,GAAwB,IAAjBA,EAAIxhB,YAClCuhB,EAAMjJ,SACLiJ,EAAMjJ,SAAUkJ,GAChBhpB,EAAE8oB,yBAA8D,GAAnC9oB,EAAE8oB,wBAAyBE,MAG3D,SAAUhpB,EAAGshB,GACZ,GAAKA,EACJ,KAASA,EAAIA,EAAEpR,YACd,GAAKoR,IAAMthB,EACV,OAAO,CAIV,QAAO,GAOT6lB,EAAYkC,EACZ,SAAU/nB,EAAGshB,GAGZ,GAAKthB,IAAMshB,EAEV,MADAiE,IAAe,EACR,CAIR,IAAI0D,IAAWjpB,EAAE8oB,yBAA2BxH,EAAEwH,uBAC9C,OAAKG,GACGA,GAIRA,GAAYjpB,EAAEyO,eAAiBzO,MAAUshB,EAAE7S,eAAiB6S,GAC3DthB,EAAE8oB,wBAAyBxH,GAG3B,EAGc,EAAV2H,IACFvc,EAAQwc,cAAgB5H,EAAEwH,wBAAyB9oB,KAAQipB,EAGxDjpB,IAAM2Q,GAAO3Q,EAAEyO,gBAAkBgR,GAAgBK,EAASL,EAAczf,GACrE,GAEHshB,IAAM3Q,GAAO2Q,EAAE7S,gBAAkBgR,GAAgBK,EAASL,EAAc6B,GACrE,EAIDgE,EACJnJ,GAASmJ,EAAWtlB,GAAMmc,GAASmJ,EAAWhE,GAChD,EAGe,EAAV2H,EAAc,GAAK,IAE3B,SAAUjpB,EAAGshB,GAEZ,GAAKthB,IAAMshB,EAEV,MADAiE,IAAe,EACR,CAGR,IAAIhc,GACHL,EAAI,EACJigB,EAAMnpB,EAAEkQ,WACR8Y,EAAM1H,EAAEpR,WACRkZ,GAAOppB,GACPqpB,GAAO/H,EAGR,KAAM6H,IAAQH,EACb,MAAOhpB,KAAM2Q,EAAM,GAClB2Q,IAAM3Q,EAAM,EACZwY,EAAM,GACNH,EAAM,EACN1D,EACEnJ,GAASmJ,EAAWtlB,GAAMmc,GAASmJ,EAAWhE,GAChD,CAGK,IAAK6H,IAAQH,EACnB,MAAO3H,GAAcrhB,EAAGshB,EAKzB,KADA/X,EAAMvJ,EACGuJ,EAAMA,EAAI2G,YAClBkZ,EAAGjQ,QAAS5P,EAGb,KADAA,EAAM+X,EACG/X,EAAMA,EAAI2G,YAClBmZ,EAAGlQ,QAAS5P,EAIb,MAAQ6f,EAAGlgB,KAAOmgB,EAAGngB,IACpBA,GAGD,OAAOA,GAENmY,EAAc+H,EAAGlgB,GAAImgB,EAAGngB,IAGxBkgB,EAAGlgB,KAAOuW,EAAe,GACzB4J,EAAGngB,KAAOuW,EAAe,EACzB,GAGK9O,GA1WCxI,GA6WT8W,EAAOrM,QAAU,SAAU0W,EAAMzgB,GAChC,MAAOoW,GAAQqK,EAAM,KAAM,KAAMzgB,IAGlCoW,EAAOuJ,gBAAkB,SAAUvf,EAAMqgB,GASxC,IAPOrgB,EAAKwF,eAAiBxF,KAAWd,GACvCuX,EAAazW,GAIdqgB,EAAOA,EAAKze,QAAS2b,GAAkB,UAElC9Z,EAAQ8b,iBAAmB7I,KAC5B8F,IAAkBA,EAAcrc,KAAMkgB,OACtCrJ,IAAkBA,EAAU7W,KAAMkgB,IAErC,IACC,GAAI7d,GAAMmH,EAAQ/P,KAAMoG,EAAMqgB,EAG9B,IAAK7d,GAAOiB,EAAQmc,mBAGlB5f,EAAKd,UAAuC,KAA3Bc,EAAKd,SAASX,SAChC,MAAOiE,GAEP,MAAON,IAGV,MAAO8T,GAAQqK,EAAMnhB,EAAU,MAAQc,IAAS5I,OAAS,GAG1D4e,EAAOa,SAAW,SAAU5gB,EAAS+J,GAKpC,OAHO/J,EAAQuP,eAAiBvP,KAAciJ,GAC7CuX,EAAaxgB,GAEP4gB,EAAU5gB,EAAS+J,IAG3BgW,EAAOrQ,KAAO,SAAU3F,EAAM7J,IAEtB6J,EAAKwF,eAAiBxF,KAAWd,GACvCuX,EAAazW,EAGd,IAAIuT,GAAKoE,EAAKQ,WAAYhiB,EAAK2L,eAE9BoI,EAAMqJ,GAAMH,EAAOxZ,KAAM+d,EAAKQ,WAAYhiB,EAAK2L,eAC9CyR,EAAIvT,EAAM7J,GAAOugB,GACjB/U,MAEF,OAAeA,UAARuI,EACNA,EACAzG,EAAQwZ,aAAevG,EACtB1W,EAAK+B,aAAc5L,IAClB+T,EAAMlK,EAAKqf,iBAAiBlpB,KAAU+T,EAAIoW,UAC1CpW,EAAI5T,MACJ,MAGJ0f,EAAO1D,MAAQ,SAAU2C,GACxB,KAAM,IAAI7V,OAAO,0CAA4C6V,IAO9De,EAAOiG,WAAa,SAAU1f,GAC7B,GAAIyD,GACHugB,KACA/L,EAAI,EACJvU,EAAI,CAOL,IAJAqc,GAAgB7Y,EAAQ+c,iBACxBnE,GAAa5Y,EAAQgd,YAAclkB,EAAQtB,MAAO,GAClDsB,EAAQkY,KAAMmI,GAETN,EAAe,CACnB,KAAStc,EAAOzD,EAAQ0D,MAClBD,IAASzD,EAAS0D,KACtBuU,EAAI+L,EAAW7jB,KAAMuD,GAGvB,MAAQuU,KACPjY,EAAQmY,OAAQ6L,EAAY/L,GAAK,GAQnC,MAFA6H,GAAY,KAEL9f,GAOR2f,EAAUlG,EAAOkG,QAAU,SAAUlc,GACpC,GAAI6e,GACHrc,EAAM,GACNvC,EAAI,EACJ1B,EAAWyB,EAAKzB,QAEjB,IAAMA,GAMC,GAAkB,IAAbA,GAA+B,IAAbA,GAA+B,KAAbA,EAAkB,CAGjE,GAAiC,gBAArByB,GAAK0gB,YAChB,MAAO1gB,GAAK0gB,WAGZ,KAAM1gB,EAAOA,EAAKsF,WAAYtF,EAAMA,EAAOA,EAAKyY,YAC/CjW,GAAO0Z,EAASlc,OAGZ,IAAkB,IAAbzB,GAA+B,IAAbA,EAC7B,MAAOyB,GAAK2gB,cAhBZ,MAAS9B,EAAO7e,EAAKC,MAEpBuC,GAAO0Z,EAAS2C,EAkBlB,OAAOrc,IAGRmV,EAAO3B,EAAO4K,WAGbhJ,YAAa,GAEbiJ,aAAchJ,EAEdjX,MAAO8c,GAEPvF,cAEAzS,QAEAuV,UACC6F,KAAOvgB,IAAK,aAAc6T,OAAO,GACjC2M,KAAOxgB,IAAK,cACZygB,KAAOzgB,IAAK,kBAAmB6T,OAAO,GACtC6M,KAAO1gB,IAAK,oBAGb8Z,WACCyD,KAAQ,SAAUld,GAUjB,MATAA,GAAM,GAAKA,EAAM,GAAGgB,QAAS0c,GAAWC,IAGxC3d,EAAM,IAAOA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAM,IAAKgB,QAAS0c,GAAWC,IAExD,OAAb3d,EAAM,KACVA,EAAM,GAAK,IAAMA,EAAM,GAAK,KAGtBA,EAAM3F,MAAO,EAAG,IAGxB+iB,MAAS,SAAUpd,GA6BlB,MAlBAA,GAAM,GAAKA,EAAM,GAAGkB,cAEY,QAA3BlB,EAAM,GAAG3F,MAAO,EAAG,IAEjB2F,EAAM,IACXoV,EAAO1D,MAAO1R,EAAM,IAKrBA,EAAM,KAAQA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAAK,GAAmB,SAAbA,EAAM,IAA8B,QAAbA,EAAM,KACzFA,EAAM,KAAUA,EAAM,GAAKA,EAAM,IAAqB,QAAbA,EAAM,KAGpCA,EAAM,IACjBoV,EAAO1D,MAAO1R,EAAM,IAGdA,GAGRmd,OAAU,SAAUnd,GACnB,GAAIsgB,GACHC,GAAYvgB,EAAM,IAAMA,EAAM,EAE/B,OAAK8c,IAAiB,MAAEvd,KAAMS,EAAM,IAC5B,MAIHA,EAAM,GACVA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAGxBugB,GAAY3D,GAAQrd,KAAMghB,KAEpCD,EAASjK,EAAUkK,GAAU,MAE7BD,EAASC,EAASjO,QAAS,IAAKiO,EAAS/pB,OAAS8pB,GAAWC,EAAS/pB,UAGvEwJ,EAAM,GAAKA,EAAM,GAAG3F,MAAO,EAAGimB,GAC9BtgB,EAAM,GAAKugB,EAASlmB,MAAO,EAAGimB,IAIxBtgB,EAAM3F,MAAO,EAAG,MAIzB6B,QAEC+gB,IAAO,SAAUuD,GAChB,GAAItc,GAAWsc,EAAiBxf,QAAS0c,GAAWC,IAAYzc,aAChE,OAA4B,MAArBsf,EACN,WAAa,OAAO,GACpB,SAAUphB,GACT,MAAOA,GAAK8E,UAAY9E,EAAK8E,SAAShD,gBAAkBgD,IAI3D8Y,MAAS,SAAU5hB,GAClB,GAAIqlB,GAAU5E,EAAYzgB,EAAY,IAEtC,OAAOqlB,KACLA,EAAU,GAAIjE,QAAQ,MAAQvhB,GAAa,IAAMG,EAAY,IAAMH,GAAa,SACjF4gB,EAAYzgB,EAAW,SAAUgE,GAChC,MAAOqhB,GAAQlhB,KAAgC,gBAAnBH,GAAKhE,WAA0BgE,EAAKhE,WAA0C,mBAAtBgE,GAAK+B,cAAgC/B,EAAK+B,aAAa,UAAY,OAI1J+b,KAAQ,SAAU3nB,EAAMmrB,EAAUC,GACjC,MAAO,UAAUvhB,GAChB,GAAItG,GAASsc,EAAOrQ,KAAM3F,EAAM7J,EAEhC,OAAe,OAAVuD,EACgB,OAAb4nB,EAEFA,GAIN5nB,GAAU,GAEU,MAAb4nB,EAAmB5nB,IAAW6nB,EACvB,OAAbD,EAAoB5nB,IAAW6nB,EAClB,OAAbD,EAAoBC,GAAqC,IAA5B7nB,EAAOwZ,QAASqO,GAChC,OAAbD,EAAoBC,GAAS7nB,EAAOwZ,QAASqO,GAAU,GAC1C,OAAbD,EAAoBC,GAAS7nB,EAAOuB,OAAQsmB,EAAMnqB,UAAamqB,EAClD,OAAbD,GAAsB,IAAM5nB,EAAOkI,QAASub,GAAa,KAAQ,KAAMjK,QAASqO,GAAU,GAC7E,OAAbD,EAAoB5nB,IAAW6nB,GAAS7nB,EAAOuB,MAAO,EAAGsmB,EAAMnqB,OAAS,KAAQmqB,EAAQ,KACxF,IAZO,IAgBVvD,MAAS,SAAUxe,EAAMgiB,EAAM3I,EAAUzE,EAAOE,GAC/C,GAAImN,GAAgC,QAAvBjiB,EAAKvE,MAAO,EAAG,GAC3BymB,EAA+B,SAArBliB,EAAKvE,MAAO,IACtB0mB,EAAkB,YAATH,CAEV,OAAiB,KAAVpN,GAAwB,IAATE,EAGrB,SAAUtU,GACT,QAASA,EAAKiH,YAGf,SAAUjH,EAAM/J,EAASsjB,GACxB,GAAI1W,GAAO4W,EAAYoF,EAAMvG,EAAMsJ,EAAWhU,EAC7CrN,EAAMkhB,IAAWC,EAAU,cAAgB,kBAC3C/nB,EAASqG,EAAKiH,WACd9Q,EAAOwrB,GAAU3hB,EAAK8E,SAAShD,cAC/B+f,GAAYtI,IAAQoI,CAErB,IAAKhoB,EAAS,CAGb,GAAK8nB,EAAS,CACb,KAAQlhB,GAAM,CAEb,IADAse,EAAO7e,EACE6e,EAAOA,EAAMte,IACrB,GAAKohB,EAAS9C,EAAK/Z,SAAShD,gBAAkB3L,EAAyB,IAAlB0oB,EAAKtgB,SACzD,OAAO,CAITqP,GAAQrN,EAAe,SAATf,IAAoBoO,GAAS,cAE5C,OAAO,EAMR,GAHAA,GAAU8T,EAAU/nB,EAAO2L,WAAa3L,EAAOmoB,WAG1CJ,GAAWG,GAQf,IANApI,EAAa9f,EAAQgJ,KAAchJ,EAAQgJ,OAC3CE,EAAQ4W,EAAYja,OACpBoiB,EAAY/e,EAAM,KAAO8W,GAAW9W,EAAM,GAC1CyV,EAAOzV,EAAM,KAAO8W,GAAW9W,EAAM,GACrCgc,EAAO+C,GAAajoB,EAAOkL,WAAY+c,GAE9B/C,IAAS+C,GAAa/C,GAAQA,EAAMte,KAG3C+X,EAAOsJ,EAAY,IAAMhU,EAAMhR,OAGhC,GAAuB,IAAlBiiB,EAAKtgB,YAAoB+Z,GAAQuG,IAAS7e,EAAO,CACrDyZ,EAAYja,IAAWma,EAASiI,EAAWtJ,EAC3C,YAKI,IAAKuJ,IAAahf,GAAS7C,EAAM2C,KAAc3C,EAAM2C,QAAkBnD,KAAWqD,EAAM,KAAO8W,EACrGrB,EAAOzV,EAAM,OAKb,OAASgc,IAAS+C,GAAa/C,GAAQA,EAAMte,KAC3C+X,EAAOsJ,EAAY,IAAMhU,EAAMhR,UAEzB+kB,EAAS9C,EAAK/Z,SAAShD,gBAAkB3L,EAAyB,IAAlB0oB,EAAKtgB,cAAsB+Z,IAE5EuJ,KACHhD,EAAMlc,KAAckc,EAAMlc,QAAkBnD,IAAWma,EAASrB,IAG7DuG,IAAS7e,MASjB,MADAsY,IAAQhE,EACDgE,IAASlE,GAAWkE,EAAOlE,IAAU,GAAKkE,EAAOlE,GAAS,KAKrE2J,OAAU,SAAUgE,EAAQlJ,GAK3B,GAAI1E,GACHZ,EAAKoE,EAAKuF,QAAS6E,IAAYpK,EAAKoB,WAAYgJ,EAAOjgB,gBACtDkU,EAAO1D,MAAO,uBAAyByP,EAKzC,OAAKxO,GAAI5Q,GACD4Q,EAAIsF,GAIPtF,EAAGnc,OAAS,GAChB+c,GAAS4N,EAAQA,EAAQ,GAAIlJ,GACtBlB,EAAKoB,WAAW5f,eAAgB4oB,EAAOjgB,eAC7C+V,EAAa,SAAU5B,EAAMtM,GAI5B,IAHA,GAAIqY,GACHC,EAAU1O,EAAI0C,EAAM4C,GACpB5Y,EAAIgiB,EAAQ7qB,OACL6I,KACP+hB,EAAM9O,GAAS+C,EAAMgM,EAAQhiB,IAC7BgW,EAAM+L,KAAWrY,EAASqY,GAAQC,EAAQhiB,MAG5C,SAAUD,GACT,MAAOuT,GAAIvT,EAAM,EAAGmU,KAIhBZ,IAIT2J,SAECpd,IAAO+X,EAAa,SAAUvE,GAI7B,GAAIgM,MACH/iB,KACA2c,EAAUkD,EAAS9I,EAAS1R,QAAS4R,GAAO,MAE7C,OAAO0F,GAASvW,GACfkV,EAAa,SAAU5B,EAAMtM,EAAS1T,EAASsjB,GAM9C,IALA,GAAIvZ,GACHia,EAAYf,EAASjD,EAAM,KAAMsD,MACjCtZ,EAAIgW,EAAK7e,OAGF6I,MACDD,EAAOia,EAAUha,MACtBgW,EAAKhW,KAAO0J,EAAQ1J,GAAKD,MAI5B,SAAUA,EAAM/J,EAASsjB,GAKxB,MAJA+F,GAAM,GAAKtf,EACXkZ,EAASoG,EAAO,KAAM/F,EAAKhd,GAE3B+iB,EAAM,GAAK,MACH/iB,EAAQK,SAInB1G,IAAO2hB,EAAa,SAAUvE,GAC7B,MAAO,UAAUtT,GAChB,MAAOgW,GAAQ1C,EAAUtT,GAAO5I,OAAS,KAI3Cyf,SAAYgB,EAAa,SAAU7Q,GAElC,MADAA,GAAOA,EAAKpF,QAAS0c,GAAWC,IACzB,SAAUve,GAChB,OAASA,EAAK0gB,aAAe1gB,EAAKkiB,WAAahG,EAASlc,IAASkT,QAASlM,GAAS,MAWrFmb,KAAQtK,EAAc,SAAUsK,GAM/B,MAJM1E,IAAYtd,KAAKgiB,GAAQ,KAC9BnM,EAAO1D,MAAO,qBAAuB6P,GAEtCA,EAAOA,EAAKvgB,QAAS0c,GAAWC,IAAYzc,cACrC,SAAU9B,GAChB,GAAIoiB,EACJ,GACC,IAAMA,EAAW1L,EAChB1W,EAAKmiB,KACLniB,EAAK+B,aAAa,aAAe/B,EAAK+B,aAAa,QAGnD,MADAqgB,GAAWA,EAAStgB,cACbsgB,IAAaD,GAA2C,IAAnCC,EAASlP,QAASiP,EAAO,YAE5CniB,EAAOA,EAAKiH,aAAiC,IAAlBjH,EAAKzB,SAC3C,QAAO,KAKTqS,OAAU,SAAU5Q,GACnB,GAAIqiB,GAAO7jB,EAAO8jB,UAAY9jB,EAAO8jB,SAASD,IAC9C,OAAOA,IAAQA,EAAKpnB,MAAO,KAAQ+E,EAAK8C,IAGzCzL,KAAQ,SAAU2I,GACjB,MAAOA,KAASuc,GAGjBgG,MAAS,SAAUviB,GAClB,MAAOA,KAASd,EAAS4E,iBAAmB5E,EAASsjB,UAAYtjB,EAASsjB,gBAAkBxiB,EAAKR,MAAQQ,EAAKyiB,OAASziB,EAAK0iB,WAI7HC,QAAW,SAAU3iB,GACpB,MAAOA,GAAK4iB,YAAa,GAG1BA,SAAY,SAAU5iB,GACrB,MAAOA,GAAK4iB,YAAa,GAG1Bzd,QAAW,SAAUnF,GAGpB,GAAI8E,GAAW9E,EAAK8E,SAAShD,aAC7B,OAAqB,UAAbgD,KAA0B9E,EAAKmF,SAA0B,WAAbL,KAA2B9E,EAAKuH,UAGrFA,SAAY,SAAUvH,GAOrB,MAJKA,GAAKiH,YACTjH,EAAKiH,WAAW4b,cAGV7iB,EAAKuH,YAAa,GAI1BwF,MAAS,SAAU/M,GAKlB,IAAMA,EAAOA,EAAKsF,WAAYtF,EAAMA,EAAOA,EAAKyY,YAC/C,GAAKzY,EAAKzB,SAAW,EACpB,OAAO,CAGT,QAAO,GAGR5E,OAAU,SAAUqG,GACnB,OAAQ2X,EAAKuF,QAAe,MAAGld,IAIhC8iB,OAAU,SAAU9iB,GACnB,MAAOoe,IAAQje,KAAMH,EAAK8E,WAG3Bwa,MAAS,SAAUtf,GAClB,MAAOme,IAAQhe,KAAMH,EAAK8E,WAG3Bie,OAAU,SAAU/iB,GACnB,GAAI7J,GAAO6J,EAAK8E,SAAShD,aACzB,OAAgB,UAAT3L,GAAkC,WAAd6J,EAAKR,MAA8B,WAATrJ,GAGtD6Q,KAAQ,SAAUhH,GACjB,GAAI2F,EACJ,OAAuC,UAAhC3F,EAAK8E,SAAShD,eACN,SAAd9B,EAAKR,OAImC,OAArCmG,EAAO3F,EAAK+B,aAAa,UAA2C,SAAvB4D,EAAK7D,gBAIvDsS,MAASwE,EAAuB,WAC/B,OAAS,KAGVtE,KAAQsE,EAAuB,SAAUE,EAAc1hB,GACtD,OAASA,EAAS,KAGnBid,GAAMuE,EAAuB,SAAUE,EAAc1hB,EAAQyhB,GAC5D,OAAoB,EAAXA,EAAeA,EAAWzhB,EAASyhB,KAG7CmK,KAAQpK,EAAuB,SAAUE,EAAc1hB,GAEtD,IADA,GAAI6I,GAAI,EACI7I,EAAJ6I,EAAYA,GAAK,EACxB6Y,EAAapc,KAAMuD,EAEpB,OAAO6Y,KAGRmK,IAAOrK,EAAuB,SAAUE,EAAc1hB,GAErD,IADA,GAAI6I,GAAI,EACI7I,EAAJ6I,EAAYA,GAAK,EACxB6Y,EAAapc,KAAMuD,EAEpB,OAAO6Y,KAGRoK,GAAMtK,EAAuB,SAAUE,EAAc1hB,EAAQyhB,GAE5D,IADA,GAAI5Y,GAAe,EAAX4Y,EAAeA,EAAWzhB,EAASyhB,IACjC5Y,GAAK,GACd6Y,EAAapc,KAAMuD,EAEpB,OAAO6Y,KAGRqK,GAAMvK,EAAuB,SAAUE,EAAc1hB,EAAQyhB,GAE5D,IADA,GAAI5Y,GAAe,EAAX4Y,EAAeA,EAAWzhB,EAASyhB,IACjC5Y,EAAI7I,GACb0hB,EAAapc,KAAMuD,EAEpB,OAAO6Y,OAKVnB,EAAKuF,QAAa,IAAIvF,EAAKuF,QAAY,EAGvC,KAAMjd,KAAOmjB,OAAO,EAAMC,UAAU,EAAMC,MAAM,EAAMC,UAAU,EAAMC,OAAO,GAC5E7L,EAAKuF,QAASjd,GAAMyY,EAAmBzY,EAExC,KAAMA,KAAOwjB,QAAQ,EAAMC,OAAO,GACjC/L,EAAKuF,QAASjd,GAAM0Y,EAAoB1Y,EA4lBzC,OAvlBA8Y,GAAWjhB,UAAY6f,EAAKgM,QAAUhM,EAAKuF,QAC3CvF,EAAKoB,WAAa,GAAIA,GAEtB9B,EAAWjB,EAAOiB,SAAW,SAAU3D,EAAUsQ,GAChD,GAAI3B,GAASrhB,EAAOoY,EAAQxZ,EAC3BqkB,EAAO1N,EAAQ2N,EACfC,EAASrH,EAAYpJ,EAAW,IAEjC,IAAKyQ,EACJ,MAAOH,GAAY,EAAIG,EAAO9oB,MAAO,EAOtC,KAJA4oB,EAAQvQ,EACR6C,KACA2N,EAAanM,EAAK0C,UAEVwJ,GAAQ,GAGT5B,IAAYrhB,EAAQyc,GAAOvX,KAAM+d,OACjCjjB,IAEJijB,EAAQA,EAAM5oB,MAAO2F,EAAM,GAAGxJ,SAAYysB,GAE3C1N,EAAOzZ,KAAOsc,OAGfiJ,GAAU,GAGJrhB,EAAQ0c,GAAaxX,KAAM+d,MAChC5B,EAAUrhB,EAAM2Q,QAChByH,EAAOtc,MACNpG,MAAO2rB,EAEPziB,KAAMoB,EAAM,GAAGgB,QAAS4R,GAAO,OAEhCqQ,EAAQA,EAAM5oB,MAAOgnB,EAAQ7qB,QAI9B,KAAMoI,IAAQmY,GAAK7a,SACZ8D,EAAQ8c,GAAWle,GAAOsG,KAAM+d,KAAcC,EAAYtkB,MAC9DoB,EAAQkjB,EAAYtkB,GAAQoB,MAC7BqhB,EAAUrhB,EAAM2Q,QAChByH,EAAOtc,MACNpG,MAAO2rB,EACPziB,KAAMA,EACNmK,QAAS/I,IAEVijB,EAAQA,EAAM5oB,MAAOgnB,EAAQ7qB,QAI/B,KAAM6qB,EACL,MAOF,MAAO2B,GACNC,EAAMzsB,OACNysB,EACC7N,EAAO1D,MAAOgB,GAEdoJ,EAAYpJ,EAAU6C,GAASlb,MAAO,IAwWzCmhB,EAAUpG,EAAOoG,QAAU,SAAU9I,EAAU1S,GAC9C,GAAIX,GACHub,KACAD,KACAwI,EAASpH,EAAerJ,EAAW,IAEpC,KAAMyQ,EAAS,CAMd,IAJMnjB,IACLA,EAAQqW,EAAU3D,IAEnBrT,EAAIW,EAAMxJ,OACF6I,KACP8jB,EAASjJ,EAAmBla,EAAMX,IAC7B8jB,EAAQphB,GACZ6Y,EAAY9e,KAAMqnB,GAElBxI,EAAgB7e,KAAMqnB,EAKxBA,GAASpH,EAAerJ,EAAUgI,EAA0BC,EAAiBC,IAG7EuI,EAAOzQ,SAAWA,EAEnB,MAAOyQ,IAYRvM,EAASxB,EAAOwB,OAAS,SAAUlE,EAAUrd,EAASsG,EAAS0Z,GAC9D,GAAIhW,GAAG+Y,EAAQgL,EAAOxkB,EAAMkG,EAC3Bue,EAA+B,kBAAb3Q,IAA2BA,EAC7C1S,GAASqV,GAAQgB,EAAW3D,EAAW2Q,EAAS3Q,UAAYA,EAK7D,IAHA/W,EAAUA,MAGY,IAAjBqE,EAAMxJ,OAAe,CAIzB,GADA4hB,EAASpY,EAAM,GAAKA,EAAM,GAAG3F,MAAO,GAC/B+d,EAAO5hB,OAAS,GAAkC,QAA5B4sB,EAAQhL,EAAO,IAAIxZ,MAC5CiE,EAAQyb,SAAgC,IAArBjpB,EAAQsI,UAAkBmY,GAC7CiB,EAAKsD,SAAUjC,EAAO,GAAGxZ,MAAS,CAGnC,GADAvJ,GAAY0hB,EAAKjS,KAAS,GAAGse,EAAMra,QAAQ,GAAG/H,QAAQ0c,GAAWC,IAAYtoB,QAAkB,IACzFA,EACL,MAAOsG,EAGI0nB,KACXhuB,EAAUA,EAAQgR,YAGnBqM,EAAWA,EAASrY,MAAO+d,EAAOzH,QAAQjb,MAAMc,QAKjD,IADA6I,EAAIyd,GAAwB,aAAEvd,KAAMmT,GAAa,EAAI0F,EAAO5hB,OACpD6I,MACP+jB,EAAQhL,EAAO/Y,IAGV0X,EAAKsD,SAAWzb,EAAOwkB,EAAMxkB,QAGlC,IAAMkG,EAAOiS,EAAKjS,KAAMlG,MAEjByW,EAAOvQ,EACZse,EAAMra,QAAQ,GAAG/H,QAAS0c,GAAWC,IACrClH,GAASlX,KAAM6Y,EAAO,GAAGxZ,OAAU8X,EAAarhB,EAAQgR,aAAgBhR,IACpE,CAKJ,GAFA+iB,EAAOtE,OAAQzU,EAAG,GAClBqT,EAAW2C,EAAK7e,QAAUggB,EAAY4B,IAChC1F,EAEL,MADA5W,GAAKmM,MAAOtM,EAAS0Z,GACd1Z,CAGR,QAeJ,OAPE0nB,GAAY7H,EAAS9I,EAAU1S,IAChCqV,EACAhgB,GACCygB,EACDna,EACA8a,GAASlX,KAAMmT,IAAcgE,EAAarhB,EAAQgR,aAAgBhR,GAE5DsG,GAMRkH,EAAQgd,WAAa9d,EAAQpH,MAAM,IAAIkZ,KAAMmI,GAAYjgB,KAAK,MAAQgG,EAItEc,EAAQ+c,mBAAqBlE,EAG7B7F,IAIAhT,EAAQwc,aAAenI,EAAO,SAAUoM,GAEvC,MAAuE,GAAhEA,EAAKrE,wBAAyB3gB,EAASmF,cAAc,UAMvDyT,EAAO,SAAUC,GAEtB,MADAA,GAAI3Q,UAAY,mBAC+B,MAAxC2Q,EAAIzS,WAAWvD,aAAa,WAEnCkW,EAAW,yBAA0B,SAAUjY,EAAM7J,EAAMgmB,GAC1D,MAAMA,GAAN,OACQnc,EAAK+B,aAAc5L,EAA6B,SAAvBA,EAAK2L,cAA2B,EAAI,KAOjE2B,EAAQwZ,YAAenF,EAAO,SAAUC,GAG7C,MAFAA,GAAI3Q,UAAY,WAChB2Q,EAAIzS,WAAW6R,aAAc,QAAS,IACY,KAA3CY,EAAIzS,WAAWvD,aAAc,YAEpCkW,EAAW,QAAS,SAAUjY,EAAM7J,EAAMgmB,GACzC,MAAMA,IAAyC,UAAhCnc,EAAK8E,SAAShD,cAA7B,OACQ9B,EAAKwH,eAOTsQ,EAAO,SAAUC,GACtB,MAAuC,OAAhCA,EAAIhW,aAAa,eAExBkW,EAAW6E,GAAU,SAAU9c,EAAM7J,EAAMgmB,GAC1C,GAAIjS,EACJ,OAAMiS,GAAN,OACQnc,EAAM7J,MAAW,EAAOA,EAAK2L,eACjCoI,EAAMlK,EAAKqf,iBAAkBlpB,KAAW+T,EAAIoW,UAC7CpW,EAAI5T,MACL,OAKG0f,GAEHxX,EAIJiB,IAAOiG,KAAOsQ,GACdvW,GAAO4gB,KAAOrK,GAAO4K,UACrBnhB,GAAO4gB,KAAK,KAAO5gB,GAAO4gB,KAAKnD,QAC/Bzd,GAAO0kB,OAASnO,GAAOiG,WACvBxc,GAAOuH,KAAOgP,GAAOkG,QACrBzc,GAAO2kB,SAAWpO,GAAOmG,MACzB1c,GAAOoX,SAAWb,GAAOa,QAIzB,IAAIwN,IAAgB5kB,GAAO4gB,KAAKzf,MAAMsd,aAElCoG,GAAa,6BAIbpkB,GAAY,gBAgChBT,IAAO3C,OAAS,SAAUujB,EAAM7b,EAAO1E,GACtC,GAAIE,GAAOwE,EAAO,EAMlB,OAJK1E,KACJugB,EAAO,QAAUA,EAAO,KAGD,IAAjB7b,EAAMpN,QAAkC,IAAlB4I,EAAKzB,SACjCkB,GAAOiG,KAAK6Z,gBAAiBvf,EAAMqgB,IAAWrgB,MAC9CP,GAAOiG,KAAKiE,QAAS0W,EAAM5gB,GAAOM,KAAMyE,EAAO,SAAUxE,GACxD,MAAyB,KAAlBA,EAAKzB,aAIfkB,GAAO8T,GAAGrQ,QACTwC,KAAM,SAAU4N,GACf,GAAIrT,GACHuC,KACA+hB,EAAO9qB,KACP8a,EAAMgQ,EAAKntB,MAEZ,IAAyB,gBAAbkc,GACX,MAAO7Z,MAAKwa,UAAWxU,GAAQ6T,GAAWxW,OAAO,WAChD,IAAMmD,EAAI,EAAOsU,EAAJtU,EAASA,IACrB,GAAKR,GAAOoX,SAAU0N,EAAMtkB,GAAKxG,MAChC,OAAO,IAMX,KAAMwG,EAAI,EAAOsU,EAAJtU,EAASA,IACrBR,GAAOiG,KAAM4N,EAAUiR,EAAMtkB,GAAKuC,EAMnC,OAFAA,GAAM/I,KAAKwa,UAAWM,EAAM,EAAI9U,GAAO0kB,OAAQ3hB,GAAQA,GACvDA,EAAI8Q,SAAW7Z,KAAK6Z,SAAW7Z,KAAK6Z,SAAW,IAAMA,EAAWA,EACzD9Q,GAER1F,OAAQ,SAAUwW,GACjB,MAAO7Z,MAAKwa,UAAWtU,EAAOlG,KAAM6Z,OAAgB,KAErDxT,IAAK,SAAUwT,GACd,MAAO7Z,MAAKwa,UAAWtU,EAAOlG,KAAM6Z,OAAgB,KAErDkR,GAAI,SAAUlR,GACb,QAAS3T,EACRlG,KAIoB,gBAAb6Z,IAAyB+Q,GAAclkB,KAAMmT,GACnD7T,GAAQ6T,GACRA,OACD,GACClc,SASJ,IAAIqtB,IAGHvlB,GAAWV,EAAOU,SAKlByX,GAAa,sCAEbzL,GAAOzL,GAAO8T,GAAGrI,KAAO,SAAUoI,EAAUrd,GAC3C,GAAI2K,GAAOZ,CAGX,KAAMsT,EACL,MAAO7Z,KAIR,IAAyB,gBAAb6Z,GAAwB,CAUnC,GAPC1S,EAF2B,MAAvB0S,EAAS5X,OAAO,IAAyD,MAA3C4X,EAAS5X,OAAQ4X,EAASlc,OAAS,IAAekc,EAASlc,QAAU,GAE7F,KAAMkc,EAAU,MAGlBqD,GAAW7Q,KAAMwN,IAIrB1S,IAAUA,EAAM,IAAO3K,EAsDrB,OAAMA,GAAWA,EAAQ6d,QACtB7d,GAAWwuB,IAAa/e,KAAM4N,GAKhC7Z,KAAKJ,YAAapD,GAAUyP,KAAM4N,EAzDzC,IAAK1S,EAAM,GAAK,CAYf,GAXA3K,EAAUA,YAAmBwJ,IAASxJ,EAAQ,GAAKA,EAInDwJ,GAAOsF,MAAOtL,KAAMgG,GAAOilB,UAC1B9jB,EAAM,GACN3K,GAAWA,EAAQsI,SAAWtI,EAAQuP,eAAiBvP,EAAUiJ,IACjE,IAIIolB,GAAWnkB,KAAMS,EAAM,KAAQnB,GAAOqV,cAAe7e,GACzD,IAAM2K,IAAS3K,GAETwJ,GAAOvF,WAAYT,KAAMmH,IAC7BnH,KAAMmH,GAAS3K,EAAS2K,IAIxBnH,KAAKkM,KAAM/E,EAAO3K,EAAS2K,GAK9B,OAAOnH,MAQP,GAJAuG,EAAOd,GAAS0X,eAAgBhW,EAAM,IAIjCZ,GAAQA,EAAKiH,WAAa,CAG9B,GAAKjH,EAAK8C,KAAOlC,EAAM,GACtB,MAAO6jB,IAAW/e,KAAM4N,EAIzB7Z,MAAKrC,OAAS,EACdqC,KAAK,GAAKuG,EAKX,MAFAvG,MAAKxD,QAAUiJ,GACfzF,KAAK6Z,SAAWA,EACT7Z,KAcH,MAAK6Z,GAAS/U,UACpB9E,KAAKxD,QAAUwD,KAAK,GAAK6Z,EACzB7Z,KAAKrC,OAAS,EACPqC,MAIIgG,GAAOvF,WAAYoZ,GACK,mBAArBmR,IAAWljB,MACxBkjB,GAAWljB,MAAO+R,GAElBA,EAAU7T,KAGekC,SAAtB2R,EAASA,WACb7Z,KAAK6Z,SAAWA,EAASA,SACzB7Z,KAAKxD,QAAUqd,EAASrd,SAGlBwJ,GAAO+V,UAAWlC,EAAU7Z,OAIrCyR,IAAKpT,UAAY2H,GAAO8T,GAGxBkR,GAAahlB,GAAQP,GAGrB,IAAIylB,IAAe,iCAElBC,IACCC,UAAU,EACVvT,UAAU,EACVwT,MAAM,EACN5S,MAAM,EAGRzS,IAAOyD,QACN3C,IAAK,SAAUP,EAAMO,EAAKwkB,GAIzB,IAHA,GAAI9C,MACH3hB,EAAMN,EAAMO,GAELD,GAAwB,IAAjBA,EAAI/B,WAA6BoD,SAAVojB,GAAwC,IAAjBzkB,EAAI/B,WAAmBkB,GAAQa,GAAMkkB,GAAIO,KAC/E,IAAjBzkB,EAAI/B,UACR0jB,EAAQvlB,KAAM4D,GAEfA,EAAMA,EAAIC,EAEX,OAAO0hB,IAGR5hB,QAAS,SAAU2kB,EAAGhlB,GAGrB,IAFA,GAAIilB,MAEID,EAAGA,EAAIA,EAAEvM,YACI,IAAfuM,EAAEzmB,UAAkBymB,IAAMhlB,GAC9BilB,EAAEvoB,KAAMsoB,EAIV,OAAOC,MAITxlB,GAAO8T,GAAGrQ,QACThN,IAAK,SAAU0a,GACd,GAAI3Q,GACHilB,EAAUzlB,GAAQmR,EAAQnX,MAC1B8a,EAAM2Q,EAAQ9tB,MAEf,OAAOqC,MAAKqD,OAAO,WAClB,IAAMmD,EAAI,EAAOsU,EAAJtU,EAASA,IACrB,GAAKR,GAAOoX,SAAUpd,KAAMyrB,EAAQjlB,IACnC,OAAO,KAMXklB,QAAS,SAAUvE,EAAW3qB,GAS7B,IARA,GAAIqK,GACHL,EAAI,EACJsG,EAAI9M,KAAKrC,OACT6qB,KACAmD,EAAMf,GAAclkB,KAAMygB,IAAoC,gBAAdA,GAC/CnhB,GAAQmhB,EAAW3qB,GAAWwD,KAAKxD,SACnC,EAEUsQ,EAAJtG,EAAOA,IACd,IAAMK,EAAM7G,KAAKwG,GAAIK,GAAOA,IAAQrK,EAASqK,EAAMA,EAAI2G,WAEtD,GAAK3G,EAAI/B,SAAW,KAAO6mB,EAC1BA,EAAIhqB,MAAMkF,GAAO,GAGA,IAAjBA,EAAI/B,UACHkB,GAAOiG,KAAK6Z,gBAAgBjf,EAAKsgB,IAAc,CAEhDqB,EAAQvlB,KAAM4D,EACd,OAKH,MAAO7G,MAAKwa,UAAWgO,EAAQ7qB,OAAS,EAAIqI,GAAO0kB,OAAQlC,GAAYA,IAKxE7mB,MAAO,SAAU4E,GAGhB,MAAMA,GAKe,gBAATA,GACJP,GAAOW,QAAS3G,KAAK,GAAIgG,GAAQO,IAIlCP,GAAOW,QAEbJ,EAAK8T,OAAS9T,EAAK,GAAKA,EAAMvG,MAXrBA,KAAK,IAAMA,KAAK,GAAGwN,WAAexN,KAAK2a,QAAQiR,UAAUjuB,OAAS,IAc7EwP,IAAK,SAAU0M,EAAUrd,GACxB,MAAOwD,MAAKwa,UACXxU,GAAO0kB,OACN1kB,GAAOsF,MAAOtL,KAAKqE,MAAO2B,GAAQ6T,EAAUrd,OAK/CqvB,QAAS,SAAUhS,GAClB,MAAO7Z,MAAKmN,IAAiB,MAAZ0M,EAChB7Z,KAAKya,WAAaza,KAAKya,WAAWpX,OAAOwW,OAa5C7T,GAAOkB,MACNhH,OAAQ,SAAUqG,GACjB,GAAIrG,GAASqG,EAAKiH,UAClB,OAAOtN,IAA8B,KAApBA,EAAO4E,SAAkB5E,EAAS,MAEpD4rB,QAAS,SAAUvlB,GAClB,MAAOP,IAAOc,IAAKP,EAAM,eAE1BwlB,aAAc,SAAUxlB,EAAMC,EAAG8kB,GAChC,MAAOtlB,IAAOc,IAAKP,EAAM,aAAc+kB,IAExCD,KAAM,SAAU9kB,GACf,MAAOK,GAASL,EAAM,gBAEvBkS,KAAM,SAAUlS,GACf,MAAOK,GAASL,EAAM,oBAEvBylB,QAAS,SAAUzlB,GAClB,MAAOP,IAAOc,IAAKP,EAAM,gBAE1BqlB,QAAS,SAAUrlB,GAClB,MAAOP,IAAOc,IAAKP,EAAM,oBAE1B0lB,UAAW,SAAU1lB,EAAMC,EAAG8kB,GAC7B,MAAOtlB,IAAOc,IAAKP,EAAM,cAAe+kB,IAEzCY,UAAW,SAAU3lB,EAAMC,EAAG8kB,GAC7B,MAAOtlB,IAAOc,IAAKP,EAAM,kBAAmB+kB,IAE7Ca,SAAU,SAAU5lB,GACnB,MAAOP,IAAOY,SAAWL,EAAKiH,gBAAmB3B,WAAYtF,IAE9D6kB,SAAU,SAAU7kB,GACnB,MAAOP,IAAOY,QAASL,EAAKsF,aAE7BgM,SAAU,SAAUtR,GACnB,MAAOP,IAAOqF,SAAU9E,EAAM,UAC7BA,EAAKsI,iBAAmBtI,EAAKqI,cAAcnJ,SAC3CO,GAAOsF,SAAW/E,EAAK6E,cAEvB,SAAU1O,EAAMod,GAClB9T,GAAO8T,GAAIpd,GAAS,SAAU4uB,EAAOzR,GACpC,GAAI9Q,GAAM/C,GAAO8D,IAAK9J,KAAM8Z,EAAIwR,EAsBhC,OApB0B,UAArB5uB,EAAK8E,MAAO,MAChBqY,EAAWyR,GAGPzR,GAAgC,gBAAbA,KACvB9Q,EAAM/C,GAAO3C,OAAQwW,EAAU9Q,IAG3B/I,KAAKrC,OAAS,IAEZwtB,GAAkBzuB,KACvBqM,EAAM/C,GAAO0kB,OAAQ3hB,IAIjBmiB,GAAaxkB,KAAMhK,KACvBqM,EAAMA,EAAIqjB,YAILpsB,KAAKwa,UAAWzR,KAGzB,IAAI3B,IAAY,OAKZH,KAiCJjB,IAAOqmB,UAAY,SAAUrlB,GAI5BA,EAA6B,gBAAZA,GACdC,GAAcD,IAAaD,EAAeC,GAC5ChB,GAAOyD,UAAYzC,EAEpB,IACCslB,GAEAC,EAEAC,EAEAC,EAEAC,EAEAC,EAEAniB,KAEAlI,GAAS0E,EAAQ4lB,SAEjBrZ,EAAO,SAAUtL,GAOhB,IANAskB,EAASvlB,EAAQulB,QAAUtkB,EAC3BukB,GAAQ,EACRE,EAAcC,GAAe,EAC7BA,EAAc,EACdF,EAAejiB,EAAK7M,OACpB2uB,GAAS,EACD9hB,GAAsBiiB,EAAdC,EAA4BA,IAC3C,GAAKliB,EAAMkiB,GAActd,MAAOnH,EAAM,GAAKA,EAAM,OAAU,GAASjB,EAAQ6lB,YAAc,CACzFN,GAAS,CACT,OAGFD,GAAS,EACJ9hB,IACClI,EACCA,EAAM3E,QACV4V,EAAMjR,EAAMwV,SAEFyU,EACX/hB,KAEAsgB,EAAKgC,YAKRhC,GAEC3d,IAAK,WACJ,GAAK3C,EAAO,CAEX,GAAI2J,GAAQ3J,EAAK7M,QACjB,QAAUwP,GAAKuN,GACd1U,GAAOkB,KAAMwT,EAAM,SAAUrT,EAAGgV,GAC/B,GAAItW,GAAOC,GAAOD,KAAMsW,EACV,cAATtW,EACEiB,EAAQ0jB,QAAWI,EAAKruB,IAAK4f,IAClC7R,EAAKvH,KAAMoZ,GAEDA,GAAOA,EAAI1e,QAAmB,WAAToI,GAEhCoH,EAAKkP,MAGJhN,WAGCid,EACJG,EAAejiB,EAAK7M,OAGT4uB,IACXI,EAAcxY,EACdZ,EAAMgZ,IAGR,MAAOvsB,OAGR+sB,OAAQ,WAkBP,MAjBKviB,IACJxE,GAAOkB,KAAMmI,UAAW,SAAUhI,EAAGgV,GAEpC,IADA,GAAI1a,IACMA,EAAQqE,GAAOW,QAAS0V,EAAK7R,EAAM7I,IAAY,IACxD6I,EAAKyQ,OAAQtZ,EAAO,GAEf2qB,IACUG,GAAT9qB,GACJ8qB,IAEaC,GAAT/qB,GACJ+qB,OAME1sB,MAIRvD,IAAK,SAAUqd,GACd,MAAOA,GAAK9T,GAAOW,QAASmT,EAAItP,GAAS,MAASA,IAAQA,EAAK7M,SAGhE2V,MAAO,WAGN,MAFA9I,MACAiiB,EAAe,EACRzsB,MAGR8sB,QAAS,WAER,MADAtiB,GAAOlI,EAAQiqB,EAASrkB,OACjBlI,MAGRmpB,SAAU,WACT,OAAQ3e,GAGTwiB,KAAM,WAKL,MAJA1qB,GAAQ4F,OACFqkB,GACLzB,EAAKgC,UAEC9sB,MAGRitB,OAAQ,WACP,OAAQ3qB,GAGT4qB,SAAU,SAAU1wB,EAASke,GAU5B,OATKlQ,GAAWgiB,IAASlqB,IACxBoY,EAAOA,MACPA,GAASle,EAASke,EAAKlZ,MAAQkZ,EAAKlZ,QAAUkZ,GACzC4R,EACJhqB,EAAMW,KAAMyX,GAEZnH,EAAMmH,IAGD1a,MAGRuT,KAAM,WAEL,MADAuX,GAAKoC,SAAUltB,KAAMqP,WACdrP,MAGRwsB,MAAO,WACN,QAASA,GAIZ,OAAO1B,IAIR9kB,GAAOyD,QAENmL,SAAU,SAAU0B,GACnB,GAAI6W,KAEA,UAAW,OAAQnnB,GAAOqmB,UAAU,eAAgB,aACpD,SAAU,OAAQrmB,GAAOqmB,UAAU,eAAgB,aACnD,SAAU,WAAYrmB,GAAOqmB,UAAU,YAE1CzT,EAAQ,UACRpD,GACCoD,MAAO,WACN,MAAOA,IAERpF,OAAQ,WAEP,MADAmB,GAASX,KAAM3E,WAAY6G,KAAM7G,WAC1BrP,MAERotB,KAAM,WACL,GAAIC,GAAMhe,SACV,OAAOrJ,IAAO4O,SAAS,SAAU0Y,GAChCtnB,GAAOkB,KAAMimB,EAAQ,SAAU3mB,EAAG+mB,GACjC,GAAIzT,GAAK9T,GAAOvF,WAAY4sB,EAAK7mB,KAAS6mB,EAAK7mB,EAE/CmO,GAAU4Y,EAAM,IAAK,WACpB,GAAIC,GAAW1T,GAAMA,EAAG1K,MAAOpP,KAAMqP,UAChCme,IAAYxnB,GAAOvF,WAAY+sB,EAAShY,SAC5CgY,EAAShY,UACPxB,KAAMsZ,EAASG,SACfvX,KAAMoX,EAASI,QACf1X,SAAUsX,EAASK,QAErBL,EAAUC,EAAO,GAAM,QAAUvtB,OAASwV,EAAU8X,EAAS9X,UAAYxV,KAAM8Z,GAAO0T,GAAane,eAItGge,EAAM,OACJ7X,WAIJA,QAAS,SAAU1P,GAClB,MAAc,OAAPA,EAAcE,GAAOyD,OAAQ3D,EAAK0P,GAAYA,IAGvDb,IAwCD,OArCAa,GAAQoY,KAAOpY,EAAQ4X,KAGvBpnB,GAAOkB,KAAMimB,EAAQ,SAAU3mB,EAAG+mB,GACjC,GAAI/iB,GAAO+iB,EAAO,GACjBM,EAAcN,EAAO,EAGtB/X,GAAS+X,EAAM,IAAO/iB,EAAK2C,IAGtB0gB,GACJrjB,EAAK2C,IAAI,WAERyL,EAAQiV,GAGNV,EAAY,EAAJ3mB,GAAS,GAAIsmB,QAASK,EAAQ,GAAK,GAAIH,MAInDrY,EAAU4Y,EAAM,IAAO,WAEtB,MADA5Y,GAAU4Y,EAAM,GAAK,QAAUvtB,OAAS2U,EAAWa,EAAUxV,KAAMqP,WAC5DrP,MAER2U,EAAU4Y,EAAM,GAAK,QAAW/iB,EAAK0iB,WAItC1X,EAAQA,QAASb,GAGZ2B,GACJA,EAAKnW,KAAMwU,EAAUA,GAIfA,GAIRmZ,KAAM,SAAUC,GACf,GAwBCC,GAAgBC,EAAkBC,EAxB/B1nB,EAAI,EACP2nB,EAAgB3sB,EAAMrB,KAAMkP,WAC5B1R,EAASwwB,EAAcxwB,OAGvBoX,EAAuB,IAAXpX,GAAkBowB,GAAe/nB,GAAOvF,WAAYstB,EAAYvY,SAAc7X,EAAS,EAGnGgX,EAAyB,IAAdI,EAAkBgZ,EAAc/nB,GAAO4O,WAGlDwZ,EAAa,SAAU5nB,EAAG8Z,EAAUxQ,GACnC,MAAO,UAAUjT,GAChByjB,EAAU9Z,GAAMxG,KAChB8P,EAAQtJ,GAAM6I,UAAU1R,OAAS,EAAI6D,EAAMrB,KAAMkP,WAAcxS,EAC1DiT,IAAWke,EACfrZ,EAASW,WAAYgL,EAAUxQ,KAEhBiF,GACfJ,EAASY,YAAa+K,EAAUxQ,IAQpC,IAAKnS,EAAS,EAIb,IAHAqwB,EAAiB,GAAIvS,OAAO9d,GAC5BswB,EAAmB,GAAIxS,OAAO9d,GAC9BuwB,EAAkB,GAAIzS,OAAO9d,GACjBA,EAAJ6I,EAAYA,IACd2nB,EAAe3nB,IAAOR,GAAOvF,WAAY0tB,EAAe3nB,GAAIgP,SAChE2Y,EAAe3nB,GAAIgP,UACjBxB,KAAMoa,EAAY5nB,EAAG0nB,EAAiBC,IACtCjY,KAAMvB,EAAS+Y,QACf1X,SAAUoY,EAAY5nB,EAAGynB,EAAkBD,MAE3CjZ,CAUL,OAJMA,IACLJ,EAASY,YAAa2Y,EAAiBC,GAGjCxZ,EAASa,YAMlB,IAAI6Y,GAEJroB,IAAO8T,GAAGhS,MAAQ,SAAUgS,GAI3B,MAFA9T,IAAO8B,MAAM0N,UAAUxB,KAAM8F,GAEtB9Z,MAGRgG,GAAOyD,QAEN8R,SAAS,EAIT+S,UAAW,EAGXC,UAAW,SAAUC,GACfA,EACJxoB,GAAOsoB,YAEPtoB,GAAO8B,OAAO,IAKhBA,MAAO,SAAU2mB,GAGhB,GAAKA,KAAS,KAASzoB,GAAOsoB,WAAYtoB,GAAOuV,QAAjD,CAKA,IAAM9V,GAAS2I,KACd,MAAOuD,YAAY3L,GAAO8B,MAI3B9B,IAAOuV,SAAU,EAGZkT,KAAS,KAAUzoB,GAAOsoB,UAAY,IAK3CD,GAAU9Y,YAAa9P,IAAYO,KAG9BA,GAAO8T,GAAG4U,iBACd1oB,GAAQP,IAAWipB,eAAgB,SACnC1oB,GAAQP,IAAWkpB,IAAK,eA8B3B3oB,GAAO8B,MAAM0N,QAAU,SAAU1P,GAChC,IAAMuoB,GAOL,GALAA,GAAYroB,GAAO4O,WAKU,aAAxBnP,GAASoC,WAEb8J,WAAY3L,GAAO8B,WAGb,IAAKrC,GAAS+B,iBAEpB/B,GAAS+B,iBAAkB,mBAAoBE,GAAW,GAG1D3C,EAAOyC,iBAAkB,OAAQE,GAAW,OAGtC,CAENjC,GAAS8f,YAAa,qBAAsB7d,GAG5C3C,EAAOwgB,YAAa,SAAU7d,EAI9B,IAAI4d,IAAM,CAEV,KACCA,EAA6B,MAAvBvgB,EAAO6pB,cAAwBnpB,GAASkJ,gBAC7C,MAAMlG,IAEH6c,GAAOA,EAAIuJ,WACf,QAAUC,KACT,IAAM9oB,GAAOuV,QAAU,CAEtB,IAGC+J,EAAIuJ,SAAS,QACZ,MAAMpmB,GACP,MAAOkJ,YAAYmd,EAAe,IAInCvnB,IAGAvB,GAAO8B,YAMZ,MAAOumB,IAAU7Y,QAAS1P,GAI3B,IAMIU,IANA0E,GAAe,WAOnB,KAAM1E,KAAKR,IAAQgE,IAClB,KAEDA,IAAQ2R,QAAgB,MAANnV,GAIlBwD,GAAQ4J,wBAAyB,EAGjC5N,GAAO,WAEN,GAAIyK,GAAK6N,EAAKlQ,EAAM2gB,CAEpB3gB,GAAO3I,GAASwF,qBAAsB,QAAU,GAC1CmD,GAASA,EAAKF,QAMpBoQ,EAAM7Y,GAASmF,cAAe,OAC9BmkB,EAAYtpB,GAASmF,cAAe,OACpCmkB,EAAU7gB,MAAM8gB,QAAU,iEAC1B5gB,EAAKtC,YAAaijB,GAAYjjB,YAAawS,SAE/BA,GAAIpQ,MAAM2F,OAAS3I,KAK9BoT,EAAIpQ,MAAM8gB,QAAU,gEAEpBhlB,GAAQ4J,uBAAyBnD,EAA0B,IAApB6N,EAAIzN,YACtCJ,IAIJrC,EAAKF,MAAM2F,KAAO,IAIpBzF,EAAKmQ,YAAawQ,MAMnB,WACC,GAAIzQ,GAAM7Y,GAASmF,cAAe,MAGlC,IAA6B,MAAzBZ,GAAQC,cAAuB,CAElCD,GAAQC,eAAgB,CACxB,WACQqU,GAAI5X,KACV,MAAO+B,GACRuB,GAAQC,eAAgB,GAK1BqU,EAAM,QAOPtY,GAAO8C,WAAa,SAAUvC,GAC7B,GAAI0oB,GAASjpB,GAAOipB,QAAS1oB,EAAK8E,SAAW,KAAKhD,eACjDvD,GAAYyB,EAAKzB,UAAY,CAG9B,OAAoB,KAAbA,GAA+B,IAAbA,GACxB,GAGCmqB,GAAUA,KAAW,GAAQ1oB,EAAK+B,aAAa,aAAe2mB,EAIjE,IAAI1mB,IAAS,gCACZH,GAAa,UAqOdpC,IAAOyD,QACNL,SAIA6lB,QACCC,WAAW,EACXC,UAAU,EAEVC,UAAW,8CAGZviB,QAAS,SAAUtG,GAElB,MADAA,GAAOA,EAAKzB,SAAWkB,GAAOoD,MAAO7C,EAAKP,GAAOkD,UAAa3C,EAAMP,GAAOkD,WAClE3C,IAASmC,EAAmBnC,IAGtC0B,KAAM,SAAU1B,EAAM7J,EAAMuL,GAC3B,MAAOW,GAAcrC,EAAM7J,EAAMuL,IAGlConB,WAAY,SAAU9oB,EAAM7J,GAC3B,MAAOiN,GAAoBpD,EAAM7J,IAIlC+P,MAAO,SAAUlG,EAAM7J,EAAMuL,GAC5B,MAAOW,GAAcrC,EAAM7J,EAAMuL,GAAM,IAGxCiM,YAAa,SAAU3N,EAAM7J,GAC5B,MAAOiN,GAAoBpD,EAAM7J,GAAM,MAIzCsJ,GAAO8T,GAAGrQ,QACTxB,KAAM,SAAUD,EAAKnL,GACpB,GAAI2J,GAAG9J,EAAMuL,EACZ1B,EAAOvG,KAAK,GACZiS,EAAQ1L,GAAQA,EAAKid,UAMtB,IAAatb,SAARF,EAAoB,CACxB,GAAKhI,KAAKrC,SACTsK,EAAOjC,GAAOiC,KAAM1B,GAEG,IAAlBA,EAAKzB,WAAmBkB,GAAOyG,MAAOlG,EAAM,gBAAkB,CAElE,IADAC,EAAIyL,EAAMtU,OACF6I,KAIFyL,EAAOzL,KACX9J,EAAOuV,EAAOzL,GAAI9J,KACe,IAA5BA,EAAK+c,QAAS,WAClB/c,EAAOsJ,GAAO0D,UAAWhN,EAAK8E,MAAM,IACpCuG,EAAUxB,EAAM7J,EAAMuL,EAAMvL,KAI/BsJ,IAAOyG,MAAOlG,EAAM,eAAe,GAIrC,MAAO0B,GAIR,MAAoB,gBAARD,GACJhI,KAAKkH,KAAK,WAChBlB,GAAOiC,KAAMjI,KAAMgI,KAIdqH,UAAU1R,OAAS,EAGzBqC,KAAKkH,KAAK,WACTlB,GAAOiC,KAAMjI,KAAMgI,EAAKnL,KAKzB0J,EAAOwB,EAAUxB,EAAMyB,EAAKhC,GAAOiC,KAAM1B,EAAMyB,IAAUE,QAG3DmnB,WAAY,SAAUrnB,GACrB,MAAOhI,MAAKkH,KAAK,WAChBlB,GAAOqpB,WAAYrvB,KAAMgI,QAM5BhC,GAAOyD,QACN0J,MAAO,SAAU5M,EAAMR,EAAMkC,GAC5B,GAAIkL,EAEJ,OAAK5M,IACJR,GAASA,GAAQ,MAAS,QAC1BoN,EAAQnN,GAAOyG,MAAOlG,EAAMR,GAGvBkC,KACEkL,GAASnN,GAAO4D,QAAQ3B,GAC7BkL,EAAQnN,GAAOyG,MAAOlG,EAAMR,EAAMC,GAAO+V,UAAU9T,IAEnDkL,EAAMlQ,KAAMgF,IAGPkL,OAZR,QAgBDmc,QAAS,SAAU/oB,EAAMR,GACxBA,EAAOA,GAAQ,IAEf,IAAIoN,GAAQnN,GAAOmN,MAAO5M,EAAMR,GAC/BwpB,EAAcpc,EAAMxV,OACpBmc,EAAK3G,EAAM2E,QACXjF,EAAQ7M,GAAOoN,YAAa7M,EAAMR,GAClCslB,EAAO,WACNrlB,GAAOspB,QAAS/oB,EAAMR,GAIZ,gBAAP+T,IACJA,EAAK3G,EAAM2E,QACXyX,KAGIzV,IAIU,OAAT/T,GACJoN,EAAMsD,QAAS,oBAIT5D,GAAM8C,KACbmE,EAAG3Z,KAAMoG,EAAM8kB,EAAMxY,KAGhB0c,GAAe1c,GACpBA,EAAMS,MAAMC,QAKdH,YAAa,SAAU7M,EAAMR,GAC5B,GAAIiC,GAAMjC,EAAO,YACjB,OAAOC,IAAOyG,MAAOlG,EAAMyB,IAAShC,GAAOyG,MAAOlG,EAAMyB,GACvDsL,MAAOtN,GAAOqmB,UAAU,eAAelf,IAAI,WAC1CnH,GAAOkO,YAAa3N,EAAMR,EAAO,SACjCC,GAAOkO,YAAa3N,EAAMyB,UAM9BhC,GAAO8T,GAAGrQ,QACT0J,MAAO,SAAUpN,EAAMkC,GACtB,GAAIunB,GAAS,CAQb,OANqB,gBAATzpB,KACXkC,EAAOlC,EACPA,EAAO,KACPypB,KAGIngB,UAAU1R,OAAS6xB,EAChBxpB,GAAOmN,MAAOnT,KAAK,GAAI+F,GAGfmC,SAATD,EACNjI,KACAA,KAAKkH,KAAK,WACT,GAAIiM,GAAQnN,GAAOmN,MAAOnT,KAAM+F,EAAMkC,EAGtCjC,IAAOoN,YAAapT,KAAM+F,GAEZ,OAATA,GAA8B,eAAboN,EAAM,IAC3BnN,GAAOspB,QAAStvB,KAAM+F,MAI1BupB,QAAS,SAAUvpB,GAClB,MAAO/F,MAAKkH,KAAK,WAChBlB,GAAOspB,QAAStvB,KAAM+F,MAGxB0pB,WAAY,SAAU1pB,GACrB,MAAO/F,MAAKmT,MAAOpN,GAAQ,UAI5ByP,QAAS,SAAUzP,EAAMD,GACxB,GAAI0S,GACHkX,EAAQ,EACRC,EAAQ3pB,GAAO4O,WACfzO,EAAWnG,KACXwG,EAAIxG,KAAKrC,OACT8vB,EAAU,aACCiC,GACTC,EAAMpa,YAAapP,GAAYA,IAUlC,KANqB,gBAATJ,KACXD,EAAMC,EACNA,EAAOmC,QAERnC,EAAOA,GAAQ,KAEPS,KACPgS,EAAMxS,GAAOyG,MAAOtG,EAAUK,GAAKT,EAAO,cACrCyS,GAAOA,EAAIlF,QACfoc,IACAlX,EAAIlF,MAAMnG,IAAKsgB,GAIjB,OADAA,KACOkC,EAAMna,QAAS1P,KAGxB,IAAI8pB,IAAO,sCAAwCxsB,OAE/CsN,IAAc,MAAO,QAAS,SAAU,QAExCX,GAAW,SAAUxJ,EAAMspB,GAI7B,MADAtpB,GAAOspB,GAAMtpB,EAC4B,SAAlCP,GAAOuI,IAAKhI,EAAM,aAA2BP,GAAOoX,SAAU7W,EAAKwF,cAAexF,IAOvFupB,GAAS9pB,GAAO8pB,OAAS,SAAU/kB,EAAO+O,EAAI9R,EAAKnL,EAAOkzB,EAAWC,EAAUC,GAClF,GAAIzpB,GAAI,EACP7I,EAASoN,EAAMpN,OACfuyB,EAAc,MAAPloB,CAGR,IAA4B,WAAvBhC,GAAOD,KAAMiC,GAAqB,CACtC+nB,GAAY,CACZ,KAAMvpB,IAAKwB,GACVhC,GAAO8pB,OAAQ/kB,EAAO+O,EAAItT,EAAGwB,EAAIxB,IAAI,EAAMwpB,EAAUC,OAIhD,IAAe/nB,SAAVrL,IACXkzB,GAAY,EAEN/pB,GAAOvF,WAAY5D,KACxBozB,GAAM,GAGFC,IAECD,GACJnW,EAAG3Z,KAAM4K,EAAOlO,GAChBid,EAAK,OAILoW,EAAOpW,EACPA,EAAK,SAAUvT,EAAMyB,EAAKnL,GACzB,MAAOqzB,GAAK/vB,KAAM6F,GAAQO,GAAQ1J,MAKhCid,GACJ,KAAYnc,EAAJ6I,EAAYA,IACnBsT,EAAI/O,EAAMvE,GAAIwB,EAAKioB,EAAMpzB,EAAQA,EAAMsD,KAAM4K,EAAMvE,GAAIA,EAAGsT,EAAI/O,EAAMvE,GAAIwB,IAK3E,OAAO+nB,GACNhlB,EAGAmlB,EACCpW,EAAG3Z,KAAM4K,GACTpN,EAASmc,EAAI/O,EAAM,GAAI/C,GAAQgoB,GAE9BxkB,GAAiB,yBAIrB,WAEC,GAAIqa,GAAQpgB,GAASmF,cAAe,SACnC0T,EAAM7Y,GAASmF,cAAe,OAC9BulB,EAAW1qB,GAASkF,wBAsDrB,IAnDA2T,EAAI3Q,UAAY,qEAGhB3D,GAAQomB,kBAAgD,IAA5B9R,EAAIzS,WAAW/G,SAI3CkF,GAAQqmB,OAAS/R,EAAIrT,qBAAsB,SAAUtN,OAIrDqM,GAAQsmB,gBAAkBhS,EAAIrT,qBAAsB,QAAStN,OAI7DqM,GAAQ0D,WACyD,kBAAhEjI,GAASmF,cAAe,OAAQ2lB,WAAW,GAAO9iB,UAInDoY,EAAM9f,KAAO,WACb8f,EAAMna,SAAU,EAChBykB,EAASrkB,YAAa+Z,GACtB7b,GAAQwmB,cAAgB3K,EAAMna,QAI9B4S,EAAI3Q,UAAY,yBAChB3D,GAAQymB,iBAAmBnS,EAAIiS,WAAW,GAAOlI,UAAUta,aAG3DoiB,EAASrkB,YAAawS,GACtBA,EAAI3Q,UAAY,mDAIhB3D,GAAQ0mB,WAAapS,EAAIiS,WAAW,GAAOA,WAAW,GAAOlI,UAAU3c,QAKvE1B,GAAQqD,cAAe,EAClBiR,EAAIiH,cACRjH,EAAIiH,YAAa,UAAW,WAC3Bvb,GAAQqD,cAAe,IAGxBiR,EAAIiS,WAAW,GAAOI,SAIM,MAAzB3mB,GAAQC,cAAuB,CAElCD,GAAQC,eAAgB,CACxB,WACQqU,GAAI5X,KACV,MAAO+B,GACRuB,GAAQC,eAAgB,OAM3B,WACC,GAAIzD,GAAGoqB,EACNtS,EAAM7Y,GAASmF,cAAe,MAG/B,KAAMpE,KAAOwjB,QAAQ,EAAM6G,QAAQ,EAAMC,SAAS,GACjDF,EAAY,KAAOpqB,GAEZwD,GAASxD,EAAI,WAAcoqB,IAAa7rB,MAE9CuZ,EAAIZ,aAAckT,EAAW,KAC7B5mB,GAASxD,EAAI,WAAc8X,EAAIkF,WAAYoN,GAAY1nB,WAAY,EAKrEoV,GAAM,OAIP,IAAIyS,IAAa,+BAChBC,GAAY,OACZC,GAAc,uCACdC,GAAc,kCACdC,GAAiB,sBAoBlBnrB,IAAO4B,OAEN1C,UAEAiI,IAAK,SAAU5G,EAAM6qB,EAAO3S,EAASxW,EAAM4R,GAC1C,GAAIrB,GAAKvL,EAAQokB,EAAGC,EACnBC,EAASC,EAAaC,EACtBC,EAAU3rB,EAAM4rB,EAAYC,EAC5BC,EAAW7rB,GAAOyG,MAAOlG,EAG1B,IAAMsrB,EAAN,CAmCA,IA9BKpT,EAAQA,UACZ6S,EAAc7S,EACdA,EAAU6S,EAAY7S,QACtB5E,EAAWyX,EAAYzX,UAIlB4E,EAAQlV,OACbkV,EAAQlV,KAAOvD,GAAOuD,SAIhB0D,EAAS4kB,EAAS5kB,UACxBA,EAAS4kB,EAAS5kB,YAEZukB,EAAcK,EAAS3kB,UAC7BskB,EAAcK,EAAS3kB,OAAS,SAAUzE,GAGzC,aAAczC,MAAWkF,IAAkBzC,GAAKzC,GAAO4B,MAAMkqB,YAAcrpB,EAAE1C,KAE5EmC,OADAlC,GAAO4B,MAAMmqB,SAAS3iB,MAAOoiB,EAAYjrB,KAAM8I,YAIjDmiB,EAAYjrB,KAAOA,GAIpB6qB,GAAUA,GAAS,IAAKjqB,MAAOC,MAAiB,IAChDiqB,EAAID,EAAMzzB,OACF0zB,KACP7Y,EAAM2Y,GAAe9kB,KAAM+kB,EAAMC,QACjCtrB,EAAO6rB,EAAWpZ,EAAI,GACtBmZ,GAAenZ,EAAI,IAAM,IAAK1W,MAAO,KAAMkZ,OAGrCjV,IAKNwrB,EAAUvrB,GAAO4B,MAAM2pB,QAASxrB,OAGhCA,GAAS8T,EAAW0X,EAAQS,aAAeT,EAAQU,WAAclsB,EAGjEwrB,EAAUvrB,GAAO4B,MAAM2pB,QAASxrB,OAGhC0rB,EAAYzrB,GAAOyD,QAClB1D,KAAMA,EACN6rB,SAAUA,EACV3pB,KAAMA,EACNwW,QAASA,EACTlV,KAAMkV,EAAQlV,KACdsQ,SAAUA,EACV4K,aAAc5K,GAAY7T,GAAO4gB,KAAKzf,MAAMsd,aAAa/d,KAAMmT,GAC/DqY,UAAWP,EAAWzuB,KAAK,MACzBouB,IAGII,EAAWzkB,EAAQlH,MACzB2rB,EAAWzkB,EAAQlH,MACnB2rB,EAASS,cAAgB,EAGnBZ,EAAQa,OAASb,EAAQa,MAAMjyB,KAAMoG,EAAM0B,EAAM0pB,EAAYH,MAAkB,IAE/EjrB,EAAKiB,iBACTjB,EAAKiB,iBAAkBzB,EAAMyrB,GAAa,GAE/BjrB,EAAKgf,aAChBhf,EAAKgf,YAAa,KAAOxf,EAAMyrB,KAK7BD,EAAQpkB,MACZokB,EAAQpkB,IAAIhN,KAAMoG,EAAMkrB,GAElBA,EAAUhT,QAAQlV,OACvBkoB,EAAUhT,QAAQlV,KAAOkV,EAAQlV,OAK9BsQ,EACJ6X,EAASzW,OAAQyW,EAASS,gBAAiB,EAAGV,GAE9CC,EAASzuB,KAAMwuB,GAIhBzrB,GAAO4B,MAAM1C,OAAQa,IAAS,EAI/BQ,GAAO,OAIRwmB,OAAQ,SAAUxmB,EAAM6qB,EAAO3S,EAAS5E,EAAUwY,GACjD,GAAItX,GAAG0W,EAAWjZ,EACjB8Z,EAAWjB,EAAGpkB,EACdskB,EAASG,EAAU3rB,EACnB4rB,EAAYC,EACZC,EAAW7rB,GAAO6G,QAAStG,IAAUP,GAAOyG,MAAOlG,EAEpD,IAAMsrB,IAAc5kB,EAAS4kB,EAAS5kB,QAAtC,CAOA,IAFAmkB,GAAUA,GAAS,IAAKjqB,MAAOC,MAAiB,IAChDiqB,EAAID,EAAMzzB,OACF0zB,KAMP,GALA7Y,EAAM2Y,GAAe9kB,KAAM+kB,EAAMC,QACjCtrB,EAAO6rB,EAAWpZ,EAAI,GACtBmZ,GAAenZ,EAAI,IAAM,IAAK1W,MAAO,KAAMkZ,OAGrCjV,EAAN,CAcA,IAPAwrB,EAAUvrB,GAAO4B,MAAM2pB,QAASxrB,OAChCA,GAAS8T,EAAW0X,EAAQS,aAAeT,EAAQU,WAAclsB,EACjE2rB,EAAWzkB,EAAQlH,OACnByS,EAAMA,EAAI,IAAM,GAAImL,QAAQ,UAAYgO,EAAWzuB,KAAK,iBAAmB;AAG3EovB,EAAYvX,EAAI2W,EAAS/zB,OACjBod,KACP0W,EAAYC,EAAU3W,IAEfsX,GAAeT,IAAaH,EAAUG,UACzCnT,GAAWA,EAAQlV,OAASkoB,EAAUloB,MACtCiP,IAAOA,EAAI9R,KAAM+qB,EAAUS,YAC3BrY,GAAYA,IAAa4X,EAAU5X,WAAyB,OAAbA,IAAqB4X,EAAU5X,YACjF6X,EAASzW,OAAQF,EAAG,GAEf0W,EAAU5X,UACd6X,EAASS,gBAELZ,EAAQxE,QACZwE,EAAQxE,OAAO5sB,KAAMoG,EAAMkrB,GAOzBa,KAAcZ,EAAS/zB,SACrB4zB,EAAQgB,UAAYhB,EAAQgB,SAASpyB,KAAMoG,EAAMorB,EAAYE,EAAS3kB,WAAa,GACxFlH,GAAOsH,YAAa/G,EAAMR,EAAM8rB,EAAS3kB,cAGnCD,GAAQlH,QAtCf,KAAMA,IAAQkH,GACbjH,GAAO4B,MAAMmlB,OAAQxmB,EAAMR,EAAOqrB,EAAOC,GAAK5S,EAAS5E,GAAU,EA0C/D7T,IAAO2C,cAAesE,WACnB4kB,GAAS3kB,OAIhBlH,GAAOkO,YAAa3N,EAAM,aAI5BisB,QAAS,SAAU5qB,EAAOK,EAAM1B,EAAMksB,GACrC,GAAIvlB,GAAQwlB,EAAQ7rB,EACnB8rB,EAAYpB,EAAS/Y,EAAKhS,EAC1BosB,GAAcrsB,GAAQd,IACtBM,EAAO4T,GAAOxZ,KAAMyH,EAAO,QAAWA,EAAM7B,KAAO6B,EACnD+pB,EAAahY,GAAOxZ,KAAMyH,EAAO,aAAgBA,EAAMsqB,UAAUpwB,MAAM,OAKxE,IAHA+E,EAAM2R,EAAMjS,EAAOA,GAAQd,GAGJ,IAAlBc,EAAKzB,UAAoC,IAAlByB,EAAKzB,WAK5BosB,GAAYxqB,KAAMX,EAAOC,GAAO4B,MAAMkqB,aAItC/rB,EAAK0T,QAAQ,MAAQ,IAEzBkY,EAAa5rB,EAAKjE,MAAM,KACxBiE,EAAO4rB,EAAW7Z,QAClB6Z,EAAW3W,QAEZ0X,EAAS3sB,EAAK0T,QAAQ,KAAO,GAAK,KAAO1T,EAGzC6B,EAAQA,EAAO5B,GAAOkD,SACrBtB,EACA,GAAI5B,IAAO6sB,MAAO9sB,EAAuB,gBAAV6B,IAAsBA,GAGtDA,EAAMkrB,UAAYL,EAAe,EAAI,EACrC7qB,EAAMsqB,UAAYP,EAAWzuB,KAAK,KAClC0E,EAAMmrB,aAAenrB,EAAMsqB,UAC1B,GAAIvO,QAAQ,UAAYgO,EAAWzuB,KAAK,iBAAmB,WAC3D,KAGD0E,EAAM3H,OAASiI,OACTN,EAAMuP,SACXvP,EAAMuP,OAAS5Q,GAIhB0B,EAAe,MAARA,GACJL,GACF5B,GAAO+V,UAAW9T,GAAQL,IAG3B2pB,EAAUvrB,GAAO4B,MAAM2pB,QAASxrB,OAC1B0sB,IAAgBlB,EAAQiB,SAAWjB,EAAQiB,QAAQpjB,MAAO7I,EAAM0B,MAAW,GAAjF,CAMA,IAAMwqB,IAAiBlB,EAAQyB,WAAahtB,GAAOC,SAAUM,GAAS,CAMrE,IAJAosB,EAAapB,EAAQS,cAAgBjsB,EAC/BmrB,GAAYxqB,KAAMisB,EAAa5sB,KACpCc,EAAMA,EAAI2G,YAEH3G,EAAKA,EAAMA,EAAI2G,WACtBolB,EAAU3vB,KAAM4D,GAChB2R,EAAM3R,CAIF2R,MAASjS,EAAKwF,eAAiBtG,KACnCmtB,EAAU3vB,KAAMuV,EAAIe,aAAef,EAAIgB,cAAgBzU,GAMzD,IADAyB,EAAI,GACKK,EAAM+rB,EAAUpsB,QAAUoB,EAAMqrB,wBAExCrrB,EAAM7B,KAAOS,EAAI,EAChBmsB,EACApB,EAAQU,UAAYlsB,EAGrBmH,GAAWlH,GAAOyG,MAAO5F,EAAK,eAAoBe,EAAM7B,OAAUC,GAAOyG,MAAO5F,EAAK,UAChFqG,GACJA,EAAOkC,MAAOvI,EAAKoB,GAIpBiF,EAASwlB,GAAU7rB,EAAK6rB,GACnBxlB,GAAUA,EAAOkC,OAASpJ,GAAO8C,WAAYjC,KACjDe,EAAM3H,OAASiN,EAAOkC,MAAOvI,EAAKoB,GAC7BL,EAAM3H,UAAW,GACrB2H,EAAMsrB,iBAOT,IAHAtrB,EAAM7B,KAAOA,GAGP0sB,IAAiB7qB,EAAMurB,wBAErB5B,EAAQ6B,UAAY7B,EAAQ6B,SAAShkB,MAAOwjB,EAAUzvB,MAAO8E,MAAW,IAC9EjC,GAAO8C,WAAYvC,IAKdmsB,GAAUnsB,EAAMR,KAAWC,GAAOC,SAAUM,GAAS,CAGzDiS,EAAMjS,EAAMmsB,GAEPla,IACJjS,EAAMmsB,GAAW,MAIlB1sB,GAAO4B,MAAMkqB,UAAY/rB,CACzB,KACCQ,EAAMR,KACL,MAAQ0C,IAIVzC,GAAO4B,MAAMkqB,UAAY5pB,OAEpBsQ,IACJjS,EAAMmsB,GAAWla,GAMrB,MAAO5Q,GAAM3H,SAGd8xB,SAAU,SAAUnqB,GAGnBA,EAAQ5B,GAAO4B,MAAMyrB,IAAKzrB,EAE1B,IAAIpB,GAAGuC,EAAK0oB,EAAWjJ,EAASzN,EAC/BuY,KACA5Y,EAAOlZ,EAAMrB,KAAMkP,WACnBqiB,GAAa1rB,GAAOyG,MAAOzM,KAAM,eAAoB4H,EAAM7B,UAC3DwrB,EAAUvrB,GAAO4B,MAAM2pB,QAAS3pB,EAAM7B,SAOvC,IAJA2U,EAAK,GAAK9S,EACVA,EAAM2rB,eAAiBvzB,MAGlBuxB,EAAQiC,aAAejC,EAAQiC,YAAYrzB,KAAMH,KAAM4H,MAAY,EAAxE,CASA,IAJA0rB,EAAettB,GAAO4B,MAAM8pB,SAASvxB,KAAMH,KAAM4H,EAAO8pB,GAGxDlrB,EAAI,GACKgiB,EAAU8K,EAAc9sB,QAAWoB,EAAMqrB,wBAIjD,IAHArrB,EAAM6rB,cAAgBjL,EAAQjiB,KAE9BwU,EAAI,GACK0W,EAAYjJ,EAAQkJ,SAAU3W,QAAWnT,EAAM8rB,mCAIjD9rB,EAAMmrB,cAAgBnrB,EAAMmrB,aAAarsB,KAAM+qB,EAAUS,cAE9DtqB,EAAM6pB,UAAYA,EAClB7pB,EAAMK,KAAOwpB,EAAUxpB,KAEvBc,IAAS/C,GAAO4B,MAAM2pB,QAASE,EAAUG,eAAkB1kB,QAAUukB,EAAUhT,SAC5ErP,MAAOoZ,EAAQjiB,KAAMmU,GAEXxS,SAARa,IACEnB,EAAM3H,OAAS8I,MAAS,IAC7BnB,EAAMsrB,iBACNtrB,EAAM+rB,mBAYX,OAJKpC,GAAQqC,cACZrC,EAAQqC,aAAazzB,KAAMH,KAAM4H,GAG3BA,EAAM3H,SAGdyxB,SAAU,SAAU9pB,EAAO8pB,GAC1B,GAAImC,GAAKpC,EAAWvhB,EAAS1J,EAC5B8sB,KACAnB,EAAgBT,EAASS,cACzBtrB,EAAMe,EAAMuP,MAKb,IAAKgb,GAAiBtrB,EAAI/B,YAAc8C,EAAM0hB,QAAyB,UAAf1hB,EAAM7B,MAG7D,KAAQc,GAAO7G,KAAM6G,EAAMA,EAAI2G,YAAcxN,KAK5C,GAAsB,IAAjB6G,EAAI/B,WAAmB+B,EAAIsiB,YAAa,GAAuB,UAAfvhB,EAAM7B,MAAoB,CAE9E,IADAmK,KACM1J,EAAI,EAAO2rB,EAAJ3rB,EAAmBA,IAC/BirB,EAAYC,EAAUlrB,GAGtBqtB,EAAMpC,EAAU5X,SAAW,IAEH3R,SAAnBgI,EAAS2jB,KACb3jB,EAAS2jB,GAAQpC,EAAUhN,aAC1Bze,GAAQ6tB,EAAK7zB,MAAO2B,MAAOkF,IAAS,EACpCb,GAAOiG,KAAM4nB,EAAK7zB,KAAM,MAAQ6G,IAAQlJ,QAErCuS,EAAS2jB,IACb3jB,EAAQjN,KAAMwuB,EAGXvhB,GAAQvS,QACZ21B,EAAarwB,MAAOsD,KAAMM,EAAK6qB,SAAUxhB,IAW7C,MAJKiiB,GAAgBT,EAAS/zB,QAC7B21B,EAAarwB,MAAOsD,KAAMvG,KAAM0xB,SAAUA,EAASlwB,MAAO2wB,KAGpDmB,GAGRD,IAAK,SAAUzrB,GACd,GAAKA,EAAO5B,GAAOkD,SAClB,MAAOtB,EAIR,IAAIpB,GAAG8K,EAAM6J,EACZpV,EAAO6B,EAAM7B,KACb+tB,EAAgBlsB,EAChBmsB,EAAU/zB,KAAKg0B,SAAUjuB,EAa1B,KAXMguB,IACL/zB,KAAKg0B,SAAUjuB,GAASguB,EACvB9C,GAAYvqB,KAAMX,GAAS/F,KAAKi0B,WAChCjD,GAAUtqB,KAAMX,GAAS/F,KAAKk0B,aAGhC/Y,EAAO4Y,EAAQrhB,MAAQ1S,KAAK0S,MAAM7I,OAAQkqB,EAAQrhB,OAAU1S,KAAK0S,MAEjE9K,EAAQ,GAAI5B,IAAO6sB,MAAOiB,GAE1BttB,EAAI2U,EAAKxd,OACD6I,KACP8K,EAAO6J,EAAM3U,GACboB,EAAO0J,GAASwiB,EAAexiB,EAmBhC,OAdM1J,GAAMuP,SACXvP,EAAMuP,OAAS2c,EAAcK,YAAc1uB,IAKb,IAA1BmC,EAAMuP,OAAOrS,WACjB8C,EAAMuP,OAASvP,EAAMuP,OAAO3J,YAK7B5F,EAAMwsB,UAAYxsB,EAAMwsB,QAEjBL,EAAQ1wB,OAAS0wB,EAAQ1wB,OAAQuE,EAAOksB,GAAkBlsB,GAIlE8K,MAAO,wHAAwH5Q,MAAM,KAErIkyB,YAEAE,UACCxhB,MAAO,4BAA4B5Q,MAAM,KACzCuB,OAAQ,SAAUuE,EAAO7H,GAOxB,MAJoB,OAAf6H,EAAMoK,QACVpK,EAAMoK,MAA6B,MAArBjS,EAASgC,SAAmBhC,EAASgC,SAAWhC,EAASs0B,SAGjEzsB,IAITqsB,YACCvhB,MAAO,mGAAmG5Q,MAAM,KAChHuB,OAAQ,SAAUuE,EAAO7H,GACxB,GAAIqO,GAAMkmB,EAAUrmB,EACnBqb,EAASvpB,EAASupB,OAClBiL,EAAcx0B,EAASw0B,WAuBxB,OApBoB,OAAf3sB,EAAM4sB,OAAqC,MAApBz0B,EAAS00B,UACpCH,EAAW1sB,EAAMuP,OAAOpL,eAAiBtG,GACzCwI,EAAMqmB,EAAS3lB,gBACfP,EAAOkmB,EAASlmB,KAEhBxG,EAAM4sB,MAAQz0B,EAAS00B,SAAYxmB,GAAOA,EAAIymB,YAActmB,GAAQA,EAAKsmB,YAAc,IAAQzmB,GAAOA,EAAI0mB,YAAcvmB,GAAQA,EAAKumB,YAAc,GACnJ/sB,EAAMgtB,MAAQ70B,EAAS80B,SAAY5mB,GAAOA,EAAI6mB,WAAc1mB,GAAQA,EAAK0mB,WAAc,IAAQ7mB,GAAOA,EAAI8mB,WAAc3mB,GAAQA,EAAK2mB,WAAc,KAI9IntB,EAAMotB,eAAiBT,IAC5B3sB,EAAMotB,cAAgBT,IAAgB3sB,EAAMuP,OAASpX,EAASk1B,UAAYV,GAKrE3sB,EAAMoK,OAAoB9J,SAAXohB,IACpB1hB,EAAMoK,MAAmB,EAATsX,EAAa,EAAe,EAATA,EAAa,EAAe,EAATA,EAAa,EAAI,GAGjE1hB,IAIT2pB,SACC2D,MAEClC,UAAU,GAEXlK,OAEC0J,QAAS,WACR,GAAKxyB,OAASoK,KAAuBpK,KAAK8oB,MACzC,IAEC,MADA9oB,MAAK8oB,SACE,EACN,MAAQrgB,MAOZupB,aAAc,WAEfmD,MACC3C,QAAS,WACR,MAAKxyB,QAASoK,KAAuBpK,KAAKm1B,MACzCn1B,KAAKm1B,QACE,GAFR,QAKDnD,aAAc,YAEfrB,OAEC6B,QAAS,WACR,MAAKxsB,IAAOqF,SAAUrL,KAAM,UAA2B,aAAdA,KAAK+F,MAAuB/F,KAAK2wB,OACzE3wB,KAAK2wB,SACE,GAFR,QAODyC,SAAU,SAAUxrB,GACnB,MAAO5B,IAAOqF,SAAUzD,EAAMuP,OAAQ,OAIxCie,cACCxB,aAAc,SAAUhsB,GAIDM,SAAjBN,EAAM3H,QAAwB2H,EAAMksB,gBACxClsB,EAAMksB,cAAcuB,YAAcztB,EAAM3H,WAM5Cq1B,SAAU,SAAUvvB,EAAMQ,EAAMqB,EAAO2tB,GAItC,GAAI9sB,GAAIzC,GAAOyD,OACd,GAAIzD,IAAO6sB,MACXjrB,GAEC7B,KAAMA,EACNyvB,aAAa,EACb1B,kBAGGyB,GACJvvB,GAAO4B,MAAM4qB,QAAS/pB,EAAG,KAAMlC,GAE/BP,GAAO4B,MAAMmqB,SAAS5xB,KAAMoG,EAAMkC,GAE9BA,EAAE0qB,sBACNvrB,EAAMsrB,mBAKTltB,GAAOsH,YAAc7H,GAASgC,oBAC7B,SAAUlB,EAAMR,EAAMmH,GAChB3G,EAAKkB,qBACTlB,EAAKkB,oBAAqB1B,EAAMmH,GAAQ,IAG1C,SAAU3G,EAAMR,EAAMmH,GACrB,GAAIxQ,GAAO,KAAOqJ,CAEbQ,GAAKoB,oBAIGpB,GAAM7J,KAAWwO,KAC5B3E,EAAM7J,GAAS,MAGhB6J,EAAKoB,YAAajL,EAAMwQ,KAI3BlH,GAAO6sB,MAAQ,SAAUlmB,EAAK+F,GAE7B,MAAO1S,gBAAgBgG,IAAO6sB,OAKzBlmB,GAAOA,EAAI5G,MACf/F,KAAK8zB,cAAgBnnB,EACrB3M,KAAK+F,KAAO4G,EAAI5G,KAIhB/F,KAAKmzB,mBAAqBxmB,EAAI8oB,kBACHvtB,SAAzByE,EAAI8oB,kBAEJ9oB,EAAI0oB,eAAgB,EACrBnrB,EACAC,GAIDnK,KAAK+F,KAAO4G,EAIR+F,GACJ1M,GAAOyD,OAAQzJ,KAAM0S,GAItB1S,KAAK01B,UAAY/oB,GAAOA,EAAI+oB,WAAa1vB,GAAO6L,WAGhD7R,KAAMgG,GAAOkD,UAAY,IA/BjB,GAAIlD,IAAO6sB,MAAOlmB,EAAK+F,IAoChC1M,GAAO6sB,MAAMx0B,WACZ80B,mBAAoBhpB,EACpB8oB,qBAAsB9oB,EACtBupB,8BAA+BvpB,EAE/B+oB,eAAgB,WACf,GAAIzqB,GAAIzI,KAAK8zB,aAEb9zB,MAAKmzB,mBAAqBjpB,EACpBzB,IAKDA,EAAEyqB,eACNzqB,EAAEyqB,iBAKFzqB,EAAE4sB,aAAc,IAGlB1B,gBAAiB,WAChB,GAAIlrB,GAAIzI,KAAK8zB,aAEb9zB,MAAKizB,qBAAuB/oB,EACtBzB,IAIDA,EAAEkrB,iBACNlrB,EAAEkrB,kBAKHlrB,EAAEktB,cAAe,IAElBC,yBAA0B,WACzB,GAAIntB,GAAIzI,KAAK8zB,aAEb9zB,MAAK0zB,8BAAgCxpB,EAEhCzB,GAAKA,EAAEmtB,0BACXntB,EAAEmtB,2BAGH51B,KAAK2zB,oBAKP3tB,GAAOkB,MACN2uB,WAAY,YACZC,WAAY,WACZC,aAAc,cACdC,aAAc,cACZ,SAAU/iB,EAAMogB,GAClBrtB,GAAO4B,MAAM2pB,QAASte,IACrB+e,aAAcqB,EACdpB,SAAUoB,EAEVnmB,OAAQ,SAAUtF,GACjB,GAAImB,GACHoO,EAASnX,KACTi2B,EAAUruB,EAAMotB,cAChBvD,EAAY7pB,EAAM6pB,SASnB,SALMwE,GAAYA,IAAY9e,IAAWnR,GAAOoX,SAAUjG,EAAQ8e,MACjEruB,EAAM7B,KAAO0rB,EAAUG,SACvB7oB,EAAM0oB,EAAUhT,QAAQrP,MAAOpP,KAAMqP,WACrCzH,EAAM7B,KAAOstB,GAEPtqB,MAMJiB,GAAQksB,gBAEblwB,GAAO4B,MAAM2pB,QAAQvH,QACpBoI,MAAO,WAEN,MAAKpsB,IAAOqF,SAAUrL,KAAM,SACpB,MAIRgG,IAAO4B,MAAMuF,IAAKnN,KAAM,iCAAkC,SAAUyI,GAEnE,GAAIlC,GAAOkC,EAAE0O,OACZgf,EAAOnwB,GAAOqF,SAAU9E,EAAM,UAAaP,GAAOqF,SAAU9E,EAAM,UAAaA,EAAK4vB,KAAOjuB,MACvFiuB,KAASnwB,GAAOyG,MAAO0pB,EAAM,mBACjCnwB,GAAO4B,MAAMuF,IAAKgpB,EAAM,iBAAkB,SAAUvuB,GACnDA,EAAMwuB,gBAAiB,IAExBpwB,GAAOyG,MAAO0pB,EAAM,iBAAiB,OAMxCvC,aAAc,SAAUhsB,GAElBA,EAAMwuB,uBACHxuB,GAAMwuB,eACRp2B,KAAKwN,aAAe5F,EAAMkrB,WAC9B9sB,GAAO4B,MAAM0tB,SAAU,SAAUt1B,KAAKwN,WAAY5F,GAAO,KAK5D2qB,SAAU,WAET,MAAKvsB,IAAOqF,SAAUrL,KAAM,SACpB,MAIRgG,IAAO4B,MAAMmlB,OAAQ/sB,KAAM,eAMxBgK,GAAQqsB,gBAEbrwB,GAAO4B,MAAM2pB,QAAQV,QAEpBuB,MAAO,WAEN,MAAKrB,IAAWrqB,KAAM1G,KAAKqL,YAIP,aAAdrL,KAAK+F,MAAqC,UAAd/F,KAAK+F,QACrCC,GAAO4B,MAAMuF,IAAKnN,KAAM,yBAA0B,SAAU4H,GACjB,YAArCA,EAAMksB,cAAcwC,eACxBt2B,KAAKu2B,eAAgB,KAGvBvwB,GAAO4B,MAAMuF,IAAKnN,KAAM,gBAAiB,SAAU4H,GAC7C5H,KAAKu2B,gBAAkB3uB,EAAMkrB,YACjC9yB,KAAKu2B,eAAgB,GAGtBvwB,GAAO4B,MAAM0tB,SAAU,SAAUt1B,KAAM4H,GAAO,OAGzC,OAGR5B,IAAO4B,MAAMuF,IAAKnN,KAAM,yBAA0B,SAAUyI,GAC3D,GAAIlC,GAAOkC,EAAE0O,MAER4Z,IAAWrqB,KAAMH,EAAK8E,YAAerF,GAAOyG,MAAOlG,EAAM,mBAC7DP,GAAO4B,MAAMuF,IAAK5G,EAAM,iBAAkB,SAAUqB,IAC9C5H,KAAKwN,YAAe5F,EAAM4tB,aAAgB5tB,EAAMkrB,WACpD9sB,GAAO4B,MAAM0tB,SAAU,SAAUt1B,KAAKwN,WAAY5F,GAAO,KAG3D5B,GAAOyG,MAAOlG,EAAM,iBAAiB,OAKxC2G,OAAQ,SAAUtF,GACjB,GAAIrB,GAAOqB,EAAMuP,MAGjB,OAAKnX,QAASuG,GAAQqB,EAAM4tB,aAAe5tB,EAAMkrB,WAA4B,UAAdvsB,EAAKR,MAAkC,aAAdQ,EAAKR,KACrF6B,EAAM6pB,UAAUhT,QAAQrP,MAAOpP,KAAMqP,WAD7C,QAKDkjB,SAAU,WAGT,MAFAvsB,IAAO4B,MAAMmlB,OAAQ/sB,KAAM,aAEnB+wB,GAAWrqB,KAAM1G,KAAKqL,aAM3BrB,GAAQwsB,gBACbxwB,GAAOkB,MAAO4hB,MAAO,UAAWqM,KAAM,YAAc,SAAUliB,EAAMogB,GAGnE,GAAI5U,GAAU,SAAU7W,GACtB5B,GAAO4B,MAAM0tB,SAAUjC,EAAKzrB,EAAMuP,OAAQnR,GAAO4B,MAAMyrB,IAAKzrB,IAAS,GAGvE5B,IAAO4B,MAAM2pB,QAAS8B,IACrBjB,MAAO,WACN,GAAInkB,GAAMjO,KAAK+L,eAAiB/L,KAC/By2B,EAAWzwB,GAAOyG,MAAOwB,EAAKolB,EAEzBoD,IACLxoB,EAAIzG,iBAAkByL,EAAMwL,GAAS,GAEtCzY,GAAOyG,MAAOwB,EAAKolB,GAAOoD,GAAY,GAAM,IAE7ClE,SAAU,WACT,GAAItkB,GAAMjO,KAAK+L,eAAiB/L,KAC/By2B,EAAWzwB,GAAOyG,MAAOwB,EAAKolB,GAAQ,CAEjCoD,GAILzwB,GAAOyG,MAAOwB,EAAKolB,EAAKoD,IAHxBxoB,EAAIxG,oBAAqBwL,EAAMwL,GAAS,GACxCzY,GAAOkO,YAAajG,EAAKolB,QAS9BrtB,GAAO8T,GAAGrQ,QAETitB,GAAI,SAAUtF,EAAOvX,EAAU5R,EAAM6R,EAAiB6c,GACrD,GAAI5wB,GAAM6wB,CAGV,IAAsB,gBAAVxF,GAAqB,CAEP,gBAAbvX,KAEX5R,EAAOA,GAAQ4R,EACfA,EAAW3R,OAEZ,KAAMnC,IAAQqrB,GACbpxB,KAAK02B,GAAI3wB,EAAM8T,EAAU5R,EAAMmpB,EAAOrrB,GAAQ4wB,EAE/C,OAAO32B,MAmBR,GAhBa,MAARiI,GAAsB,MAAN6R,GAEpBA,EAAKD,EACL5R,EAAO4R,EAAW3R,QACD,MAAN4R,IACc,gBAAbD,IAEXC,EAAK7R,EACLA,EAAOC,SAGP4R,EAAK7R,EACLA,EAAO4R,EACPA,EAAW3R,SAGR4R,KAAO,EACXA,EAAK3P,MACC,KAAM2P,EACZ,MAAO9Z,KAaR,OAVa,KAAR22B,IACJC,EAAS9c,EACTA,EAAK,SAAUlS,GAGd,MADA5B,MAAS2oB,IAAK/mB,GACPgvB,EAAOxnB,MAAOpP,KAAMqP,YAG5ByK,EAAGvQ,KAAOqtB,EAAOrtB,OAAUqtB,EAAOrtB,KAAOvD,GAAOuD,SAE1CvJ,KAAKkH,KAAM,WACjBlB,GAAO4B,MAAMuF,IAAKnN,KAAMoxB,EAAOtX,EAAI7R,EAAM4R,MAG3C8c,IAAK,SAAUvF,EAAOvX,EAAU5R,EAAM6R,GACrC,MAAO9Z,MAAK02B,GAAItF,EAAOvX,EAAU5R,EAAM6R,EAAI,IAE5C6U,IAAK,SAAUyC,EAAOvX,EAAUC,GAC/B,GAAI2X,GAAW1rB,CACf,IAAKqrB,GAASA,EAAM8B,gBAAkB9B,EAAMK,UAQ3C,MANAA,GAAYL,EAAMK,UAClBzrB,GAAQorB,EAAMmC,gBAAiB5E,IAC9B8C,EAAUS,UAAYT,EAAUG,SAAW,IAAMH,EAAUS,UAAYT,EAAUG,SACjFH,EAAU5X,SACV4X,EAAUhT,SAEJze,IAER,IAAsB,gBAAVoxB,GAAqB,CAEhC,IAAMrrB,IAAQqrB,GACbpxB,KAAK2uB,IAAK5oB,EAAM8T,EAAUuX,EAAOrrB,GAElC,OAAO/F,MAUR,OARK6Z,KAAa,GAA6B,kBAAbA,MAEjCC,EAAKD,EACLA,EAAW3R,QAEP4R,KAAO,IACXA,EAAK3P,GAECnK,KAAKkH,KAAK,WAChBlB,GAAO4B,MAAMmlB,OAAQ/sB,KAAMoxB,EAAOtX,EAAID,MAIxC2Y,QAAS,SAAUzsB,EAAMkC,GACxB,MAAOjI,MAAKkH,KAAK,WAChBlB,GAAO4B,MAAM4qB,QAASzsB,EAAMkC,EAAMjI,SAGpC0uB,eAAgB,SAAU3oB,EAAMkC,GAC/B,GAAI1B,GAAOvG,KAAK,EAChB,OAAKuG,GACGP,GAAO4B,MAAM4qB,QAASzsB,EAAMkC,EAAM1B,GAAM,GADhD,SAqBF,IAAIkE,IAAY,6JAEfosB,GAAgB,6BAChBC,GAAe,GAAInT,QAAO,OAASlZ,GAAY,WAAY,KAC3DssB,GAAqB,OACrBC,GAAY,0EACZC,GAAW,YACXC,GAAS,UACTC,GAAQ,YACRC,GAAe,0BAEfC,GAAW,oCACXC,GAAc,4BACdlrB,GAAoB,cACpBmrB,GAAe,2CAGfC,IACCC,QAAU,EAAG,+BAAgC,aAC7CC,QAAU,EAAG,aAAc,eAC3BC,MAAQ,EAAG,QAAS,UACpBC,OAAS,EAAG,WAAY,aACxBC,OAAS,EAAG,UAAW,YACvBC,IAAM,EAAG,iBAAkB,oBAC3BC,KAAO,EAAG,mCAAoC,uBAC9CC,IAAM,EAAG,qBAAsB,yBAI/B5E,SAAUppB,GAAQsmB,eAAkB,EAAG,GAAI,KAAS,EAAG,SAAU,WAElE2H,GAAe1tB,EAAoB9E,IACnCyyB,GAAcD,GAAansB,YAAarG,GAASmF,cAAc,OAEhE4sB,IAAQW,SAAWX,GAAQC,OAC3BD,GAAQnH,MAAQmH,GAAQY,MAAQZ,GAAQa,SAAWb,GAAQc,QAAUd,GAAQK,MAC7EL,GAAQe,GAAKf,GAAQQ,GAiKrBhyB,GAAOyD,QACN2R,MAAO,SAAU7U,EAAMiyB,EAAeC,GACrC,GAAIC,GAActT,EAAMhK,EAAO5U,EAAGmyB,EACjCC,EAAS5yB,GAAOoX,SAAU7W,EAAKwF,cAAexF,EAW/C,IATKyD,GAAQ0D,YAAc1H,GAAO2kB,SAASpkB,KAAUuwB,GAAapwB,KAAM,IAAMH,EAAK8E,SAAW,KAC7F+P,EAAQ7U,EAAKgqB,WAAW,IAIxB2H,GAAYvqB,UAAYpH,EAAKkH,UAC7ByqB,GAAY3Z,YAAanD,EAAQ8c,GAAYrsB,eAGvC7B,GAAQqD,cAAiBrD,GAAQymB,gBACnB,IAAlBlqB,EAAKzB,UAAoC,KAAlByB,EAAKzB,UAAqBkB,GAAO2kB,SAASpkB,IAOnE,IAJAmyB,EAAe7tB,EAAQuQ,GACvBud,EAAc9tB,EAAQtE,GAGhBC,EAAI,EAA8B,OAA1B4e,EAAOuT,EAAYnyB,MAAeA,EAE1CkyB,EAAalyB,IACjB4G,EAAoBgY,EAAMsT,EAAalyB,GAM1C,IAAKgyB,EACJ,GAAKC,EAIJ,IAHAE,EAAcA,GAAe9tB,EAAQtE,GACrCmyB,EAAeA,GAAgB7tB,EAAQuQ,GAEjC5U,EAAI,EAA8B,OAA1B4e,EAAOuT,EAAYnyB,IAAaA,IAC7CkG,EAAgB0Y,EAAMsT,EAAalyB,QAGpCkG,GAAgBnG,EAAM6U,EAaxB,OARAsd,GAAe7tB,EAAQuQ,EAAO,UACzBsd,EAAa/6B,OAAS,GAC1B4O,EAAemsB,GAAeE,GAAU/tB,EAAQtE,EAAM,WAGvDmyB,EAAeC,EAAcvT,EAAO,KAG7BhK,GAGRyd,cAAe,SAAU9tB,EAAOvO,EAASs8B,EAASC,GAWjD,IAVA,GAAIhe,GAAGxU,EAAM6W,EACZ5E,EAAK1N,EAAKulB,EAAO2I,EACjBlsB,EAAI/B,EAAMpN,OAGVs7B,EAAO1uB,EAAoB/N,GAE3B08B,KACA1yB,EAAI,EAEOsG,EAAJtG,EAAOA,IAGd,GAFAD,EAAOwE,EAAOvE,GAETD,GAAiB,IAATA,EAGZ,GAA6B,WAAxBP,GAAOD,KAAMQ,GACjBP,GAAOsF,MAAO4tB,EAAO3yB,EAAKzB,UAAayB,GAASA,OAG1C,IAAM4wB,GAAMzwB,KAAMH,GAIlB,CAWN,IAVAiS,EAAMA,GAAOygB,EAAKntB,YAAatP,EAAQoO,cAAc,QAGrDE,GAAOmsB,GAAS5qB,KAAM9F,KAAY,GAAI,KAAO,GAAI8B,cACjD2wB,EAAOxB,GAAS1sB,IAAS0sB,GAAQpE,SAEjC5a,EAAI7K,UAAYqrB,EAAK,GAAKzyB,EAAK4B,QAAS6uB,GAAW,aAAgBgC,EAAK,GAGxEje,EAAIie,EAAK,GACDje,KACPvC,EAAMA,EAAI6P,SASX,KALMre,GAAQomB,mBAAqB2G,GAAmBrwB,KAAMH,IAC3D2yB,EAAMj2B,KAAMzG,EAAQ28B,eAAgBpC,GAAmB1qB,KAAM9F,GAAO,MAI/DyD,GAAQqmB,MAYb,IATA9pB,EAAe,UAARuE,GAAoBosB,GAAOxwB,KAAMH,GAI3B,YAAZyyB,EAAK,IAAqB9B,GAAOxwB,KAAMH,GAEtC,EADAiS,EAJDA,EAAI3M,WAOLkP,EAAIxU,GAAQA,EAAK6E,WAAWzN,OACpBod,KACF/U,GAAOqF,SAAWglB,EAAQ9pB,EAAK6E,WAAW2P,GAAK,WAAcsV,EAAMjlB,WAAWzN,QAClF4I,EAAKgY,YAAa8R,EAWrB,KANArqB,GAAOsF,MAAO4tB,EAAO1gB,EAAIpN,YAGzBoN,EAAIyO,YAAc,GAGVzO,EAAI3M,YACX2M,EAAI+F,YAAa/F,EAAI3M,WAItB2M,GAAMygB,EAAK5Q,cAtDX6Q,GAAMj2B,KAAMzG,EAAQ28B,eAAgB5yB,GAuEvC,KAXKiS,GACJygB,EAAK1a,YAAa/F,GAKbxO,GAAQwmB,eACbxqB,GAAOM,KAAMuE,EAAQquB,EAAO,SAAW3tB,GAGxC/E,EAAI,EACKD,EAAO2yB,EAAO1yB,MAItB,KAAKuyB,GAAmD,KAAtC/yB,GAAOW,QAASJ,EAAMwyB,MAIxC3b,EAAWpX,GAAOoX,SAAU7W,EAAKwF,cAAexF,GAGhDiS,EAAM3N,EAAQouB,EAAKntB,YAAavF,GAAQ,UAGnC6W,GACJ7Q,EAAeiM,GAIXsgB,GAEJ,IADA/d,EAAI,EACKxU,EAAOiS,EAAKuC,MACfuc,GAAY5wB,KAAMH,EAAKR,MAAQ,KACnC+yB,EAAQ71B,KAAMsD,EAQlB,OAFAiS,GAAM,KAECygB,GAGRlvB,UAAW,SAAUgB,EAAsBjC,GAQ1C,IAPA,GAAIvC,GAAMR,EAAMsD,EAAIpB,EACnBzB,EAAI,EACJyC,EAAcjD,GAAOkD,QACrBE,EAAQpD,GAAOoD,MACfa,EAAgBD,GAAQC,cACxBsnB,EAAUvrB,GAAO4B,MAAM2pB,QAEK,OAApBhrB,EAAOwE,EAAMvE,IAAaA,IAClC,IAAKsC,GAAc9C,GAAO8C,WAAYvC,MAErC8C,EAAK9C,EAAM0C,GACXhB,EAAOoB,GAAMD,EAAOC,IAER,CACX,GAAKpB,EAAKgF,OACT,IAAMlH,IAAQkC,GAAKgF,OACbskB,EAASxrB,GACbC,GAAO4B,MAAMmlB,OAAQxmB,EAAMR,GAI3BC,GAAOsH,YAAa/G,EAAMR,EAAMkC,EAAKiF,OAMnC9D,GAAOC,WAEJD,GAAOC,GAKTY,QACG1D,GAAM0C,SAEK1C,GAAK+F,kBAAoBpB,GAC3C3E,EAAK+F,gBAAiBrD,GAGtB1C,EAAM0C,GAAgB,KAGvBK,EAAWrG,KAAMoG,QAQvBrD,GAAO8T,GAAGrQ,QACT8D,KAAM,SAAU1Q,GACf,MAAOizB,IAAQ9vB,KAAM,SAAUnD,GAC9B,MAAiBqL,UAAVrL,EACNmJ,GAAOuH,KAAMvN,MACbA,KAAKsT,QAAQ8lB,QAAUp5B,KAAK,IAAMA,KAAK,GAAG+L,eAAiBtG,IAAW0zB,eAAgBt8B,KACrF,KAAMA,EAAOwS,UAAU1R,SAG3By7B,OAAQ,WACP,MAAOp5B,MAAKq5B,SAAUhqB,UAAW,SAAU9I,GAC1C,GAAuB,IAAlBvG,KAAK8E,UAAoC,KAAlB9E,KAAK8E,UAAqC,IAAlB9E,KAAK8E,SAAiB,CACzE,GAAIqS,GAASxL,EAAoB3L,KAAMuG,EACvC4Q,GAAOrL,YAAavF,OAKvB+yB,QAAS,WACR,MAAOt5B,MAAKq5B,SAAUhqB,UAAW,SAAU9I,GAC1C,GAAuB,IAAlBvG,KAAK8E,UAAoC,KAAlB9E,KAAK8E,UAAqC,IAAlB9E,KAAK8E,SAAiB,CACzE,GAAIqS,GAASxL,EAAoB3L,KAAMuG,EACvC4Q,GAAOoiB,aAAchzB,EAAM4Q,EAAOtL,gBAKrC2tB,OAAQ,WACP,MAAOx5B,MAAKq5B,SAAUhqB,UAAW,SAAU9I,GACrCvG,KAAKwN,YACTxN,KAAKwN,WAAW+rB,aAAchzB,EAAMvG,SAKvCy5B,MAAO,WACN,MAAOz5B,MAAKq5B,SAAUhqB,UAAW,SAAU9I,GACrCvG,KAAKwN,YACTxN,KAAKwN,WAAW+rB,aAAchzB,EAAMvG,KAAKgf,gBAK5C+N,OAAQ,SAAUlT,EAAU6f,GAK3B,IAJA,GAAInzB,GACHwE,EAAQ8O,EAAW7T,GAAO3C,OAAQwW,EAAU7Z,MAASA,KACrDwG,EAAI,EAEwB,OAApBD,EAAOwE,EAAMvE,IAAaA,IAE5BkzB,GAA8B,IAAlBnzB,EAAKzB,UACtBkB,GAAO+D,UAAWc,EAAQtE,IAGtBA,EAAKiH,aACJksB,GAAY1zB,GAAOoX,SAAU7W,EAAKwF,cAAexF,IACrDgG,EAAe1B,EAAQtE,EAAM,WAE9BA,EAAKiH,WAAW+Q,YAAahY,GAI/B,OAAOvG,OAGRsT,MAAO,WAIN,IAHA,GAAI/M,GACHC,EAAI,EAEuB,OAAnBD,EAAOvG,KAAKwG,IAAaA,IAAM,CAOvC,IALuB,IAAlBD,EAAKzB,UACTkB,GAAO+D,UAAWc,EAAQtE,GAAM,IAIzBA,EAAKsF,YACZtF,EAAKgY,YAAahY,EAAKsF,WAKnBtF,GAAKS,SAAWhB,GAAOqF,SAAU9E,EAAM,YAC3CA,EAAKS,QAAQrJ,OAAS,GAIxB,MAAOqC,OAGRob,MAAO,SAAUod,EAAeC,GAI/B,MAHAD,GAAiC,MAAjBA,GAAwB,EAAQA,EAChDC,EAAyC,MAArBA,EAA4BD,EAAgBC,EAEzDz4B,KAAK8J,IAAI,WACf,MAAO9D,IAAOoV,MAAOpb,KAAMw4B,EAAeC,MAI5CkB,KAAM,SAAU98B,GACf,MAAOizB,IAAQ9vB,KAAM,SAAUnD,GAC9B,GAAI0J,GAAOvG,KAAM,OAChBwG,EAAI,EACJsG,EAAI9M,KAAKrC,MAEV,IAAeuK,SAAVrL,EACJ,MAAyB,KAAlB0J,EAAKzB,SACXyB,EAAKoH,UAAUxF,QAAS0uB,GAAe,IACvC3uB,MAIF,IAAsB,gBAAVrL,KAAuBu6B,GAAa1wB,KAAM7J,KACnDmN,GAAQsmB,gBAAkBwG,GAAapwB,KAAM7J,MAC7CmN,GAAQomB,oBAAsB2G,GAAmBrwB,KAAM7J,MACxD26B,IAAUP,GAAS5qB,KAAMxP,KAAa,GAAI,KAAO,GAAIwL,eAAkB,CAExExL,EAAQA,EAAMsL,QAAS6uB,GAAW,YAElC,KACC,KAAWlqB,EAAJtG,EAAOA,IAEbD,EAAOvG,KAAKwG,OACW,IAAlBD,EAAKzB,WACTkB,GAAO+D,UAAWc,EAAQtE,GAAM,IAChCA,EAAKoH,UAAY9Q,EAInB0J,GAAO,EAGN,MAAMkC,KAGJlC,GACJvG,KAAKsT,QAAQ8lB,OAAQv8B,IAEpB,KAAMA,EAAOwS,UAAU1R,SAG3Bi8B,YAAa,WACZ,GAAIvd,GAAMhN,UAAW,EAcrB,OAXArP,MAAKq5B,SAAUhqB,UAAW,SAAU9I,GACnC8V,EAAMrc,KAAKwN,WAEXxH,GAAO+D,UAAWc,EAAQ7K,OAErBqc,GACJA,EAAIwd,aAActzB,EAAMvG,QAKnBqc,IAAQA,EAAI1e,QAAU0e,EAAIvX,UAAY9E,KAAOA,KAAK+sB,UAG1DxlB,OAAQ,SAAUsS,GACjB,MAAO7Z,MAAK+sB,OAAQlT,GAAU,IAG/Bwf,SAAU,SAAU3e,EAAMra,GAGzBqa,EAAO7Q,EAAOuF,SAAWsL,EAEzB,IAAIC,GAAOyK,EAAM0U,EAChBhB,EAAS7qB,EAAKkiB,EACd3pB,EAAI,EACJsG,EAAI9M,KAAKrC,OACTo8B,EAAM/5B,KACNg6B,EAAWltB,EAAI,EACfjQ,EAAQ6d,EAAK,GACbja,EAAauF,GAAOvF,WAAY5D,EAGjC,IAAK4D,GACDqM,EAAI,GAAsB,gBAAVjQ,KAChBmN,GAAQ0mB,YAAc2G,GAAS3wB,KAAM7J,GACxC,MAAOmD,MAAKkH,KAAK,SAAUvF,GAC1B,GAAImpB,GAAOiP,EAAInf,GAAIjZ,EACdlB,KACJia,EAAK,GAAK7d,EAAMsD,KAAMH,KAAM2B,EAAOmpB,EAAK6O,SAEzC7O,EAAKuO,SAAU3e,EAAMra,IAIvB,IAAKyM,IACJqjB,EAAWnqB,GAAO6yB,cAAene,EAAM1a,KAAM,GAAI+L,eAAe,EAAO/L,MACvE2a,EAAQwV,EAAStkB,WAEmB,IAA/BskB,EAAS/kB,WAAWzN,SACxBwyB,EAAWxV,GAGPA,GAAQ,CAMZ,IALAme,EAAU9yB,GAAO8D,IAAKe,EAAQslB,EAAU,UAAYnkB,GACpD8tB,EAAahB,EAAQn7B,OAITmP,EAAJtG,EAAOA,IACd4e,EAAO+K,EAEF3pB,IAAMwzB,IACV5U,EAAOpf,GAAOoV,MAAOgK,GAAM,GAAM,GAG5B0U,GACJ9zB,GAAOsF,MAAOwtB,EAASjuB,EAAQua,EAAM,YAIvC/kB,EAASF,KAAMH,KAAKwG,GAAI4e,EAAM5e,EAG/B,IAAKszB,EAOJ,IANA7rB,EAAM6qB,EAASA,EAAQn7B,OAAS,GAAIoO,cAGpC/F,GAAO8D,IAAKgvB,EAAS3sB,GAGf3F,EAAI,EAAOszB,EAAJtzB,EAAgBA,IAC5B4e,EAAO0T,EAAStyB,GACX8wB,GAAY5wB,KAAM0e,EAAKrf,MAAQ,MAClCC,GAAOyG,MAAO2Y,EAAM,eAAkBpf,GAAOoX,SAAUnP,EAAKmX,KAExDA,EAAKzY,IAEJ3G,GAAOi0B,UACXj0B,GAAOi0B,SAAU7U,EAAKzY,KAGvB3G,GAAO4V,YAAcwJ,EAAK7X,MAAQ6X,EAAK6B,aAAe7B,EAAKzX,WAAa,IAAKxF,QAASovB,GAAc,KAOxGpH,GAAWxV,EAAQ,KAIrB,MAAO3a,SAITgG,GAAOkB,MACNiH,SAAU,SACV+rB,UAAW,UACXX,aAAc,SACdY,YAAa,QACbC,WAAY,eACV,SAAU19B,EAAMqD,GAClBiG,GAAO8T,GAAIpd,GAAS,SAAUmd,GAO7B,IANA,GAAI9O,GACHvE,EAAI,EACJuC,KACAsxB,EAASr0B,GAAQ6T,GACjBgB,EAAOwf,EAAO18B,OAAS,EAEXkd,GAALrU,EAAWA,IAClBuE,EAAQvE,IAAMqU,EAAO7a,KAAOA,KAAKob,OAAM,GACvCpV,GAAQq0B,EAAO7zB,IAAMzG,GAAYgL,GAGjC9H,EAAKmM,MAAOrG,EAAKgC,EAAM1G,MAGxB,OAAOrE,MAAKwa,UAAWzR,KAKzB,IAAI2F,IACHD,OA8DD,WACC,GAAI6rB,EAEJtwB,IAAQ8J,iBAAmB,WAC1B,GAA4B,MAAvBwmB,EACJ,MAAOA,EAIRA,IAAsB,CAGtB,IAAIhc,GAAKlQ,EAAM2gB,CAGf,OADA3gB,GAAO3I,GAASwF,qBAAsB,QAAU,GAC1CmD,GAASA,EAAKF,OAMpBoQ,EAAM7Y,GAASmF,cAAe,OAC9BmkB,EAAYtpB,GAASmF,cAAe,OACpCmkB,EAAU7gB,MAAM8gB,QAAU,iEAC1B5gB,EAAKtC,YAAaijB,GAAYjjB,YAAawS,SAI/BA,GAAIpQ,MAAM2F,OAAS3I,KAE9BoT,EAAIpQ,MAAM8gB,QAGT,iJAGD1Q,EAAIxS,YAAarG,GAASmF,cAAe,QAAUsD,MAAM3M,MAAQ,MACjE+4B,EAA0C,IAApBhc,EAAIzN,aAG3BzC,EAAKmQ,YAAawQ,GAEXuL,GA3BP,UA+BF,IAMIvpB,IAAWE,GANXspB,GAAU,UAEVrpB,GAAY,GAAIyS,QAAQ,KAAOiM,GAAO,kBAAmB,KAK5D4K,GAAY,2BAERz1B,GAAO01B,kBACX1pB,GAAY,SAAUxK,GAIrB,MAAKA,GAAKwF,cAAcwN,YAAYmhB,OAC5Bn0B,EAAKwF,cAAcwN,YAAYkhB,iBAAkBl0B,EAAM,MAGxDxB,EAAO01B,iBAAkBl0B,EAAM,OAGvC0K,GAAS,SAAU1K,EAAM7J,EAAMi+B,GAC9B,GAAIp5B,GAAOq5B,EAAUC,EAAU9xB,EAC9BmF,EAAQ3H,EAAK2H,KAqCd,OAnCAysB,GAAWA,GAAY5pB,GAAWxK,GAGlCwC,EAAM4xB,EAAWA,EAASG,iBAAkBp+B,IAAUi+B,EAAUj+B,GAASwL,OAEpEyyB,IAES,KAAR5xB,GAAe/C,GAAOoX,SAAU7W,EAAKwF,cAAexF,KACxDwC,EAAM/C,GAAOkI,MAAO3H,EAAM7J,IAOtBwU,GAAUxK,KAAMqC,IAASwxB,GAAQ7zB,KAAMhK,KAG3C6E,EAAQ2M,EAAM3M,MACdq5B,EAAW1sB,EAAM0sB,SACjBC,EAAW3sB,EAAM2sB,SAGjB3sB,EAAM0sB,SAAW1sB,EAAM2sB,SAAW3sB,EAAM3M,MAAQwH,EAChDA,EAAM4xB,EAASp5B,MAGf2M,EAAM3M,MAAQA,EACd2M,EAAM0sB,SAAWA,EACjB1sB,EAAM2sB,SAAWA,IAMJ3yB,SAARa,EACNA,EACAA,EAAM,KAEGtD,GAASkJ,gBAAgBosB,eACpChqB,GAAY,SAAUxK,GACrB,MAAOA,GAAKw0B,cAGb9pB,GAAS,SAAU1K,EAAM7J,EAAMi+B,GAC9B,GAAIK,GAAMC,EAAIC,EAAQnyB,EACrBmF,EAAQ3H,EAAK2H,KAyCd,OAvCAysB,GAAWA,GAAY5pB,GAAWxK,GAClCwC,EAAM4xB,EAAWA,EAAUj+B,GAASwL,OAIxB,MAAPa,GAAemF,GAASA,EAAOxR,KACnCqM,EAAMmF,EAAOxR,IAUTwU,GAAUxK,KAAMqC,KAAUyxB,GAAU9zB,KAAMhK,KAG9Cs+B,EAAO9sB,EAAM8sB,KACbC,EAAK10B,EAAK40B,aACVD,EAASD,GAAMA,EAAGD,KAGbE,IACJD,EAAGD,KAAOz0B,EAAKw0B,aAAaC,MAE7B9sB,EAAM8sB,KAAgB,aAATt+B,EAAsB,MAAQqM,EAC3CA,EAAMmF,EAAMktB,UAAY,KAGxBltB,EAAM8sB,KAAOA,EACRE,IACJD,EAAGD,KAAOE,IAMGhzB,SAARa,EACNA,EACAA,EAAM,IAAM,SAmCf,WAkEC,QAASsyB,KAER,GAAI/c,GAAKlQ,EAAM2gB,EAAWlX,CAE1BzJ,GAAO3I,GAASwF,qBAAsB,QAAU,GAC1CmD,GAASA,EAAKF,QAMpBoQ,EAAM7Y,GAASmF,cAAe,OAC9BmkB,EAAYtpB,GAASmF,cAAe,OACpCmkB,EAAU7gB,MAAM8gB,QAAU,iEAC1B5gB,EAAKtC,YAAaijB,GAAYjjB,YAAawS,GAE3CA,EAAIpQ,MAAM8gB,QAGT,uKAMDsM,EAAmBC,GAAuB,EAC1CC,GAAyB,EAGpBz2B,EAAO01B,mBACXa,EAA0E,QAArDv2B,EAAO01B,iBAAkBnc,EAAK,WAAegH,IAClEiW,EACwE,SAArEx2B,EAAO01B,iBAAkBnc,EAAK,QAAY/c,MAAO,QAAUA,MAM9DsW,EAAWyG,EAAIxS,YAAarG,GAASmF,cAAe,QAGpDiN,EAAS3J,MAAM8gB,QAAU1Q,EAAIpQ,MAAM8gB,QAGlC,8HAEDnX,EAAS3J,MAAMutB,YAAc5jB,EAAS3J,MAAM3M,MAAQ,IACpD+c,EAAIpQ,MAAM3M,MAAQ,MAElBi6B,GACEpqB,YAAcrM,EAAO01B,iBAAkB5iB,EAAU,WAAe4jB,aAElEnd,EAAIC,YAAa1G,IAUlByG,EAAI3Q,UAAY,8CAChBkK,EAAWyG,EAAIrT,qBAAsB,MACrC4M,EAAU,GAAI3J,MAAM8gB,QAAU,2CAC9B0M,EAA0D,IAA/B7jB,EAAU,GAAI/G,aACpC4qB,IACJ7jB,EAAU,GAAI3J,MAAMG,QAAU,GAC9BwJ,EAAU,GAAI3J,MAAMG,QAAU,OAC9BqtB,EAA0D,IAA/B7jB,EAAU,GAAI/G,cAG1C1C,EAAKmQ,YAAawQ,IAxInB,GAAIzQ,GAAKpQ,EAAO5Q,EAAGg+B,EAAkBC,EACpCG,EAA0BF,CAG3Bld,GAAM7Y,GAASmF,cAAe,OAC9B0T,EAAI3Q,UAAY,qEAChBrQ,EAAIghB,EAAIrT,qBAAsB,KAAO,GACrCiD,EAAQ5Q,GAAKA,EAAE4Q,MAGTA,IAINA,EAAM8gB,QAAU,wBAIhBhlB,GAAQmI,QAA4B,QAAlBjE,EAAMiE,QAIxBnI,GAAQ2xB,WAAaztB,EAAMytB,SAE3Brd,EAAIpQ,MAAM0tB,eAAiB,cAC3Btd,EAAIiS,WAAW,GAAOriB,MAAM0tB,eAAiB,GAC7C5xB,GAAQ6xB,gBAA+C,gBAA7Bvd,EAAIpQ,MAAM0tB,eAIpC5xB,GAAQgH,UAAgC,KAApB9C,EAAM8C,WAA2C,KAAvB9C,EAAM4tB,cACzB,KAA1B5tB,EAAM6tB,gBAEP/1B,GAAOyD,OAAOO,IACbgyB,sBAAuB,WAItB,MAHiC,OAA5BN,GACJL,IAEMK,GAGRvqB,kBAAmB,WAIlB,MAH6B,OAAxBoqB,GACJF,IAEME,GAGRU,cAAe,WAId,MAHyB,OAApBX,GACJD,IAEMC,GAIRY,oBAAqB,WAIpB,MAH+B,OAA1BV,GACJH,IAEMG,SAmFVx1B,GAAOm2B,KAAO,SAAU51B,EAAMS,EAAS3G,EAAUqa,GAChD,GAAI3R,GAAKrM,EACRigB,IAGD,KAAMjgB,IAAQsK,GACb2V,EAAKjgB,GAAS6J,EAAK2H,MAAOxR,GAC1B6J,EAAK2H,MAAOxR,GAASsK,EAAStK,EAG/BqM,GAAM1I,EAAS+O,MAAO7I,EAAMmU,MAG5B,KAAMhe,IAAQsK,GACbT,EAAK2H,MAAOxR,GAASigB,EAAKjgB,EAG3B,OAAOqM,GAIR,IACEqzB,IAAS,kBACVC,GAAW,wBAIXC,GAAe,4BACfnsB,GAAY,GAAIwT,QAAQ,KAAOiM,GAAO,SAAU,KAChD2M,GAAU,GAAI5Y,QAAQ,YAAciM,GAAO,IAAK,KAEhD4M,IAAYr4B,SAAU,WAAYs4B,WAAY,SAAUpuB,QAAS,SACjEquB,IACCC,cAAe,IACfC,WAAY,OAGbltB,IAAgB,SAAU,IAAK,MAAO,KAuKvC1J,IAAOyD,QAGN6K,UACCnC,SACC9N,IAAK,SAAUkC,EAAMo0B,GACpB,GAAKA,EAAW,CAEf,GAAI5xB,GAAMkI,GAAQ1K,EAAM,UACxB,OAAe,KAARwC,EAAa,IAAMA,MAO9B8zB,WACCC,aAAe,EACfC,aAAe,EACfC,UAAY,EACZC,YAAc,EACdL,YAAc,EACdM,YAAc,EACd/qB,SAAW,EACXgrB,OAAS,EACTC,SAAW,EACXC,QAAU,EACVC,QAAU,EACVzpB,MAAQ,GAKT0pB,UAECC,QAASxzB,GAAQ2xB,SAAW,WAAa,cAI1CztB,MAAO,SAAU3H,EAAM7J,EAAMG,EAAOyT,GAEnC,GAAM/J,GAA0B,IAAlBA,EAAKzB,UAAoC,IAAlByB,EAAKzB,UAAmByB,EAAK2H,MAAlE,CAKA,GAAInF,GAAKhD,EAAM8M,EACdpD,EAAWzJ,GAAO0D,UAAWhN,GAC7BwR,EAAQ3H,EAAK2H,KASd,IAPAxR,EAAOsJ,GAAOu3B,SAAU9tB,KAAgBzJ,GAAOu3B,SAAU9tB,GAAaH,EAAgBpB,EAAOuB,IAI7FoD,EAAQ7M,GAAOsO,SAAU5X,IAAUsJ,GAAOsO,SAAU7E,GAGrCvH,SAAVrL,EAsCJ,MAAKgW,IAAS,OAASA,IAAqD3K,UAA3Ca,EAAM8J,EAAMxO,IAAKkC,GAAM,EAAO+J,IACvDvH,EAIDmF,EAAOxR,EAhCd,IAVAqJ,QAAclJ,GAGA,WAATkJ,IAAsBgD,EAAMwzB,GAAQlwB,KAAMxP,MAC9CA,GAAUkM,EAAI,GAAK,GAAMA,EAAI,GAAKqI,WAAYpL,GAAOuI,IAAKhI,EAAM7J,IAEhEqJ,EAAO,UAIM,MAATlJ,GAAiBA,IAAUA,IAKlB,WAATkJ,GAAsBC,GAAO62B,UAAWptB,KAC5C5S,GAAS,MAKJmN,GAAQ6xB,iBAA6B,KAAVh/B,GAA+C,IAA/BH,EAAK+c,QAAQ,gBAC7DvL,EAAOxR,GAAS,aAIXmW,GAAW,OAASA,IAAwD3K,UAA7CrL,EAAQgW,EAAMknB,IAAKxzB,EAAM1J,EAAOyT,MAIpE,IACCpC,EAAOxR,GAASG,EACf,MAAM4L,OAcX8F,IAAK,SAAUhI,EAAM7J,EAAM4T,EAAOE,GACjC,GAAI+J,GAAK9J,EAAKoC,EACbpD,EAAWzJ,GAAO0D,UAAWhN,EAyB9B,OAtBAA,GAAOsJ,GAAOu3B,SAAU9tB,KAAgBzJ,GAAOu3B,SAAU9tB,GAAaH,EAAgB/I,EAAK2H,MAAOuB,IAIlGoD,EAAQ7M,GAAOsO,SAAU5X,IAAUsJ,GAAOsO,SAAU7E,GAG/CoD,GAAS,OAASA,KACtBpC,EAAMoC,EAAMxO,IAAKkC,GAAM,EAAM+J,IAIjBpI,SAARuI,IACJA,EAAMQ,GAAQ1K,EAAM7J,EAAM8T,IAId,WAARC,GAAoB/T,IAAQggC,MAChCjsB,EAAMisB,GAAoBhgC,IAIZ,KAAV4T,GAAgBA,GACpBiK,EAAMnJ,WAAYX,GACXH,KAAU,GAAQtK,GAAO0V,UAAWnB,GAAQA,GAAO,EAAI9J,GAExDA,KAITzK,GAAOkB,MAAO,SAAU,SAAW,SAAUV,EAAG9J,GAC/CsJ,GAAOsO,SAAU5X,IAChB2H,IAAK,SAAUkC,EAAMo0B,EAAUrqB,GAC9B,MAAKqqB,GAGG2B,GAAa51B,KAAMV,GAAOuI,IAAKhI,EAAM,aAAsC,IAArBA,EAAKsK,YACjE7K,GAAOm2B,KAAM51B,EAAMi2B,GAAS,WAC3B,MAAO7rB,GAAkBpK,EAAM7J,EAAM4T,KAEtCK,EAAkBpK,EAAM7J,EAAM4T,GAPhC,QAWDypB,IAAK,SAAUxzB,EAAM1J,EAAOyT,GAC3B,GAAIE,GAASF,GAASS,GAAWxK,EACjC,OAAOyJ,GAAmBzJ,EAAM1J,EAAOyT,EACtCD,EACC9J,EACA7J,EACA4T,EACAtG,GAAQgH,WAAgE,eAAnDhL,GAAOuI,IAAKhI,EAAM,aAAa,EAAOiK,GAC3DA,GACG,OAMFxG,GAAQmI,UACbnM,GAAOsO,SAASnC,SACf9N,IAAK,SAAUkC,EAAMo0B,GAEpB,MAAO0B,IAAS31B,MAAOi0B,GAAYp0B,EAAKw0B,aAAex0B,EAAKw0B,aAAa13B,OAASkD,EAAK2H,MAAM7K,SAAW,IACrG,IAAO+N,WAAYuS,OAAO8Z,IAAS,GACrC9C,EAAW,IAAM,IAGnBZ,IAAK,SAAUxzB,EAAM1J,GACpB,GAAIqR,GAAQ3H,EAAK2H,MAChB6sB,EAAex0B,EAAKw0B,aACpB5oB,EAAUnM,GAAO0V,UAAW7e,GAAU,iBAA2B,IAARA,EAAc,IAAM,GAC7EwG,EAAS03B,GAAgBA,EAAa13B,QAAU6K,EAAM7K,QAAU,EAIjE6K,GAAM2F,KAAO,GAINhX,GAAS,GAAe,KAAVA,IAC6B,KAAhDmJ,GAAO4H,KAAMvK,EAAO8E,QAASi0B,GAAQ,MACrCluB,EAAM5B,kBAKP4B,EAAM5B,gBAAiB,UAGR,KAAVzP,GAAgBk+B,IAAiBA,EAAa13B,UAMpD6K,EAAM7K,OAAS+4B,GAAO11B,KAAMrD,GAC3BA,EAAO8E,QAASi0B,GAAQjqB,GACxB9O,EAAS,IAAM8O,MAKnBnM,GAAOsO,SAASmnB,YAAczsB,EAAchF,GAAQkyB,oBACnD,SAAU31B,EAAMo0B,GACf,MAAKA,GAGG30B,GAAOm2B,KAAM51B,GAAQ8H,QAAW,gBACtC4C,IAAU1K,EAAM,gBAJlB,SAUFP,GAAOkB,MACNw2B,OAAQ,GACRC,QAAS,GACTC,OAAQ,SACN,SAAU56B,EAAQ66B,GACpB73B,GAAOsO,SAAUtR,EAAS66B,IACzBtpB,OAAQ,SAAU1X,GAOjB,IANA,GAAI2J,GAAI,EACPs3B,KAGAC,EAAyB,gBAAVlhC,GAAqBA,EAAMiF,MAAM,MAASjF,GAE9C,EAAJ2J,EAAOA,IACds3B,EAAU96B,EAAS0N,GAAWlK,GAAMq3B,GACnCE,EAAOv3B,IAAOu3B,EAAOv3B,EAAI,IAAOu3B,EAAO,EAGzC,OAAOD,KAIHvD,GAAQ7zB,KAAM1D,KACnBgD,GAAOsO,SAAUtR,EAAS66B,GAAS9D,IAAM/pB,KAI3ChK,GAAO8T,GAAGrQ,QACT8E,IAAK,SAAU7R,EAAMG,GACpB,MAAOizB,IAAQ9vB,KAAM,SAAUuG,EAAM7J,EAAMG,GAC1C,GAAI2T,GAAQsK,EACXhR,KACAtD,EAAI,CAEL,IAAKR,GAAO4D,QAASlN,GAAS,CAI7B,IAHA8T,EAASO,GAAWxK,GACpBuU,EAAMpe,EAAKiB,OAECmd,EAAJtU,EAASA,IAChBsD,EAAKpN,EAAM8J,IAAQR,GAAOuI,IAAKhI,EAAM7J,EAAM8J,IAAK,EAAOgK,EAGxD,OAAO1G,GAGR,MAAiB5B,UAAVrL,EACNmJ,GAAOkI,MAAO3H,EAAM7J,EAAMG,GAC1BmJ,GAAOuI,IAAKhI,EAAM7J,IACjBA,EAAMG,EAAOwS,UAAU1R,OAAS,IAEpCiS,KAAM,WACL,MAAOD,GAAU3P,MAAM,IAExBiU,KAAM,WACL,MAAOtE,GAAU3P,OAElB4S,OAAQ,SAAUgG,GACjB,MAAsB,iBAAVA,GACJA,EAAQ5Y,KAAK4P,OAAS5P,KAAKiU,OAG5BjU,KAAKkH,KAAK,WACX6I,GAAU/P,MACdgG,GAAQhG,MAAO4P,OAEf5J,GAAQhG,MAAOiU,YAUnBjO,GAAOqL,MAAQA,EAEfA,EAAMhT,WACLuB,YAAayR,EACbI,KAAM,SAAUlL,EAAMS,EAASsK,EAAMC,EAAKC,EAAQwsB,GACjDh+B,KAAKuG,KAAOA,EACZvG,KAAKsR,KAAOA,EACZtR,KAAKwR,OAASA,GAAU,QACxBxR,KAAKgH,QAAUA,EACfhH,KAAKmU,MAAQnU,KAAK6R,IAAM7R,KAAK6G,MAC7B7G,KAAKuR,IAAMA,EACXvR,KAAKg+B,KAAOA,IAAUh4B,GAAO62B,UAAWvrB,GAAS,GAAK,OAEvDzK,IAAK,WACJ,GAAIgM,GAAQxB,EAAM4sB,UAAWj+B,KAAKsR,KAElC,OAAOuB,IAASA,EAAMxO,IACrBwO,EAAMxO,IAAKrE,MACXqR,EAAM4sB,UAAU7K,SAAS/uB,IAAKrE,OAEhCqV,IAAK,SAAUF,GACd,GAAI+oB,GACHrrB,EAAQxB,EAAM4sB,UAAWj+B,KAAKsR,KAoB/B,OAlBKtR,MAAKgH,QAAQiO,SACjBjV,KAAK2rB,IAAMuS,EAAQl4B,GAAOwL,OAAQxR,KAAKwR,QACtC2D,EAASnV,KAAKgH,QAAQiO,SAAWE,EAAS,EAAG,EAAGnV,KAAKgH,QAAQiO,UAG9DjV,KAAK2rB,IAAMuS,EAAQ/oB,EAEpBnV,KAAK6R,KAAQ7R,KAAKuR,IAAMvR,KAAKmU,OAAU+pB,EAAQl+B,KAAKmU,MAE/CnU,KAAKgH,QAAQm3B,MACjBn+B,KAAKgH,QAAQm3B,KAAKh+B,KAAMH,KAAKuG,KAAMvG,KAAK6R,IAAK7R,MAGzC6S,GAASA,EAAMknB,IACnBlnB,EAAMknB,IAAK/5B,MAEXqR,EAAM4sB,UAAU7K,SAAS2G,IAAK/5B,MAExBA,OAITqR,EAAMhT,UAAUoT,KAAKpT,UAAYgT,EAAMhT,UAEvCgT,EAAM4sB,WACL7K,UACC/uB,IAAK,SAAUiO,GACd,GAAIrS,EAEJ,OAAiC,OAA5BqS,EAAM/L,KAAM+L,EAAMhB,OACpBgB,EAAM/L,KAAK2H,OAA2C,MAAlCoE,EAAM/L,KAAK2H,MAAOoE,EAAMhB,OAQ/CrR,EAAS+F,GAAOuI,IAAK+D,EAAM/L,KAAM+L,EAAMhB,KAAM,IAErCrR,GAAqB,SAAXA,EAAwBA,EAAJ,GAT9BqS,EAAM/L,KAAM+L,EAAMhB,OAW3ByoB,IAAK,SAAUznB,GAGTtM,GAAO8P,GAAGqoB,KAAM7rB,EAAMhB,MAC1BtL,GAAO8P,GAAGqoB,KAAM7rB,EAAMhB,MAAQgB,GACnBA,EAAM/L,KAAK2H,QAAgE,MAArDoE,EAAM/L,KAAK2H,MAAOlI,GAAOu3B,SAAUjrB,EAAMhB,QAAoBtL,GAAOsO,SAAUhC,EAAMhB,OACrHtL,GAAOkI,MAAOoE,EAAM/L,KAAM+L,EAAMhB,KAAMgB,EAAMT,IAAMS,EAAM0rB,MAExD1rB,EAAM/L,KAAM+L,EAAMhB,MAASgB,EAAMT,OASrCR,EAAM4sB,UAAUnJ,UAAYzjB,EAAM4sB,UAAUvJ,YAC3CqF,IAAK,SAAUznB,GACTA,EAAM/L,KAAKzB,UAAYwN,EAAM/L,KAAKiH,aACtC8E,EAAM/L,KAAM+L,EAAMhB,MAASgB,EAAMT,OAKpC7L,GAAOwL,QACN4sB,OAAQ,SAAUC,GACjB,MAAOA,IAERC,MAAO,SAAUD,GAChB,MAAO,GAAMrgC,KAAKugC,IAAKF,EAAIrgC,KAAKwgC,IAAO,IAIzCx4B,GAAO8P,GAAKzE,EAAMhT,UAAUoT,KAG5BzL,GAAO8P,GAAGqoB,OAKV,IACCvsB,IAAO6sB,GACP1qB,GAAW,yBACX2qB,GAAS,GAAI/a,QAAQ,iBAAmBiM,GAAO,cAAe,KAC9D+O,GAAO,cACPjqB,IAAwBjC,GACxBD,IACCosB,KAAO,SAAUttB,EAAMzU,GACtB,GAAIyV,GAAQtS,KAAKoS,YAAad,EAAMzU,GACnCsa,EAAS7E,EAAMzL,MACfk3B,EAAQW,GAAOryB,KAAMxP,GACrBmhC,EAAOD,GAASA,EAAO,KAAS/3B,GAAO62B,UAAWvrB,GAAS,GAAK,MAGhE6C,GAAUnO,GAAO62B,UAAWvrB,IAAmB,OAAT0sB,IAAkB7mB,IACvDunB,GAAOryB,KAAMrG,GAAOuI,IAAK+D,EAAM/L,KAAM+K,IACtCutB,EAAQ,EACRC,EAAgB,EAEjB,IAAK3qB,GAASA,EAAO,KAAQ6pB,EAAO,CAEnCA,EAAOA,GAAQ7pB,EAAO,GAGtB4pB,EAAQA,MAGR5pB,GAASgD,GAAU,CAEnB,GAGC0nB,GAAQA,GAAS,KAGjB1qB,GAAgB0qB,EAChB74B,GAAOkI,MAAOoE,EAAM/L,KAAM+K,EAAM6C,EAAQ6pB,SAI/Ba,KAAWA,EAAQvsB,EAAMzL,MAAQsQ,IAAqB,IAAV0nB,KAAiBC,GAaxE,MATKf,KACJ5pB,EAAQ7B,EAAM6B,OAASA,IAAUgD,GAAU,EAC3C7E,EAAM0rB,KAAOA,EAEb1rB,EAAMf,IAAMwsB,EAAO,GAClB5pB,GAAU4pB,EAAO,GAAM,GAAMA,EAAO,IACnCA,EAAO,IAGHzrB,IA0UVtM,IAAOwO,UAAYxO,GAAOyD,OAAQ+K,GACjCuqB,QAAS,SAAUrsB,EAAOrS,GACpB2F,GAAOvF,WAAYiS,IACvBrS,EAAWqS,EACXA,GAAU,MAEVA,EAAQA,EAAM5Q,MAAM,IAOrB,KAJA,GAAIwP,GACH3P,EAAQ,EACRhE,EAAS+U,EAAM/U,OAEAA,EAARgE,EAAiBA,IACxB2P,EAAOoB,EAAO/Q,GACd6Q,GAAUlB,GAASkB,GAAUlB,OAC7BkB,GAAUlB,GAAOmF,QAASpW,IAI5B2+B,UAAW,SAAU3+B,EAAUi5B,GACzBA,EACJ5kB,GAAoB+B,QAASpW,GAE7BqU,GAAoBzR,KAAM5C,MAK7B2F,GAAOi5B,MAAQ,SAAUA,EAAOztB,EAAQsI,GACvC,GAAIolB,GAAMD,GAA0B,gBAAVA,GAAqBj5B,GAAOyD,UAAYw1B,IACjEhpB,SAAU6D,IAAOA,GAAMtI,GACtBxL,GAAOvF,WAAYw+B,IAAWA,EAC/BhqB,SAAUgqB,EACVztB,OAAQsI,GAAMtI,GAAUA,IAAWxL,GAAOvF,WAAY+Q,IAAYA,EAwBnE,OArBA0tB,GAAIjqB,SAAWjP,GAAO8P,GAAG6Y,IAAM,EAA4B,gBAAjBuQ,GAAIjqB,SAAwBiqB,EAAIjqB,SACzEiqB,EAAIjqB,WAAYjP,IAAO8P,GAAGqpB,OAASn5B,GAAO8P,GAAGqpB,OAAQD,EAAIjqB,UAAajP,GAAO8P,GAAGqpB,OAAO/L,UAGtE,MAAb8L,EAAI/rB,OAAiB+rB,EAAI/rB,SAAU,KACvC+rB,EAAI/rB,MAAQ,MAIb+rB,EAAIviB,IAAMuiB,EAAIjpB,SAEdipB,EAAIjpB,SAAW,WACTjQ,GAAOvF,WAAYy+B,EAAIviB,MAC3BuiB,EAAIviB,IAAIxc,KAAMH,MAGVk/B,EAAI/rB,OACRnN,GAAOspB,QAAStvB,KAAMk/B,EAAI/rB,QAIrB+rB,GAGRl5B,GAAO8T,GAAGrQ,QACT21B,OAAQ,SAAUH,EAAOI,EAAI7tB,EAAQnR,GAGpC,MAAOL,MAAKqD,OAAQ0M,IAAWxB,IAAK,UAAW,GAAIqB,OAGjD2B,MAAM+tB,SAAUntB,QAASktB,GAAMJ,EAAOztB,EAAQnR,IAEjDi/B,QAAS,SAAUhuB,EAAM2tB,EAAOztB,EAAQnR,GACvC,GAAIiT,GAAQtN,GAAO2C,cAAe2I,GACjCiuB,EAASv5B,GAAOi5B,MAAOA,EAAOztB,EAAQnR,GACtCm/B,EAAc,WAEb,GAAIxsB,GAAOwB,EAAWxU,KAAMgG,GAAOyD,UAAY6H,GAAQiuB,IAGlDjsB,GAAStN,GAAOyG,MAAOzM,KAAM,YACjCgT,EAAK2C,MAAM,GAKd,OAFC6pB,GAAYC,OAASD,EAEflsB,GAASisB,EAAOpsB,SAAU,EAChCnT,KAAKkH,KAAMs4B,GACXx/B,KAAKmT,MAAOosB,EAAOpsB,MAAOqsB,IAE5B7pB,KAAM,SAAU5P,EAAM0pB,EAAY7Z,GACjC,GAAI8pB,GAAY,SAAU7sB,GACzB,GAAI8C,GAAO9C,EAAM8C,WACV9C,GAAM8C,KACbA,EAAMC,GAYP,OATqB,gBAAT7P,KACX6P,EAAU6Z,EACVA,EAAa1pB,EACbA,EAAOmC,QAEHunB,GAAc1pB,KAAS,GAC3B/F,KAAKmT,MAAOpN,GAAQ,SAGd/F,KAAKkH,KAAK,WAChB,GAAIooB,IAAU,EACb3tB,EAAgB,MAARoE,GAAgBA,EAAO,aAC/B45B,EAAS35B,GAAO25B,OAChB13B,EAAOjC,GAAOyG,MAAOzM,KAEtB,IAAK2B,EACCsG,EAAMtG,IAAWsG,EAAMtG,GAAQgU,MACnC+pB,EAAWz3B,EAAMtG,QAGlB,KAAMA,IAASsG,GACTA,EAAMtG,IAAWsG,EAAMtG,GAAQgU,MAAQgpB,GAAKj4B,KAAM/E,IACtD+9B,EAAWz3B,EAAMtG,GAKpB,KAAMA,EAAQg+B,EAAOhiC,OAAQgE,KACvBg+B,EAAQh+B,GAAQ4E,OAASvG,MAAiB,MAAR+F,GAAgB45B,EAAQh+B,GAAQwR,QAAUpN,IAChF45B,EAAQh+B,GAAQqR,KAAK2C,KAAMC,GAC3B0Z,GAAU,EACVqQ,EAAO1kB,OAAQtZ,EAAO,KAOnB2tB,IAAY1Z,IAChB5P,GAAOspB,QAAStvB,KAAM+F,MAIzB05B,OAAQ,SAAU15B,GAIjB,MAHKA,MAAS,IACbA,EAAOA,GAAQ,MAET/F,KAAKkH,KAAK,WAChB,GAAIvF,GACHsG,EAAOjC,GAAOyG,MAAOzM,MACrBmT,EAAQlL,EAAMlC,EAAO,SACrB8M,EAAQ5K,EAAMlC,EAAO,cACrB45B,EAAS35B,GAAO25B,OAChBhiC,EAASwV,EAAQA,EAAMxV,OAAS,CAajC,KAVAsK,EAAKw3B,QAAS,EAGdz5B,GAAOmN,MAAOnT,KAAM+F,MAEf8M,GAASA,EAAM8C,MACnB9C,EAAM8C,KAAKxV,KAAMH,MAAM,GAIlB2B,EAAQg+B,EAAOhiC,OAAQgE,KACvBg+B,EAAQh+B,GAAQ4E,OAASvG,MAAQ2/B,EAAQh+B,GAAQwR,QAAUpN,IAC/D45B,EAAQh+B,GAAQqR,KAAK2C,MAAM,GAC3BgqB,EAAO1kB,OAAQtZ,EAAO,GAKxB,KAAMA,EAAQ,EAAWhE,EAARgE,EAAgBA,IAC3BwR,EAAOxR,IAAWwR,EAAOxR,GAAQ89B,QACrCtsB,EAAOxR,GAAQ89B,OAAOt/B,KAAMH,YAKvBiI,GAAKw3B,YAKfz5B,GAAOkB,MAAO,SAAU,OAAQ,QAAU,SAAUV,EAAG9J,GACtD,GAAIkjC,GAAQ55B,GAAO8T,GAAIpd,EACvBsJ,IAAO8T,GAAIpd,GAAS,SAAUuiC,EAAOztB,EAAQnR,GAC5C,MAAgB,OAAT4+B,GAAkC,iBAAVA,GAC9BW,EAAMxwB,MAAOpP,KAAMqP,WACnBrP,KAAKs/B,QAASxtB,EAAOpV,GAAM,GAAQuiC,EAAOztB,EAAQnR,MAKrD2F,GAAOkB,MACN24B,UAAW/tB,EAAM,QACjBguB,QAAShuB,EAAM,QACfiuB,YAAajuB,EAAM,UACnBkuB,QAAU7tB,QAAS,QACnB8tB,SAAW9tB,QAAS,QACpB+tB,YAAc/tB,QAAS,WACrB,SAAUzV,EAAMgW,GAClB1M,GAAO8T,GAAIpd,GAAS,SAAUuiC,EAAOztB,EAAQnR,GAC5C,MAAOL,MAAKs/B,QAAS5sB,EAAOusB,EAAOztB,EAAQnR,MAI7C2F,GAAO25B,UACP35B,GAAO8P,GAAGjB,KAAO,WAChB,GAAIkB,GACH4pB,EAAS35B,GAAO25B,OAChBn5B,EAAI,CAIL,KAFAoL,GAAQ5L,GAAO6L,MAEPrL,EAAIm5B,EAAOhiC,OAAQ6I,IAC1BuP,EAAQ4pB,EAAQn5B,GAEVuP,KAAW4pB,EAAQn5B,KAAQuP,GAChC4pB,EAAO1kB,OAAQzU,IAAK,EAIhBm5B,GAAOhiC,QACZqI,GAAO8P,GAAGH,OAEX/D,GAAQ1J,QAGTlC,GAAO8P,GAAGC,MAAQ,SAAUA,GAC3B/P,GAAO25B,OAAO18B,KAAM8S,GACfA,IACJ/P,GAAO8P,GAAG3B,QAEVnO,GAAO25B,OAAOx8B,OAIhB6C,GAAO8P,GAAGqqB,SAAW,GAErBn6B,GAAO8P,GAAG3B,MAAQ,WACXsqB,KACLA,GAAU2B,YAAap6B,GAAO8P,GAAGjB,KAAM7O,GAAO8P,GAAGqqB,YAInDn6B,GAAO8P,GAAGH,KAAO,WAChB0qB,cAAe5B,IACfA,GAAU,MAGXz4B,GAAO8P,GAAGqpB,QACTmB,KAAM,IACNC,KAAM,IAENnN,SAAU,KAMXptB,GAAO8T,GAAG0mB,MAAQ,SAAU/9B,EAAMsD,GAIjC,MAHAtD,GAAOuD,GAAO8P,GAAK9P,GAAO8P,GAAGqpB,OAAQ18B,IAAUA,EAAOA,EACtDsD,EAAOA,GAAQ,KAER/F,KAAKmT,MAAOpN,EAAM,SAAUslB,EAAMxY,GACxC,GAAI4tB,GAAU9uB,WAAY0Z,EAAM5oB,EAChCoQ,GAAM8C,KAAO,WACZ+qB,aAAcD,OAMjB,WAEC,GAAI5a,GAAOvH,EAAKP,EAAQzgB,EAAG4hC,CAG3B5gB,GAAM7Y,GAASmF,cAAe,OAC9B0T,EAAIZ,aAAc,YAAa,KAC/BY,EAAI3Q,UAAY,qEAChBrQ,EAAIghB,EAAIrT,qBAAqB,KAAM,GAGnC8S,EAAStY,GAASmF,cAAc,UAChCs0B,EAAMnhB,EAAOjS,YAAarG,GAASmF,cAAc,WACjDib,EAAQvH,EAAIrT,qBAAqB,SAAU,GAE3C3N,EAAE4Q,MAAM8gB,QAAU,UAGlBhlB,GAAQ22B,gBAAoC,MAAlBriB,EAAI/b,UAI9ByH,GAAQkE,MAAQ,MAAMxH,KAAMpJ,EAAEgL,aAAa,UAI3C0B,GAAQ42B,eAA4C,OAA3BtjC,EAAEgL,aAAa,QAGxC0B,GAAQ62B,UAAYhb,EAAMhpB,MAI1BmN,GAAQ82B,YAAc5B,EAAIpxB,SAG1B9D,GAAQ+2B,UAAYt7B,GAASmF,cAAc,QAAQm2B,QAInDhjB,EAAOoL,UAAW,EAClBnf,GAAQg3B,aAAe9B,EAAI/V,SAI3BtD,EAAQpgB,GAASmF,cAAe,SAChCib,EAAMnI,aAAc,QAAS,IAC7B1T,GAAQ6b,MAA0C,KAAlCA,EAAMvd,aAAc,SAGpCud,EAAMhpB,MAAQ,IACdgpB,EAAMnI,aAAc,OAAQ,SAC5B1T,GAAQi3B,WAA6B,MAAhBpb,EAAMhpB,QAI5B,IAAIqkC,IAAU,KAEdl7B,IAAO8T,GAAGrQ,QACTgH,IAAK,SAAU5T,GACd,GAAIgW,GAAO9J,EAAKtI,EACf8F,EAAOvG,KAAK,EAEb,EAAA,GAAMqP,UAAU1R,OAsBhB,MAFA8C,GAAauF,GAAOvF,WAAY5D,GAEzBmD,KAAKkH,KAAK,SAAUV,GAC1B,GAAIiK,EAEmB,KAAlBzQ,KAAK8E,WAKT2L,EADIhQ,EACE5D,EAAMsD,KAAMH,KAAMwG,EAAGR,GAAQhG,MAAOyQ,OAEpC5T,EAIK,MAAP4T,EACJA,EAAM,GACoB,gBAARA,GAClBA,GAAO,GACIzK,GAAO4D,QAAS6G,KAC3BA,EAAMzK,GAAO8D,IAAK2G,EAAK,SAAU5T,GAChC,MAAgB,OAATA,EAAgB,GAAKA,EAAQ,MAItCgW,EAAQ7M,GAAOm7B,SAAUnhC,KAAK+F,OAAUC,GAAOm7B,SAAUnhC,KAAKqL,SAAShD,eAGjEwK,GAAW,OAASA,IAA8C3K,SAApC2K,EAAMknB,IAAK/5B,KAAMyQ,EAAK,WACzDzQ,KAAKnD,MAAQ4T,KAjDd,IAAKlK,EAGJ,MAFAsM,GAAQ7M,GAAOm7B,SAAU56B,EAAKR,OAAUC,GAAOm7B,SAAU56B,EAAK8E,SAAShD,eAElEwK,GAAS,OAASA,IAAgD3K,UAAtCa,EAAM8J,EAAMxO,IAAKkC,EAAM,UAChDwC,GAGRA,EAAMxC,EAAK1J,MAEW,gBAARkM,GAEbA,EAAIZ,QAAQ+4B,GAAS,IAEd,MAAPn4B,EAAc,GAAKA,OA0CxB/C,GAAOyD,QACN03B,UACC1J,QACCpzB,IAAK,SAAUkC,GACd,GAAIkK,GAAMzK,GAAOiG,KAAKC,KAAM3F,EAAM,QAClC,OAAc,OAAPkK,EACNA,EAGAzK,GAAO4H,KAAM5H,GAAOuH,KAAMhH,MAG7BwX,QACC1Z,IAAK,SAAUkC,GAYd,IAXA,GAAI1J,GAAO46B,EACVzwB,EAAUT,EAAKS,QACfrF,EAAQ4E,EAAK6iB,cACbuN,EAAoB,eAAdpwB,EAAKR,MAAiC,EAARpE,EACpCmO,EAAS6mB,EAAM,QACfvmB,EAAMumB,EAAMh1B,EAAQ,EAAIqF,EAAQrJ,OAChC6I,EAAY,EAAR7E,EACHyO,EACAumB,EAAMh1B,EAAQ,EAGJyO,EAAJ5J,EAASA,IAIhB,GAHAixB,EAASzwB,EAASR,IAGXixB,EAAO3pB,UAAYtH,IAAM7E,KAE5BqI,GAAQg3B,aAAevJ,EAAOtO,SAA+C,OAApCsO,EAAOnvB,aAAa,gBAC5DmvB,EAAOjqB,WAAW2b,WAAanjB,GAAOqF,SAAUosB,EAAOjqB,WAAY,aAAiB,CAMxF,GAHA3Q,EAAQmJ,GAAQyxB,GAAShnB,MAGpBkmB,EACJ,MAAO95B,EAIRiT,GAAO7M,KAAMpG,GAIf,MAAOiT,IAGRiqB,IAAK,SAAUxzB,EAAM1J,GAMpB,IALA,GAAIukC,GAAW3J,EACdzwB,EAAUT,EAAKS,QACf8I,EAAS9J,GAAO+V,UAAWlf,GAC3B2J,EAAIQ,EAAQrJ,OAEL6I,KAGP,GAFAixB,EAASzwB,EAASR,GAEbR,GAAOW,QAASX,GAAOm7B,SAAS1J,OAAOpzB,IAAKozB,GAAU3nB,IAAY,EAMtE,IACC2nB,EAAO3pB,SAAWszB,GAAY,EAE7B,MAAQ/5B,GAGTowB,EAAO4J,iBAIR5J,GAAO3pB,UAAW,CASpB,OAJMszB,KACL76B,EAAK6iB,cAAgB,IAGfpiB,OAOXhB,GAAOkB,MAAO,QAAS,YAAc,WACpClB,GAAOm7B,SAAUnhC,OAChB+5B,IAAK,SAAUxzB,EAAM1J,GACpB,MAAKmJ,IAAO4D,QAAS/M,GACX0J,EAAKmF,QAAU1F,GAAOW,QAASX,GAAOO,GAAMkK,MAAO5T,IAAW,EADxE,SAKImN,GAAQ62B,UACb76B,GAAOm7B,SAAUnhC,MAAOqE,IAAM,SAAUkC,GAGvC,MAAsC,QAA/BA,EAAK+B,aAAa,SAAoB,KAAO/B,EAAK1J,SAQ5D,IAAIykC,IAAUC,GACb7iB,GAAa1Y,GAAO4gB,KAAKlI,WACzB8iB,GAAc,0BACdb,GAAkB32B,GAAQ22B,gBAC1Bc,GAAcz3B,GAAQ6b,KAEvB7f,IAAO8T,GAAGrQ,QACTyC,KAAM,SAAUxP,EAAMG,GACrB,MAAOizB,IAAQ9vB,KAAMgG,GAAOkG,KAAMxP,EAAMG,EAAOwS,UAAU1R,OAAS,IAGnE+jC,WAAY,SAAUhlC,GACrB,MAAOsD,MAAKkH,KAAK,WAChBlB,GAAO07B,WAAY1hC,KAAMtD,QAK5BsJ,GAAOyD,QACNyC,KAAM,SAAU3F,EAAM7J,EAAMG,GAC3B,GAAIgW,GAAO9J,EACV44B,EAAQp7B,EAAKzB,QAGd,IAAMyB,GAAkB,IAAVo7B,GAAyB,IAAVA,GAAyB,IAAVA,EAK5C,aAAYp7B,GAAK+B,eAAiB4C,GAC1BlF,GAAOsL,KAAM/K,EAAM7J,EAAMG,IAKlB,IAAV8kC,GAAgB37B,GAAO2kB,SAAUpkB,KACrC7J,EAAOA,EAAK2L,cACZwK,EAAQ7M,GAAO47B,UAAWllC,KACvBsJ,GAAO4gB,KAAKzf,MAAMqd,KAAK9d,KAAMhK,GAAS6kC,GAAWD,KAGtCp5B,SAAVrL,EAaOgW,GAAS,OAASA,IAA6C,QAAnC9J,EAAM8J,EAAMxO,IAAKkC,EAAM7J,IACvDqM,GAGPA,EAAM/C,GAAOiG,KAAKC,KAAM3F,EAAM7J,GAGhB,MAAPqM,EACNb,OACAa,GApBc,OAAVlM,EAGOgW,GAAS,OAASA,IAAoD3K,UAA1Ca,EAAM8J,EAAMknB,IAAKxzB,EAAM1J,EAAOH,IAC9DqM,GAGPxC,EAAKmX,aAAchhB,EAAMG,EAAQ,IAC1BA,OAPPmJ,IAAO07B,WAAYn7B,EAAM7J,KAuB5BglC,WAAY,SAAUn7B,EAAM1J,GAC3B,GAAIH,GAAMmlC,EACTr7B,EAAI,EACJs7B,EAAYjlC,GAASA,EAAMsK,MAAOC,GAEnC,IAAK06B,GAA+B,IAAlBv7B,EAAKzB,SACtB,KAASpI,EAAOolC,EAAUt7B,MACzBq7B,EAAW77B,GAAO+7B,QAASrlC,IAAUA,EAGhCsJ,GAAO4gB,KAAKzf,MAAMqd,KAAK9d,KAAMhK,GAE5B+kC,IAAed,KAAoBa,GAAY96B,KAAMhK,GACzD6J,EAAMs7B,IAAa,EAInBt7B,EAAMP,GAAO0D,UAAW,WAAahN,IACpC6J,EAAMs7B,IAAa,EAKrB77B,GAAOkG,KAAM3F,EAAM7J,EAAM,IAG1B6J,EAAK+F,gBAAiBq0B,GAAkBjkC,EAAOmlC,IAKlDD,WACC77B,MACCg0B,IAAK,SAAUxzB,EAAM1J,GACpB,IAAMmN,GAAQi3B,YAAwB,UAAVpkC,GAAqBmJ,GAAOqF,SAAS9E,EAAM,SAAW,CAGjF,GAAIkK,GAAMlK,EAAK1J,KAKf,OAJA0J,GAAKmX,aAAc,OAAQ7gB,GACtB4T,IACJlK,EAAK1J,MAAQ4T,GAEP5T,QAQZ0kC,IACCxH,IAAK,SAAUxzB,EAAM1J,EAAOH,GAa3B,MAZKG,MAAU,EAEdmJ,GAAO07B,WAAYn7B,EAAM7J,GACd+kC,IAAed,KAAoBa,GAAY96B,KAAMhK,GAEhE6J,EAAKmX,cAAeijB,IAAmB36B,GAAO+7B,QAASrlC,IAAUA,EAAMA,GAIvE6J,EAAMP,GAAO0D,UAAW,WAAahN,IAAW6J,EAAM7J,IAAS,EAGzDA,IAKTsJ,GAAOkB,KAAMlB,GAAO4gB,KAAKzf,MAAMqd,KAAKphB,OAAO+D,MAAO,QAAU,SAAUX,EAAG9J,GAExE,GAAIslC,GAAStjB,GAAYhiB,IAAUsJ,GAAOiG,KAAKC,IAE/CwS,IAAYhiB,GAAS+kC,IAAed,KAAoBa,GAAY96B,KAAMhK,GACzE,SAAU6J,EAAM7J,EAAMgmB,GACrB,GAAI3Z,GAAKmE,CAUT,OATMwV,KAELxV,EAASwR,GAAYhiB,GACrBgiB,GAAYhiB,GAASqM,EACrBA,EAAqC,MAA/Bi5B,EAAQz7B,EAAM7J,EAAMgmB,GACzBhmB,EAAK2L,cACL,KACDqW,GAAYhiB,GAASwQ,GAEfnE,GAER,SAAUxC,EAAM7J,EAAMgmB,GACrB,MAAMA,GAAN,OACQnc,EAAMP,GAAO0D,UAAW,WAAahN,IAC3CA,EAAK2L,cACL,QAMCo5B,IAAgBd,KACrB36B,GAAO47B,UAAU/kC,OAChBk9B,IAAK,SAAUxzB,EAAM1J,EAAOH,GAC3B,MAAKsJ,IAAOqF,SAAU9E,EAAM,cAE3BA,EAAKwH,aAAelR,GAGbykC,IAAYA,GAASvH,IAAKxzB,EAAM1J,EAAOH,MAO5CikC,KAILW,IACCvH,IAAK,SAAUxzB,EAAM1J,EAAOH,GAE3B,GAAIqM,GAAMxC,EAAKqf,iBAAkBlpB,EAUjC,OATMqM,IACLxC,EAAK07B,iBACHl5B,EAAMxC,EAAKwF,cAAcm2B,gBAAiBxlC,IAI7CqM,EAAIlM,MAAQA,GAAS,GAGP,UAATH,GAAoBG,IAAU0J,EAAK+B,aAAc5L,GAC9CG,EADR,SAOF6hB,GAAWrV,GAAKqV,GAAWhiB,KAAOgiB,GAAWyjB,OAC5C,SAAU57B,EAAM7J,EAAMgmB,GACrB,GAAI3Z,EACJ,OAAM2Z,GAAN,QACS3Z,EAAMxC,EAAKqf,iBAAkBlpB,KAAyB,KAAdqM,EAAIlM,MACnDkM,EAAIlM,MACJ,MAKJmJ,GAAOm7B,SAAS7X,QACfjlB,IAAK,SAAUkC,EAAM7J,GACpB,GAAIqM,GAAMxC,EAAKqf,iBAAkBlpB,EACjC,OAAKqM,IAAOA,EAAI8d,UACR9d,EAAIlM,MADZ,QAIDk9B,IAAKuH,GAASvH,KAKf/zB,GAAO47B,UAAUQ,iBAChBrI,IAAK,SAAUxzB,EAAM1J,EAAOH,GAC3B4kC,GAASvH,IAAKxzB,EAAgB,KAAV1J,GAAe,EAAQA,EAAOH,KAMpDsJ,GAAOkB,MAAO,QAAS,UAAY,SAAUV,EAAG9J,GAC/CsJ,GAAO47B,UAAWllC,IACjBq9B,IAAK,SAAUxzB,EAAM1J,GACpB,MAAe,KAAVA,GACJ0J,EAAKmX,aAAchhB,EAAM,QAClBG,GAFR,YASEmN,GAAQkE,QACblI,GAAO47B,UAAU1zB,OAChB7J,IAAK,SAAUkC,GAId,MAAOA,GAAK2H,MAAM8gB,SAAW9mB,QAE9B6xB,IAAK,SAAUxzB,EAAM1J,GACpB,MAAS0J,GAAK2H,MAAM8gB,QAAUnyB,EAAQ,KAQzC,IAAIwlC,IAAa,6CAChBC,GAAa,eAEdt8B,IAAO8T,GAAGrQ,QACT6H,KAAM,SAAU5U,EAAMG,GACrB,MAAOizB,IAAQ9vB,KAAMgG,GAAOsL,KAAM5U,EAAMG,EAAOwS,UAAU1R,OAAS,IAGnE4kC,WAAY,SAAU7lC,GAErB,MADAA,GAAOsJ,GAAO+7B,QAASrlC,IAAUA,EAC1BsD,KAAKkH,KAAK,WAEhB,IACClH,KAAMtD,GAASwL,aACRlI,MAAMtD,GACZ,MAAO+L,UAKZzC,GAAOyD,QACNs4B,SACCS,MAAO,UACPC,QAAS,aAGVnxB,KAAM,SAAU/K,EAAM7J,EAAMG,GAC3B,GAAIkM,GAAK8J,EAAO6vB,EACff,EAAQp7B,EAAKzB,QAGd,IAAMyB,GAAkB,IAAVo7B,GAAyB,IAAVA,GAAyB,IAAVA,EAY5C,MARAe,GAAmB,IAAVf,IAAgB37B,GAAO2kB,SAAUpkB,GAErCm8B,IAEJhmC,EAAOsJ,GAAO+7B,QAASrlC,IAAUA,EACjCmW,EAAQ7M,GAAOi4B,UAAWvhC;AAGZwL,SAAVrL,EACGgW,GAAS,OAASA,IAAoD3K,UAA1Ca,EAAM8J,EAAMknB,IAAKxzB,EAAM1J,EAAOH,IAChEqM,EACExC,EAAM7J,GAASG,EAGXgW,GAAS,OAASA,IAA6C,QAAnC9J,EAAM8J,EAAMxO,IAAKkC,EAAM7J,IACzDqM,EACAxC,EAAM7J,IAITuhC,WACChV,UACC5kB,IAAK,SAAUkC,GAId,GAAIo8B,GAAW38B,GAAOiG,KAAKC,KAAM3F,EAAM,WAEvC,OAAOo8B,GACNC,SAAUD,EAAU,IACpBN,GAAW37B,KAAMH,EAAK8E,WAAci3B,GAAW57B,KAAMH,EAAK8E,WAAc9E,EAAKyiB,KAC5E,EACA,QAQAhf,GAAQ42B,gBAEb56B,GAAOkB,MAAO,OAAQ,OAAS,SAAUV,EAAG9J,GAC3CsJ,GAAOi4B,UAAWvhC,IACjB2H,IAAK,SAAUkC,GACd,MAAOA,GAAK+B,aAAc5L,EAAM,OAS9BsN,GAAQ82B,cACb96B,GAAOi4B,UAAUnwB,UAChBzJ,IAAK,SAAUkC,GACd,GAAIrG,GAASqG,EAAKiH,UAUlB,OARKtN,KACJA,EAAOkpB,cAGFlpB,EAAOsN,YACXtN,EAAOsN,WAAW4b,eAGb,QAKVpjB,GAAOkB,MACN,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,mBACE,WACFlB,GAAO+7B,QAAS/hC,KAAKqI,eAAkBrI,OAIlCgK,GAAQ+2B,UACb/6B,GAAO+7B,QAAQhB,QAAU,WAM1B,IAAI8B,IAAS,aAEb78B,IAAO8T,GAAGrQ,QACTq5B,SAAU,SAAUjmC,GACnB,GAAIkmC,GAASx8B,EAAMM,EAAKm8B,EAAOjoB,EAAGkoB,EACjCz8B,EAAI,EACJsU,EAAM9a,KAAKrC,OACXulC,EAA2B,gBAAVrmC,IAAsBA,CAExC,IAAKmJ,GAAOvF,WAAY5D,GACvB,MAAOmD,MAAKkH,KAAK,SAAU6T,GAC1B/U,GAAQhG,MAAO8iC,SAAUjmC,EAAMsD,KAAMH,KAAM+a,EAAG/a,KAAKuC,aAIrD,IAAK2gC,EAIJ,IAFAH,GAAYlmC,GAAS,IAAKsK,MAAOC,QAErB0T,EAAJtU,EAASA,IAOhB,GANAD,EAAOvG,KAAMwG,GACbK,EAAwB,IAAlBN,EAAKzB,WAAoByB,EAAKhE,WACjC,IAAMgE,EAAKhE,UAAY,KAAM4F,QAAS06B,GAAQ,KAChD,KAGU,CAEV,IADA9nB,EAAI,EACKioB,EAAQD,EAAQhoB,MACnBlU,EAAI4S,QAAS,IAAMupB,EAAQ,KAAQ,IACvCn8B,GAAOm8B,EAAQ,IAKjBC,GAAaj9B,GAAO4H,KAAM/G,GACrBN,EAAKhE,YAAc0gC,IACvB18B,EAAKhE,UAAY0gC,GAMrB,MAAOjjC,OAGRmjC,YAAa,SAAUtmC,GACtB,GAAIkmC,GAASx8B,EAAMM,EAAKm8B,EAAOjoB,EAAGkoB,EACjCz8B,EAAI,EACJsU,EAAM9a,KAAKrC,OACXulC,EAA+B,IAArB7zB,UAAU1R,QAAiC,gBAAVd,IAAsBA,CAElE,IAAKmJ,GAAOvF,WAAY5D,GACvB,MAAOmD,MAAKkH,KAAK,SAAU6T,GAC1B/U,GAAQhG,MAAOmjC,YAAatmC,EAAMsD,KAAMH,KAAM+a,EAAG/a,KAAKuC,aAGxD,IAAK2gC,EAGJ,IAFAH,GAAYlmC,GAAS,IAAKsK,MAAOC,QAErB0T,EAAJtU,EAASA,IAQhB,GAPAD,EAAOvG,KAAMwG,GAEbK,EAAwB,IAAlBN,EAAKzB,WAAoByB,EAAKhE,WACjC,IAAMgE,EAAKhE,UAAY,KAAM4F,QAAS06B,GAAQ,KAChD,IAGU,CAEV,IADA9nB,EAAI,EACKioB,EAAQD,EAAQhoB,MAExB,KAAQlU,EAAI4S,QAAS,IAAMupB,EAAQ,MAAS,GAC3Cn8B,EAAMA,EAAIsB,QAAS,IAAM66B,EAAQ,IAAK,IAKxCC,GAAapmC,EAAQmJ,GAAO4H,KAAM/G,GAAQ,GACrCN,EAAKhE,YAAc0gC,IACvB18B,EAAKhE,UAAY0gC,GAMrB,MAAOjjC,OAGRojC,YAAa,SAAUvmC,EAAOwmC,GAC7B,GAAIt9B,SAAclJ,EAElB,OAAyB,iBAAbwmC,IAAmC,WAATt9B,EAC9Bs9B,EAAWrjC,KAAK8iC,SAAUjmC,GAAUmD,KAAKmjC,YAAatmC,GAGzDmJ,GAAOvF,WAAY5D,GAChBmD,KAAKkH,KAAK,SAAUV,GAC1BR,GAAQhG,MAAOojC,YAAavmC,EAAMsD,KAAKH,KAAMwG,EAAGxG,KAAKuC,UAAW8gC,GAAWA,KAItErjC,KAAKkH,KAAK,WAChB,GAAc,WAATnB,EAOJ,IALA,GAAIxD,GACHiE,EAAI,EACJskB,EAAO9kB,GAAQhG,MACfsjC,EAAazmC,EAAMsK,MAAOC,QAElB7E,EAAY+gC,EAAY98B,MAE3BskB,EAAKyY,SAAUhhC,GACnBuoB,EAAKqY,YAAa5gC,GAElBuoB,EAAKgY,SAAUvgC,QAKNwD,IAASmF,IAAyB,YAATnF,KAC/B/F,KAAKuC,WAETyD,GAAOyG,MAAOzM,KAAM,gBAAiBA,KAAKuC,WAO3CvC,KAAKuC,UAAYvC,KAAKuC,WAAa1F,KAAU,EAAQ,GAAKmJ,GAAOyG,MAAOzM,KAAM,kBAAqB,OAKtGujC,SAAU,SAAU1pB,GAInB,IAHA,GAAItX,GAAY,IAAMsX,EAAW,IAChCrT,EAAI,EACJsG,EAAI9M,KAAKrC,OACEmP,EAAJtG,EAAOA,IACd,GAA0B,IAArBxG,KAAKwG,GAAG1B,WAAmB,IAAM9E,KAAKwG,GAAGjE,UAAY,KAAK4F,QAAQ06B,GAAQ,KAAKppB,QAASlX,IAAe,EAC3G,OAAO,CAIT,QAAO,KAUTyD,GAAOkB,KAAM,0MAEqDpF,MAAM,KAAM,SAAU0E,EAAG9J,GAG1FsJ,GAAO8T,GAAIpd,GAAS,SAAUuL,EAAM6R,GACnC,MAAOzK,WAAU1R,OAAS,EACzBqC,KAAK02B,GAAIh6B,EAAM,KAAMuL,EAAM6R,GAC3B9Z,KAAKwyB,QAAS91B,MAIjBsJ,GAAO8T,GAAGrQ,QACT+5B,MAAO,SAAUC,EAAQC,GACxB,MAAO1jC,MAAK61B,WAAY4N,GAAS3N,WAAY4N,GAASD,IAGvDE,KAAM,SAAUvS,EAAOnpB,EAAM6R,GAC5B,MAAO9Z,MAAK02B,GAAItF,EAAO,KAAMnpB,EAAM6R,IAEpC8pB,OAAQ,SAAUxS,EAAOtX,GACxB,MAAO9Z,MAAK2uB,IAAKyC,EAAO,KAAMtX,IAG/B+pB,SAAU,SAAUhqB,EAAUuX,EAAOnpB,EAAM6R,GAC1C,MAAO9Z,MAAK02B,GAAItF,EAAOvX,EAAU5R,EAAM6R,IAExCgqB,WAAY,SAAUjqB,EAAUuX,EAAOtX,GAEtC,MAA4B,KAArBzK,UAAU1R,OAAeqC,KAAK2uB,IAAK9U,EAAU,MAAS7Z,KAAK2uB,IAAKyC,EAAOvX,GAAY,KAAMC,KAKlG,IAAIiqB,IAAQ/9B,GAAO6L,MAEfmyB,GAAS,KAITC,GAAe,kIAEnBj+B,IAAOwC,UAAY,SAAUP,GAE5B,GAAKlD,EAAOI,MAAQJ,EAAOI,KAAK1H,MAG/B,MAAOsH,GAAOI,KAAK1H,MAAOwK,EAAO,GAGlC,IAAIi8B,GACHC,EAAQ,KACRC,EAAMp+B,GAAO4H,KAAM3F,EAAO,GAI3B,OAAOm8B,KAAQp+B,GAAO4H,KAAMw2B,EAAIj8B,QAAS87B,GAAc,SAAU1Z,EAAO8Z,EAAOC,EAAMv1B,GAQpF,MALKm1B,IAAmBG,IACvBF,EAAQ,GAIM,IAAVA,EACG5Z,GAIR2Z,EAAkBI,GAAQD,EAM1BF,IAAUp1B,GAASu1B,EAGZ,OAELC,SAAU,UAAYH,KACxBp+B,GAAO6S,MAAO,iBAAmB5Q,IAKnCjC,GAAOw+B,SAAW,SAAUv8B,GAC3B,GAAI6X,GAAKtH,CACT,KAAMvQ,GAAwB,gBAATA,GACpB,MAAO,KAER,KACMlD,EAAO0/B,WACXjsB,EAAM,GAAIisB,WACV3kB,EAAMtH,EAAIksB,gBAAiBz8B,EAAM,cAEjC6X,EAAM,GAAIzG,eAAe,oBACzByG,EAAI6kB,MAAQ,QACZ7kB,EAAI8kB,QAAS38B,IAEb,MAAOQ,GACRqX,EAAM5X,OAKP,MAHM4X,IAAQA,EAAInR,kBAAmBmR,EAAI7U,qBAAsB,eAAgBtN,QAC9EqI,GAAO6S,MAAO,gBAAkB5Q,GAE1B6X,EAIR,IAEC+kB,IACAC,GAEAC,GAAQ,OACRC,GAAM,gBACNC,GAAW,gCAEXC,GAAiB,4DACjBC,GAAa,iBACbC,GAAY,QACZC,GAAO,4DAWPC,MAOAruB,MAGAsuB,GAAW,KAAK17B,OAAO,IAIxB,KACCi7B,GAAejc,SAASG,KACvB,MAAOvgB,IAGRq8B,GAAer/B,GAASmF,cAAe,KACvCk6B,GAAa9b,KAAO,GACpB8b,GAAeA,GAAa9b,KAI7B6b,GAAeQ,GAAKh5B,KAAMy4B,GAAaz8B,mBAoOvCrC,GAAOyD,QAGN+7B,OAAQ,EAGRC,gBACAC,QAEApuB,cACCquB,IAAKb,GACL/+B,KAAM,MACN6/B,QAASV,GAAex+B,KAAMm+B,GAAc,IAC5C3/B,QAAQ,EACR2gC,aAAa,EACblB,OAAO,EACPmB,YAAa,mDAabC,SACCnH,IAAK2G,GACLh4B,KAAM,aACNosB,KAAM,YACN7Z,IAAK,4BACLkmB,KAAM,qCAGPnuB,UACCiI,IAAK,MACL6Z,KAAM,OACNqM,KAAM,QAGPttB,gBACCoH,IAAK,cACLvS,KAAM,eACNy4B,KAAM,gBAKP/tB,YAGCguB,SAAU7oC,OAGV8oC,aAAa,EAGbC,YAAangC,GAAOwC,UAGpB49B,WAAYpgC,GAAOw+B,UAOpBntB,aACCsuB,KAAK,EACLnpC,SAAS,IAOX6pC,UAAW,SAAUlvB,EAAQmvB,GAC5B,MAAOA,GAGNpvB,EAAYA,EAAYC,EAAQnR,GAAOsR,cAAgBgvB,GAGvDpvB,EAAYlR,GAAOsR,aAAcH,IAGnCovB,cAAepwB,EAA6BmvB,IAC5CkB,cAAerwB,EAA6Bc,IAG5CwvB,KAAM,SAAUd,EAAK3+B,GAoRpB,QAASgN,GAAM0yB,EAAQC,EAAkBlvB,EAAWmvB,GACnD,GAAIxuB,GAAWyuB,EAAShuB,EAAOV,EAAU2uB,EACxCC,EAAaJ,CAGC,KAAV/tB,IAKLA,EAAQ,EAGHouB,GACJtG,aAAcsG,GAKfC,EAAY/+B,OAGZg/B,EAAwBN,GAAW,GAGnCjwB,EAAM9O,WAAa6+B,EAAS,EAAI,EAAI,EAGpCtuB,EAAYsuB,GAAU,KAAgB,IAATA,GAA2B,MAAXA,EAGxCjvB,IACJU,EAAWZ,EAAqBC,EAAGb,EAAOc,IAI3CU,EAAWD,EAAaV,EAAGW,EAAUxB,EAAOyB,GAGvCA,GAGCZ,EAAE2vB,aACNL,EAAWnwB,EAAMqB,kBAAkB,iBAC9B8uB,IACJ9gC,GAAOy/B,aAAc2B,GAAaN,GAEnCA,EAAWnwB,EAAMqB,kBAAkB,QAC9B8uB,IACJ9gC,GAAO0/B,KAAM0B,GAAaN,IAKZ,MAAXJ,GAA6B,SAAXlvB,EAAEzR,KACxBghC,EAAa,YAGS,MAAXL,EACXK,EAAa,eAIbA,EAAa5uB,EAASS,MACtBiuB,EAAU1uB,EAASlQ,KACnB4Q,EAAQV,EAASU,MACjBT,GAAaS,KAKdA,EAAQkuB,GACHL,IAAWK,KACfA,EAAa,QACC,EAATL,IACJA,EAAS,KAMZ/vB,EAAM+vB,OAASA,EACf/vB,EAAMowB,YAAeJ,GAAoBI,GAAe,GAGnD3uB,EACJzD,EAASY,YAAa8xB,GAAmBR,EAASE,EAAYpwB,IAE9DhC,EAASkB,WAAYwxB,GAAmB1wB,EAAOowB,EAAYluB,IAI5DlC,EAAM2wB,WAAYA,GAClBA,EAAap/B,OAERq/B,GACJC,EAAmBhV,QAASpa,EAAY,cAAgB,aACrDzB,EAAOa,EAAGY,EAAYyuB,EAAUhuB,IAIpC4uB,EAAiBva,SAAUma,GAAmB1wB,EAAOowB,IAEhDQ,IACJC,EAAmBhV,QAAS,gBAAkB7b,EAAOa,MAE3CxR,GAAOw/B,QAChBx/B,GAAO4B,MAAM4qB,QAAQ,cA5XJ,gBAARmT,KACX3+B,EAAU2+B,EACVA,EAAMz9B,QAIPlB,EAAUA,KAEV,IACC+2B,GAEAv3B,EAEA4gC,EAEAF,EAEAF,EAGAO,EAEAN,EAEAS,EAEAlwB,EAAIxR,GAAOqgC,aAAer/B,GAE1BqgC,EAAkB7vB,EAAEhb,SAAWgb,EAE/BgwB,EAAqBhwB,EAAEhb,UAAa6qC,EAAgBviC,UAAYuiC,EAAgBhtB,QAC/ErU,GAAQqhC,GACRrhC,GAAO4B,MAER+M,EAAW3O,GAAO4O,WAClB6yB,EAAmBzhC,GAAOqmB,UAAU,eAEpCib,EAAa9vB,EAAE8vB,eAEfK,KACAC,KAEAhvB,EAAQ,EAERivB,EAAW,WAEXlxB,GACC9O,WAAY,EAGZmQ,kBAAmB,SAAUhQ,GAC5B,GAAIb,EACJ,IAAe,IAAVyR,EAAc,CAClB,IAAM8uB,EAEL,IADAA,KACSvgC,EAAQ89B,GAAS54B,KAAM66B,IAC/BQ,EAAiBvgC,EAAM,GAAGkB,eAAkBlB,EAAO,EAGrDA,GAAQugC,EAAiB1/B,EAAIK,eAE9B,MAAgB,OAATlB,EAAgB,KAAOA,GAI/B2gC,sBAAuB,WACtB,MAAiB,KAAVlvB,EAAcsuB,EAAwB,MAI9Ca,iBAAkB,SAAUrrC,EAAMG,GACjC,GAAImrC,GAAQtrC,EAAK2L,aAKjB,OAJMuQ,KACLlc,EAAOkrC,EAAqBI,GAAUJ,EAAqBI,IAAWtrC,EACtEirC,EAAgBjrC,GAASG,GAEnBmD,MAIRioC,iBAAkB,SAAUliC,GAI3B,MAHM6S,KACLpB,EAAEO,SAAWhS,GAEP/F,MAIRsnC,WAAY,SAAUx9B,GACrB,GAAIo+B,EACJ,IAAKp+B,EACJ,GAAa,EAAR8O,EACJ,IAAMsvB,IAAQp+B,GAEbw9B,EAAYY,IAAWZ,EAAYY,GAAQp+B,EAAKo+B,QAIjDvxB,GAAMnD,OAAQ1J,EAAK6M,EAAM+vB,QAG3B,OAAO1mC,OAIRgE,MAAO,SAAU+iC,GAChB,GAAIoB,GAAYpB,GAAcc,CAK9B,OAJKZ,IACJA,EAAUjjC,MAAOmkC,GAElBn0B,EAAM,EAAGm0B,GACFnoC,MAwCV,IAnCA2U,EAASa,QAASmB,GAAQV,SAAWwxB,EAAiBt6B,IACtDwJ,EAAMkwB,QAAUlwB,EAAM3C,KACtB2C,EAAMkC,MAAQlC,EAAMT,KAMpBsB,EAAEmuB,MAAUA,GAAOnuB,EAAEmuB,KAAOb,IAAiB,IAAK38B,QAAS48B,GAAO,IAAK58B,QAASi9B,GAAWP,GAAc,GAAM,MAG/GrtB,EAAEzR,KAAOiB,EAAQohC,QAAUphC,EAAQjB,MAAQyR,EAAE4wB,QAAU5wB,EAAEzR,KAGzDyR,EAAEhB,UAAYxQ,GAAO4H,KAAM4J,EAAEjB,UAAY,KAAMlO,cAAclB,MAAOC,MAAiB,IAG/D,MAAjBoQ,EAAE6wB,cACNtK,EAAQsH,GAAKh5B,KAAMmL,EAAEmuB,IAAIt9B,eACzBmP,EAAE6wB,eAAkBtK,GACjBA,EAAO,KAAQ8G,GAAc,IAAO9G,EAAO,KAAQ8G,GAAc,KAChE9G,EAAO,KAAwB,UAAfA,EAAO,GAAkB,KAAO,WAC/C8G,GAAc,KAA+B,UAAtBA,GAAc,GAAkB,KAAO,UAK/DrtB,EAAEvP,MAAQuP,EAAEquB,aAAiC,gBAAXruB,GAAEvP,OACxCuP,EAAEvP,KAAOjC,GAAO4xB,MAAOpgB,EAAEvP,KAAMuP,EAAEuB,cAIlCrC,EAA+B4uB,GAAY9tB,EAAGxQ,EAAS2P,GAGxC,IAAViC,EACJ,MAAOjC,EAKR4wB,GAAcvhC,GAAO4B,OAAS4P,EAAEtS,OAG3BqiC,GAAmC,IAApBvhC,GAAOw/B,UAC1Bx/B,GAAO4B,MAAM4qB,QAAQ,aAItBhb,EAAEzR,KAAOyR,EAAEzR,KAAKyJ,cAGhBgI,EAAE8wB,YAAcnD,GAAWz+B,KAAM8Q,EAAEzR,MAInCqhC,EAAW5vB,EAAEmuB,IAGPnuB,EAAE8wB,aAGF9wB,EAAEvP,OACNm/B,EAAa5vB,EAAEmuB,MAAS3B,GAAOt9B,KAAM0gC,GAAa,IAAM,KAAQ5vB,EAAEvP,WAE3DuP,GAAEvP,MAILuP,EAAEpO,SAAU,IAChBoO,EAAEmuB,IAAMX,GAAIt+B,KAAM0gC,GAGjBA,EAASj/B,QAAS68B,GAAK,OAASjB,MAGhCqD,GAAapD,GAAOt9B,KAAM0gC,GAAa,IAAM,KAAQ,KAAOrD,OAK1DvsB,EAAE2vB,aACDnhC,GAAOy/B,aAAc2B,IACzBzwB,EAAMoxB,iBAAkB,oBAAqB/hC,GAAOy/B,aAAc2B,IAE9DphC,GAAO0/B,KAAM0B,IACjBzwB,EAAMoxB,iBAAkB,gBAAiB/hC,GAAO0/B,KAAM0B,MAKnD5vB,EAAEvP,MAAQuP,EAAE8wB,YAAc9wB,EAAEsuB,eAAgB,GAAS9+B,EAAQ8+B,cACjEnvB,EAAMoxB,iBAAkB,eAAgBvwB,EAAEsuB,aAI3CnvB,EAAMoxB,iBACL,SACAvwB,EAAEhB,UAAW,IAAOgB,EAAEuuB,QAASvuB,EAAEhB,UAAU,IAC1CgB,EAAEuuB,QAASvuB,EAAEhB,UAAU,KAA8B,MAArBgB,EAAEhB,UAAW,GAAc,KAAO+uB,GAAW,WAAa,IAC1F/tB,EAAEuuB,QAAS,KAIb,KAAMv/B,IAAKgR,GAAEovB,QACZjwB,EAAMoxB,iBAAkBvhC,EAAGgR,EAAEovB,QAASpgC,GAIvC,IAAKgR,EAAE+wB,aAAgB/wB,EAAE+wB,WAAWpoC,KAAMknC,EAAiB1wB,EAAOa,MAAQ,GAAmB,IAAVoB,GAElF,MAAOjC,GAAM3S,OAId6jC,GAAW,OAGX,KAAMrhC,KAAOqgC,QAAS,EAAGhuB,MAAO,EAAG5C,SAAU,GAC5CU,EAAOnQ,GAAKgR,EAAGhR,GAOhB,IAHAygC,EAAYvwB,EAA+BO,GAAYO,EAAGxQ,EAAS2P,GAK5D,CACNA,EAAM9O,WAAa,EAGd0/B,GACJC,EAAmBhV,QAAS,YAAc7b,EAAOa,IAG7CA,EAAEmtB,OAASntB,EAAEipB,QAAU,IAC3BuG,EAAer1B,WAAW,WACzBgF,EAAM3S,MAAM,YACVwT,EAAEipB,SAGN,KACC7nB,EAAQ,EACRquB,EAAUuB,KAAMb,EAAgB3zB,GAC/B,MAAQvL,GAET,KAAa,EAARmQ,GAIJ,KAAMnQ,EAHNuL,GAAM,GAAIvL,QArBZuL,GAAM,GAAI,eA8IX,OAAO2C,IAGR8xB,QAAS,SAAU9C,EAAK19B,EAAM5H,GAC7B,MAAO2F,IAAO3B,IAAKshC,EAAK19B,EAAM5H,EAAU,SAGzCqoC,UAAW,SAAU/C,EAAKtlC,GACzB,MAAO2F,IAAO3B,IAAKshC,EAAKz9B,OAAW7H,EAAU,aAI/C2F,GAAOkB,MAAQ,MAAO,QAAU,SAAUV,EAAG4hC,GAC5CpiC,GAAQoiC,GAAW,SAAUzC,EAAK19B,EAAM5H,EAAU0F,GAQjD,MANKC,IAAOvF,WAAYwH,KACvBlC,EAAOA,GAAQ1F,EACfA,EAAW4H,EACXA,EAAOC,QAGDlC,GAAOygC,MACbd,IAAKA,EACL5/B,KAAMqiC,EACN7xB,SAAUxQ,EACVkC,KAAMA,EACN4+B,QAASxmC,OAMZ2F,GAAOi0B,SAAW,SAAU0L,GAC3B,MAAO3/B,IAAOygC,MACbd,IAAKA,EACL5/B,KAAM,MACNwQ,SAAU,SACVouB,OAAO,EACPz/B,QAAQ,EACRyjC,UAAU,KAKZ3iC,GAAO8T,GAAGrQ,QACTm/B,QAAS,SAAUjP,GAClB,GAAK3zB,GAAOvF,WAAYk5B,GACvB,MAAO35B,MAAKkH,KAAK,SAASV,GACzBR,GAAOhG,MAAM4oC,QAASjP,EAAKx5B,KAAKH,KAAMwG,KAIxC,IAAKxG,KAAK,GAAK,CAEd,GAAIg5B,GAAOhzB,GAAQ2zB,EAAM35B,KAAK,GAAG+L,eAAgB6O,GAAG,GAAGQ,OAAM,EAExDpb,MAAK,GAAGwN,YACZwrB,EAAKO,aAAcv5B,KAAK,IAGzBg5B,EAAKlvB,IAAI,WAGR,IAFA,GAAIvD,GAAOvG,KAEHuG,EAAKsF,YAA2C,IAA7BtF,EAAKsF,WAAW/G,UAC1CyB,EAAOA,EAAKsF,UAGb,OAAOtF,KACL6yB,OAAQp5B,MAGZ,MAAOA,OAGR6oC,UAAW,SAAUlP,GACpB,MAAK3zB,IAAOvF,WAAYk5B,GAChB35B,KAAKkH,KAAK,SAASV,GACzBR,GAAOhG,MAAM6oC,UAAWlP,EAAKx5B,KAAKH,KAAMwG,MAInCxG,KAAKkH,KAAK,WAChB,GAAI4jB,GAAO9kB,GAAQhG,MAClB6X,EAAWiT,EAAKjT,UAEZA,GAASla,OACbka,EAAS+wB,QAASjP,GAGlB7O,EAAKsO,OAAQO,MAKhBX,KAAM,SAAUW,GACf,GAAIl5B,GAAauF,GAAOvF,WAAYk5B,EAEpC,OAAO35B,MAAKkH,KAAK,SAASV,GACzBR,GAAQhG,MAAO4oC,QAASnoC,EAAak5B,EAAKx5B,KAAKH,KAAMwG,GAAKmzB,MAI5DmP,OAAQ,WACP,MAAO9oC,MAAKE,SAASgH,KAAK,WACnBlB,GAAOqF,SAAUrL,KAAM,SAC5BgG,GAAQhG,MAAO45B,YAAa55B,KAAKoL,cAEhCmG,SAKLvL,GAAO4gB,KAAKsD,QAAQra,OAAS,SAAUtJ,GAGtC,MAAOA,GAAKsK,aAAe,GAAKtK,EAAKuK,cAAgB,IAClD9G,GAAQgyB,yBACiE,UAAxEz1B,EAAK2H,OAAS3H,EAAK2H,MAAMG,SAAYrI,GAAOuI,IAAKhI,EAAM,aAG5DP,GAAO4gB,KAAKsD,QAAQ6e,QAAU,SAAUxiC,GACvC,OAAQP,GAAO4gB,KAAKsD,QAAQra,OAAQtJ,GAMrC,IAAIyiC,IAAM,OACT/vB,GAAW,QACXgwB,GAAQ,SACRC,GAAkB,wCAClBC,GAAe,oCAgChBnjC,IAAO4xB,MAAQ,SAAUt6B,EAAGyb,GAC3B,GAAI/V,GACHwU,KACArK,EAAM,SAAUnF,EAAKnL,GAEpBA,EAAQmJ,GAAOvF,WAAY5D,GAAUA,IAAqB,MAATA,EAAgB,GAAKA,EACtE2a,EAAGA,EAAE7Z,QAAWyrC,mBAAoBphC,GAAQ,IAAMohC,mBAAoBvsC,GASxE,IALqBqL,SAAhB6Q,IACJA,EAAc/S,GAAOsR,cAAgBtR,GAAOsR,aAAayB,aAIrD/S,GAAO4D,QAAStM,IAASA,EAAE+c,SAAWrU,GAAOqV,cAAe/d,GAEhE0I,GAAOkB,KAAM5J,EAAG,WACf6P,EAAKnN,KAAKtD,KAAMsD,KAAKnD,aAMtB,KAAMmG,IAAU1F,GACfwb,EAAa9V,EAAQ1F,EAAG0F,GAAU+V,EAAa5L,EAKjD,OAAOqK,GAAEtU,KAAM,KAAMiF,QAAS6gC,GAAK,MAGpChjC,GAAO8T,GAAGrQ,QACTvH,UAAW,WACV,MAAO8D,IAAO4xB,MAAO53B,KAAKqpC,mBAE3BA,eAAgB,WACf,MAAOrpC,MAAK8J,IAAI,WAEf,GAAI3D,GAAWH,GAAOsL,KAAMtR,KAAM,WAClC,OAAOmG,GAAWH,GAAO+V,UAAW5V,GAAanG,OAEjDqD,OAAO,WACP,GAAI0C,GAAO/F,KAAK+F,IAEhB,OAAO/F,MAAKtD,OAASsJ,GAAQhG,MAAO+qB,GAAI,cACvCoe,GAAaziC,KAAM1G,KAAKqL,YAAe69B,GAAgBxiC,KAAMX,KAC3D/F,KAAK0L,UAAYF,GAAe9E,KAAMX,MAEzC+D,IAAI,SAAUtD,EAAGD,GACjB,GAAIkK,GAAMzK,GAAQhG,MAAOyQ,KAEzB,OAAc,OAAPA,EACN,KACAzK,GAAO4D,QAAS6G,GACfzK,GAAO8D,IAAK2G,EAAK,SAAUA,GAC1B,OAAS/T,KAAM6J,EAAK7J,KAAMG,MAAO4T,EAAItI,QAAS8gC,GAAO,YAEpDvsC,KAAM6J,EAAK7J,KAAMG,MAAO4T,EAAItI,QAAS8gC,GAAO,WAC9C5kC,SAOL2B,GAAOsR,aAAagyB,IAA+BphC,SAAzBnD,EAAOsU,cAEhC,WAGC,OAAQrZ,KAAK4lC,SAQZ,wCAAwCl/B,KAAM1G,KAAK+F,OAEnDmT,KAAuBE,KAGzBF,CAED,IAAIqwB,IAAQ,EACXC,MACAC,GAAezjC,GAAOsR,aAAagyB,KAK/BvkC,GAAOwgB,aACXxgB,EAAOwgB,YAAa,WAAY,WAC/B,IAAM,GAAIvd,KAAOwhC,IAChBA,GAAcxhC,GAAOE,QAAW,KAMnC8B,GAAQ0/B,OAASD,IAAkB,mBAAqBA,IACxDA,GAAez/B,GAAQy8B,OAASgD,GAG3BA,IAEJzjC,GAAOwgC,cAAc,SAAUx/B,GAE9B,IAAMA,EAAQqhC,aAAer+B,GAAQ0/B,KAAO,CAE3C,GAAIrpC,EAEJ,QACCmoC,KAAM,SAAU5B,EAAS3wB,GACxB,GAAIzP,GACH8iC,EAAMtiC,EAAQsiC,MACdjgC,IAAOkgC,EAMR,IAHAD,EAAIhF,KAAMt9B,EAAQjB,KAAMiB,EAAQ2+B,IAAK3+B,EAAQ29B,MAAO39B,EAAQ2iC,SAAU3iC,EAAQ8iB,UAGzE9iB,EAAQ4iC,UACZ,IAAMpjC,IAAKQ,GAAQ4iC,UAClBN,EAAK9iC,GAAMQ,EAAQ4iC,UAAWpjC,EAK3BQ,GAAQ+Q,UAAYuxB,EAAIrB,kBAC5BqB,EAAIrB,iBAAkBjhC,EAAQ+Q,UAQzB/Q,EAAQqhC,aAAgBzB,EAAQ,sBACrCA,EAAQ,oBAAsB,iBAI/B,KAAMpgC,IAAKogC,GAOY1+B,SAAjB0+B,EAASpgC,IACb8iC,EAAIvB,iBAAkBvhC,EAAGogC,EAASpgC,GAAM,GAO1C8iC,GAAId,KAAQxhC,EAAQshC,YAActhC,EAAQiB,MAAU,MAGpD5H,EAAW,SAAUgH,EAAGwiC,GACvB,GAAInD,GAAQK,EAAYtvB,CAGxB,IAAKpX,IAAcwpC,GAA8B,IAAnBP,EAAIzhC,YAOjC,SALO2hC,IAAcngC,GACrBhJ,EAAW6H,OACXohC,EAAIQ,mBAAqB9jC,GAAOwD,KAG3BqgC,EACoB,IAAnBP,EAAIzhC,YACRyhC,EAAItlC,YAEC,CACNyT,KACAivB,EAAS4C,EAAI5C,OAKoB,gBAArB4C,GAAIS,eACftyB,EAAUlK,KAAO+7B,EAAIS,aAKtB,KACChD,EAAauC,EAAIvC,WAChB,MAAOt+B,GAERs+B,EAAa,GAQRL,IAAU1/B,EAAQ4+B,SAAY5+B,EAAQqhC,YAGrB,OAAX3B,IACXA,EAAS,KAHTA,EAASjvB,EAAUlK,KAAO,IAAM,IAS9BkK,GACJxB,EAAUywB,EAAQK,EAAYtvB,EAAW6xB,EAAIxB,0BAIzC9gC,EAAQ29B,MAGiB,IAAnB2E,EAAIzhC,WAGf8J,WAAYtR,GAGZipC,EAAIQ,mBAAqBN,GAAcngC,GAAOhJ,EAP9CA,KAWF2D,MAAO,WACD3D,GACJA,EAAU6H,QAAW,QAyB3BlC,GAAOqgC,WACNN,SACCiE,OAAQ,6FAETnyB,UACCmyB,OAAQ,uBAET/xB,YACCgyB,cAAe,SAAU18B,GAExB,MADAvH,IAAO4V,WAAYrO,GACZA,MAMVvH,GAAOugC,cAAe,SAAU,SAAU/uB,GACxBtP,SAAZsP,EAAEpO,QACNoO,EAAEpO,OAAQ,GAENoO,EAAE6wB,cACN7wB,EAAEzR,KAAO,MACTyR,EAAEtS,QAAS,KAKbc,GAAOwgC,cAAe,SAAU,SAAShvB,GAGxC,GAAKA,EAAE6wB,YAAc,CAEpB,GAAI2B,GACHE,EAAOzkC,GAASykC,MAAQlkC,GAAO,QAAQ,IAAMP,GAASkJ,eAEvD,QAEC65B,KAAM,SAAUnhC,EAAGhH,GAElB2pC,EAASvkC,GAASmF,cAAc,UAEhCo/B,EAAOrF,OAAQ,EAEVntB,EAAE2yB,gBACNH,EAAOI,QAAU5yB,EAAE2yB,eAGpBH,EAAOr9B,IAAM6K,EAAEmuB,IAGfqE,EAAOK,OAASL,EAAOF,mBAAqB,SAAUziC,EAAGwiC,IAEnDA,IAAYG,EAAOniC,YAAc,kBAAkBnB,KAAMsjC,EAAOniC,eAGpEmiC,EAAOK,OAASL,EAAOF,mBAAqB,KAGvCE,EAAOx8B,YACXw8B,EAAOx8B,WAAW+Q,YAAayrB,GAIhCA,EAAS,KAGHH,GACLxpC,EAAU,IAAK,aAOlB6pC,EAAK3Q,aAAcyQ,EAAQE,EAAKr+B,aAGjC7H,MAAO,WACDgmC,GACJA,EAAOK,OAAQniC,QAAW,OAU/B,IAAIoiC,OACHC,GAAS,mBAGVvkC,IAAOqgC,WACNmE,MAAO,WACPC,cAAe,WACd,GAAIpqC,GAAWiqC,GAAannC,OAAW6C,GAAOkD,QAAU,IAAQ66B,IAEhE,OADA/jC,MAAMK,IAAa,EACZA,KAKT2F,GAAOugC,cAAe,aAAc,SAAU/uB,EAAGkzB,EAAkB/zB,GAElE,GAAIg0B,GAAcC,EAAaC,EAC9BC,EAAWtzB,EAAEgzB,SAAU,IAAWD,GAAO7jC,KAAM8Q,EAAEmuB,KAChD,MACkB,gBAAXnuB,GAAEvP,QAAwBuP,EAAEsuB,aAAe,IAAKrsB,QAAQ,sCAAwC8wB,GAAO7jC,KAAM8Q,EAAEvP,OAAU,OAIlI,OAAK6iC,IAAiC,UAArBtzB,EAAEhB,UAAW,IAG7Bm0B,EAAenzB,EAAEizB,cAAgBzkC,GAAOvF,WAAY+W,EAAEizB,eACrDjzB,EAAEizB,gBACFjzB,EAAEizB,cAGEK,EACJtzB,EAAGszB,GAAatzB,EAAGszB,GAAW3iC,QAASoiC,GAAQ,KAAOI,GAC3CnzB,EAAEgzB,SAAU,IACvBhzB,EAAEmuB,MAAS3B,GAAOt9B,KAAM8Q,EAAEmuB,KAAQ,IAAM,KAAQnuB,EAAEgzB,MAAQ,IAAMG,GAIjEnzB,EAAES,WAAW,eAAiB,WAI7B,MAHM4yB,IACL7kC,GAAO6S,MAAO8xB,EAAe,mBAEvBE,EAAmB,IAI3BrzB,EAAEhB,UAAW,GAAM,OAGnBo0B,EAAc7lC,EAAQ4lC,GACtB5lC,EAAQ4lC,GAAiB,WACxBE,EAAoBx7B,WAIrBsH,EAAMnD,OAAO,WAEZzO,EAAQ4lC,GAAiBC,EAGpBpzB,EAAGmzB,KAEPnzB,EAAEizB,cAAgBC,EAAiBD,cAGnCH,GAAarnC,KAAM0nC,IAIfE,GAAqB7kC,GAAOvF,WAAYmqC,IAC5CA,EAAaC,EAAmB,IAGjCA,EAAoBD,EAAc1iC,SAI5B,UAtDR,SAgEDlC,GAAOilB,UAAY,SAAUhjB,EAAMzL,EAASuuC,GAC3C,IAAM9iC,GAAwB,gBAATA,GACpB,MAAO,KAEgB,kBAAZzL,KACXuuC,EAAcvuC,EACdA,GAAU,GAEXA,EAAUA,GAAWiJ,EAErB,IAAIulC,GAASngB,GAAWxe,KAAMpE,GAC7B6wB,GAAWiS,KAGZ,OAAKC,IACKxuC,EAAQoO,cAAeogC,EAAO,MAGxCA,EAAShlC,GAAO6yB,eAAiB5wB,GAAQzL,EAASs8B,GAE7CA,GAAWA,EAAQn7B,QACvBqI,GAAQ8yB,GAAU/L,SAGZ/mB,GAAOsF,SAAW0/B,EAAO5/B,aAKjC,IAAI6/B,IAAQjlC,GAAO8T,GAAGob,IAKtBlvB,IAAO8T,GAAGob,KAAO,SAAUyQ,EAAKuF,EAAQ7qC,GACvC,GAAoB,gBAARslC,IAAoBsF,GAC/B,MAAOA,IAAM77B,MAAOpP,KAAMqP,UAG3B,IAAIwK,GAAU1B,EAAUpS,EACvB+kB,EAAO9qB,KACP2uB,EAAMgX,EAAIlsB,QAAQ,IA+CnB,OA7CKkV,IAAO,IACX9U,EAAW7T,GAAO4H,KAAM+3B,EAAInkC,MAAOmtB,EAAKgX,EAAIhoC,SAC5CgoC,EAAMA,EAAInkC,MAAO,EAAGmtB,IAIhB3oB,GAAOvF,WAAYyqC,IAGvB7qC,EAAW6qC,EACXA,EAAShjC,QAGEgjC,GAA4B,gBAAXA,KAC5BnlC,EAAO,QAIH+kB,EAAKntB,OAAS,GAClBqI,GAAOygC,MACNd,IAAKA,EAGL5/B,KAAMA,EACNwQ,SAAU,OACVtO,KAAMijC,IACJl3B,KAAK,SAAU+1B,GAGjB5xB,EAAW9I,UAEXyb,EAAK6O,KAAM9f,EAIV7T,GAAO,SAASozB,OAAQpzB,GAAOilB,UAAW8e,IAAiB99B,KAAM4N,GAGjEkwB,KAEC9zB,SAAU5V,GAAY,SAAUsW,EAAO+vB,GACzC5b,EAAK5jB,KAAM7G,EAAU8X,IAAcxB,EAAMozB,aAAcrD,EAAQ/vB,MAI1D3W,MAORgG,GAAOkB,MAAQ,YAAa,WAAY,eAAgB,YAAa,cAAe,YAAc,SAAUV,EAAGT,GAC9GC,GAAO8T,GAAI/T,GAAS,SAAU+T,GAC7B,MAAO9Z,MAAK02B,GAAI3wB,EAAM+T,MAOxB9T,GAAO4gB,KAAKsD,QAAQihB,SAAW,SAAU5kC,GACxC,MAAOP,IAAOM,KAAKN,GAAO25B,OAAQ,SAAU7lB,GAC3C,MAAOvT,KAASuT,EAAGvT,OACjB5I,OAOJ,IAAImlB,IAAU/d,EAAOU,SAASkJ,eAa9B3I,IAAOolC,QACNC,UAAW,SAAU9kC,EAAMS,EAASR,GACnC,GAAI8kC,GAAaC,EAASC,EAAWC,EAAQC,EAAWC,EAAYC,EACnEznC,EAAW6B,GAAOuI,IAAKhI,EAAM,YAC7BslC,EAAU7lC,GAAQO,GAClBmM,IAGiB,YAAbvO,IACJoC,EAAK2H,MAAM/J,SAAW,YAGvBunC,EAAYG,EAAQT,SACpBI,EAAYxlC,GAAOuI,IAAKhI,EAAM,OAC9BolC,EAAa3lC,GAAOuI,IAAKhI,EAAM,QAC/BqlC,GAAmC,aAAbznC,GAAwC,UAAbA,IAChD6B,GAAOW,QAAQ,QAAU6kC,EAAWG,IAAiB,GAGjDC,GACJN,EAAcO,EAAQ1nC,WACtBsnC,EAASH,EAAYhmB,IACrBimB,EAAUD,EAAYtQ,OAEtByQ,EAASr6B,WAAYo6B,IAAe,EACpCD,EAAUn6B,WAAYu6B,IAAgB,GAGlC3lC,GAAOvF,WAAYuG,KACvBA,EAAUA,EAAQ7G,KAAMoG,EAAMC,EAAGklC,IAGd,MAAf1kC,EAAQse,MACZ5S,EAAM4S,IAAQte,EAAQse,IAAMomB,EAAUpmB,IAAQmmB,GAE1B,MAAhBzkC,EAAQg0B,OACZtoB,EAAMsoB,KAASh0B,EAAQg0B,KAAO0Q,EAAU1Q,KAASuQ,GAG7C,SAAWvkC,GACfA,EAAQ8kC,MAAM3rC,KAAMoG,EAAMmM,GAE1Bm5B,EAAQt9B,IAAKmE,KAKhB1M,GAAO8T,GAAGrQ,QACT2hC,OAAQ,SAAUpkC,GACjB,GAAKqI,UAAU1R,OACd,MAAmBuK,UAAZlB,EACNhH,KACAA,KAAKkH,KAAK,SAAUV,GACnBR,GAAOolC,OAAOC,UAAWrrC,KAAMgH,EAASR,IAI3C,IAAIsc,GAASipB,EACZC,GAAQ1mB,IAAK,EAAG0V,KAAM,GACtBz0B,EAAOvG,KAAM,GACbiO,EAAM1H,GAAQA,EAAKwF,aAEpB,IAAMkC,EAON,MAHA6U,GAAU7U,EAAIU,gBAGR3I,GAAOoX,SAAU0F,EAASvc,UAMpBA,GAAK0lC,wBAA0B/gC,KAC1C8gC,EAAMzlC,EAAK0lC,yBAEZF,EAAMzyB,EAAWrL,IAEhBqX,IAAK0mB,EAAI1mB,KAASymB,EAAIG,aAAeppB,EAAQgS,YAAiBhS,EAAQiS,WAAc,GACpFiG,KAAMgR,EAAIhR,MAAS+Q,EAAII,aAAerpB,EAAQ4R,aAAiB5R,EAAQ6R,YAAc,KAX9EqX,GAeT7nC,SAAU,WACT,GAAMnE,KAAM,GAAZ,CAIA,GAAIosC,GAAchB,EACjBiB,GAAiB/mB,IAAK,EAAG0V,KAAM,GAC/Bz0B,EAAOvG,KAAM,EAwBd,OArBwC,UAAnCgG,GAAOuI,IAAKhI,EAAM,YAEtB6kC,EAAS7kC,EAAK0lC,yBAGdG,EAAepsC,KAAKosC,eAGpBhB,EAASprC,KAAKorC,SACRplC,GAAOqF,SAAU+gC,EAAc,GAAK,UACzCC,EAAeD,EAAahB,UAI7BiB,EAAa/mB,KAAQtf,GAAOuI,IAAK69B,EAAc,GAAK,kBAAkB,GACtEC,EAAarR,MAAQh1B,GAAOuI,IAAK69B,EAAc,GAAK,mBAAmB,KAOvE9mB,IAAM8lB,EAAO9lB,IAAO+mB,EAAa/mB,IAAMtf,GAAOuI,IAAKhI,EAAM,aAAa,GACtEy0B,KAAMoQ,EAAOpQ,KAAOqR,EAAarR,KAAOh1B,GAAOuI,IAAKhI,EAAM,cAAc,MAI1E6lC,aAAc,WACb,MAAOpsC,MAAK8J,IAAI,WAGf,IAFA,GAAIsiC,GAAepsC,KAAKosC,cAAgBtpB,GAEhCspB,IAAmBpmC,GAAOqF,SAAU+gC,EAAc,SAAuD,WAA3CpmC,GAAOuI,IAAK69B,EAAc,aAC/FA,EAAeA,EAAaA,YAE7B,OAAOA,IAAgBtpB,QAM1B9c,GAAOkB,MAAQwtB,WAAY,cAAeI,UAAW,eAAiB,SAAUsT,EAAQ92B,GACvF,GAAIgU,GAAM,IAAI5e,KAAM4K,EAEpBtL,IAAO8T,GAAIsuB,GAAW,SAAU33B,GAC/B,MAAOqf,IAAQ9vB,KAAM,SAAUuG,EAAM6hC,EAAQ33B,GAC5C,GAAIs7B,GAAMzyB,EAAW/S,EAErB,OAAa2B,UAARuI,EACGs7B,EAAOz6B,IAAQy6B,GAAOA,EAAKz6B,GACjCy6B,EAAItmC,SAASkJ,gBAAiBy5B,GAC9B7hC,EAAM6hC,QAGH2D,EACJA,EAAIO,SACFhnB,EAAYtf,GAAQ+lC,GAAMrX,aAApBjkB,EACP6U,EAAM7U,EAAMzK,GAAQ+lC,GAAMjX,aAI3BvuB,EAAM6hC,GAAW33B,IAEhB23B,EAAQ33B,EAAKpB,UAAU1R,OAAQ,SAQpCqI,GAAOkB,MAAQ,MAAO,QAAU,SAAUV,EAAG8K,GAC5CtL,GAAOsO,SAAUhD,GAAStC,EAAchF,GAAQiyB,cAC/C,SAAU11B,EAAMo0B,GACf,MAAKA,IACJA,EAAW1pB,GAAQ1K,EAAM+K,GAElBJ,GAAUxK,KAAMi0B,GACtB30B,GAAQO,GAAOpC,WAAYmN,GAAS,KACpCqpB,GALF,WAaH30B,GAAOkB,MAAQqlC,OAAQ,SAAUC,MAAO,SAAW,SAAU9vC,EAAMqJ,GAClEC,GAAOkB,MAAQy2B,QAAS,QAAUjhC,EAAMkP,QAAS7F,EAAM,GAAI,QAAUrJ,GAAQ,SAAU+vC,EAAcC,GAEpG1mC,GAAO8T,GAAI4yB,GAAa,SAAUhP,EAAQ7gC,GACzC,GAAIkzB,GAAY1gB,UAAU1R,SAAY8uC,GAAkC,iBAAX/O,IAC5DptB,EAAQm8B,IAAkB/O,KAAW,GAAQ7gC,KAAU,EAAO,SAAW,SAE1E,OAAOizB,IAAQ9vB,KAAM,SAAUuG,EAAMR,EAAMlJ,GAC1C,GAAIoR,EAEJ,OAAKjI,IAAOC,SAAUM,GAIdA,EAAKd,SAASkJ,gBAAiB,SAAWjS,GAI3B,IAAlB6J,EAAKzB,UACTmJ,EAAM1H,EAAKoI,gBAIJ3Q,KAAKoS,IACX7J,EAAK6H,KAAM,SAAW1R,GAAQuR,EAAK,SAAWvR,GAC9C6J,EAAK6H,KAAM,SAAW1R,GAAQuR,EAAK,SAAWvR,GAC9CuR,EAAK,SAAWvR,KAIDwL,SAAVrL,EAENmJ,GAAOuI,IAAKhI,EAAMR,EAAMuK,GAGxBtK,GAAOkI,MAAO3H,EAAMR,EAAMlJ,EAAOyT,IAChCvK,EAAMgqB,EAAY2N,EAASx1B,OAAW6nB,EAAW,WAOvD/pB,GAAO8T,GAAGvZ,KAAO,WAChB,MAAOP,MAAKrC,QAGbqI,GAAO8T,GAAG6yB,QAAU3mC,GAAO8T,GAAG+R,QAkBP,kBAAXnnB,SAAyBA,OAAOC,KAC3CD,OAAQ,YAAc,WACrB,MAAOsB,KAOT,IAEC4mC,IAAU7nC,EAAOiB,OAGjB6mC,GAAK9nC,EAAO+nC,CAwBb,OAtBA9mC,IAAOT,WAAa,SAAU6R,GAS7B,MARKrS,GAAO+nC,IAAM9mC,KACjBjB,EAAO+nC,EAAID,IAGPz1B,GAAQrS,EAAOiB,SAAWA,KAC9BjB,EAAOiB,OAAS4mC,IAGV5mC,UAMIJ,KAAasF,KACxBnG,EAAOiB,OAASjB,EAAO+nC,EAAI9mC,IAMrBA;;;AAMP,GAAI8mC,GAAG9mC,OAAS8mC,EAAI/nC,OAAOiB,OAAOT,YAAW,IAW5C,SAAUunC,GACT,YAuRA,SAASC,GAAOtV,EAAQuV,GACtB,MAAOhtC,MAAKkH,KAAK,WACf,GAAI+lC,GAAUH,EAAE9sC,MACZiI,EAAUglC,EAAMhlC,KAAK,YACrBjB,EAAU8lC,EAAErjC,UAAWyjC,EAAMC,SAAUF,EAAMhlC,OAAyB,gBAAVwvB,IAAsBA,EAEjFxvB,IAAMglC,EAAMhlC,KAAK,WAAaA,EAAO,GAAIilC,GAAMltC,KAAMgH,IACrC,gBAAVywB,GAAoBxvB,EAAKwvB,GAAQuV,GACnChmC,EAAQ4I,MAAM3H,EAAK2H,KAAKo9B,KA1RrC,GAAIE,GAAQ,SAAUnqC,EAASiE,GAC7BhH,KAAKgH,QAAsBA,EAC3BhH,KAAKotC,MAAsBN,EAAErnC,SAAS2I,MACtCpO,KAAKqtC,SAAsBP,EAAE/pC,GAC7B/C,KAAKstC,QAAsBttC,KAAKqtC,SAASphC,KAAK,iBAC9CjM,KAAKutC,UAAsB,KAC3BvtC,KAAKwtC,QAAsB,KAC3BxtC,KAAKytC,gBAAsB,KAC3BztC,KAAK0tC,eAAsB,EAC3B1tC,KAAK2tC,qBAAsB,EAEvB3tC,KAAKgH,QAAQ4mC,QACf5tC,KAAKqtC,SACFphC,KAAK,kBACLipB,KAAKl1B,KAAKgH,QAAQ4mC,OAAQd,EAAExwB,MAAM,WACjCtc,KAAKqtC,SAAS7a,QAAQ,oBACrBxyB,OAITktC,GAAMW,QAAW,QAEjBX,EAAMY,oBAAsB,IAC5BZ,EAAMa,6BAA+B,IAErCb,EAAMC,UACJa,UAAU,EACVC,UAAU,EACVr+B,MAAM,GAGRs9B,EAAM7uC,UAAUuU,OAAS,SAAUo6B,GACjC,MAAOhtC,MAAKwtC,QAAUxtC,KAAKiU,OAASjU,KAAK4P,KAAKo9B,IAGhDE,EAAM7uC,UAAUuR,KAAO,SAAUo9B,GAC/B,GAAIkB,GAAOluC,KACPyI,EAAOqkC,EAAEja,MAAM,iBAAmBmC,cAAegY,GAErDhtC,MAAKqtC,SAAS7a,QAAQ/pB,GAElBzI,KAAKwtC,SAAW/kC,EAAE0qB,uBAEtBnzB,KAAKwtC,SAAU,EAEfxtC,KAAKmuC,iBACLnuC,KAAKouC,eACLpuC,KAAKotC,MAAMtK,SAAS,cAEpB9iC,KAAKquC,SACLruC,KAAKsuC,SAELtuC,KAAKqtC,SAAS3W,GAAG,yBAA0B,yBAA0BoW,EAAExwB,MAAMtc,KAAKiU,KAAMjU,OAExFA,KAAKstC,QAAQ5W,GAAG,6BAA8B,WAC5CwX,EAAKb,SAAS1W,IAAI,2BAA4B,SAAUluB,GAClDqkC,EAAErkC,EAAE0O,QAAQ4T,GAAGmjB,EAAKb,YAAWa,EAAKP,qBAAsB,OAIlE3tC,KAAKguC,SAAS,WACZ,GAAIO,GAAazB,EAAE9iC,QAAQukC,YAAcL,EAAKb,SAAS9J,SAAS,OAE3D2K,GAAKb,SAASntC,SAASvC,QAC1BuwC,EAAKb,SAASl/B,SAAS+/B,EAAKd,OAG9Bc,EAAKb,SACFz9B,OACAklB,UAAU,GAEboZ,EAAKM,eAEDD,GACFL,EAAKb,SAAS,GAAGx8B,YAGnBq9B,EAAKb,SAASvK,SAAS,MAEvBoL,EAAKO,cAEL,IAAIhmC,GAAIqkC,EAAEja,MAAM,kBAAoBmC,cAAegY,GAEnDuB,GACEL,EAAKZ,QACF3W,IAAI,kBAAmB,WACtBuX,EAAKb,SAAS7a,QAAQ,SAASA,QAAQ/pB,KAExCimC,qBAAqBxB,EAAMY,qBAC9BI,EAAKb,SAAS7a,QAAQ,SAASA,QAAQ/pB,OAI7CykC,EAAM7uC,UAAU4V,KAAO,SAAUxL,GAC3BA,GAAGA,EAAEyqB,iBAETzqB,EAAIqkC,EAAEja,MAAM,iBAEZ7yB,KAAKqtC,SAAS7a,QAAQ/pB,GAEjBzI,KAAKwtC,UAAW/kC,EAAE0qB,uBAEvBnzB,KAAKwtC,SAAU,EAEfxtC,KAAKquC,SACLruC,KAAKsuC,SAELxB,EAAErnC,UAAUkpB,IAAI,oBAEhB3uB,KAAKqtC,SACFlK,YAAY,MACZxU,IAAI,0BACJA,IAAI,4BAEP3uB,KAAKstC,QAAQ3e,IAAI,8BAEjBme,EAAE9iC,QAAQukC,YAAcvuC,KAAKqtC,SAAS9J,SAAS,QAC7CvjC,KAAKqtC,SACF1W,IAAI,kBAAmBmW,EAAExwB,MAAMtc,KAAK2uC,UAAW3uC,OAC/C0uC,qBAAqBxB,EAAMY,qBAC9B9tC,KAAK2uC,cAGTzB,EAAM7uC,UAAUowC,aAAe,WAC7B3B,EAAErnC,UACCkpB,IAAI,oBACJ+H,GAAG,mBAAoBoW,EAAExwB,MAAM,SAAU7T,GACpCzI,KAAKqtC,SAAS,KAAO5kC,EAAE0O,QAAWnX,KAAKqtC,SAAS5wC,IAAIgM,EAAE0O,QAAQxZ,QAChEqC,KAAKqtC,SAAS7a,QAAQ,UAEvBxyB,QAGPktC,EAAM7uC,UAAUgwC,OAAS,WACnBruC,KAAKwtC,SAAWxtC,KAAKgH,QAAQinC,SAC/BjuC,KAAKqtC,SAAS3W,GAAG,2BAA4BoW,EAAExwB,MAAM,SAAU7T,GAClD,IAAXA,EAAEuJ,OAAehS,KAAKiU,QACrBjU,OACOA,KAAKwtC,SACfxtC,KAAKqtC,SAAS1e,IAAI,6BAItBue,EAAM7uC,UAAUiwC,OAAS,WACnBtuC,KAAKwtC,QACPV,EAAE/nC,QAAQ2xB,GAAG,kBAAmBoW,EAAExwB,MAAMtc,KAAK4uC,aAAc5uC,OAE3D8sC,EAAE/nC,QAAQ4pB,IAAI,oBAIlBue,EAAM7uC,UAAUswC,UAAY,WAC1B,GAAIT,GAAOluC,IACXA,MAAKqtC,SAASp5B,OACdjU,KAAKguC,SAAS,WACZE,EAAKd,MAAMjK,YAAY,cACvB+K,EAAKW,mBACLX,EAAKY,iBACLZ,EAAKb,SAAS7a,QAAQ,sBAI1B0a,EAAM7uC,UAAU0wC,eAAiB,WAC/B/uC,KAAKutC,WAAavtC,KAAKutC,UAAUxgB,SACjC/sB,KAAKutC,UAAY,MAGnBL,EAAM7uC,UAAU2vC,SAAW,SAAU3tC,GACnC,GAAI6tC,GAAOluC,KACPs/B,EAAUt/B,KAAKqtC,SAAS9J,SAAS,QAAU,OAAS,EAExD,IAAIvjC,KAAKwtC,SAAWxtC,KAAKgH,QAAQgnC,SAAU,CACzC,GAAIgB,GAAYlC,EAAE9iC,QAAQukC,YAAcjP,CAqBxC,IAnBAt/B,KAAKutC,UAAYT,EAAErnC,SAASmF,cAAc,QACvCk4B,SAAS,kBAAoBxD,GAC7BnxB,SAASnO,KAAKotC,OAEjBptC,KAAKqtC,SAAS3W,GAAG,yBAA0BoW,EAAExwB,MAAM,SAAU7T,GAC3D,MAAIzI,MAAK2tC,yBACP3tC,KAAK2tC,qBAAsB,QAGzBllC,EAAE0O,SAAW1O,EAAEgrB,gBACM,UAAzBzzB,KAAKgH,QAAQgnC,SACThuC,KAAKqtC,SAAS,GAAGvkB,QACjB9oB,KAAKiU,UACRjU,OAECgvC,GAAWhvC,KAAKutC,UAAU,GAAG18B,YAEjC7Q,KAAKutC,UAAUzK,SAAS,OAEnBziC,EAAU,MAEf2uC,GACEhvC,KAAKutC,UACF5W,IAAI,kBAAmBt2B,GACvBquC,qBAAqBxB,EAAMa,8BAC9B1tC,QAEG,KAAKL,KAAKwtC,SAAWxtC,KAAKutC,UAAW,CAC1CvtC,KAAKutC,UAAUpK,YAAY,KAE3B,IAAI8L,GAAiB,WACnBf,EAAKa,iBACL1uC,GAAYA,IAEdysC,GAAE9iC,QAAQukC,YAAcvuC,KAAKqtC,SAAS9J,SAAS,QAC7CvjC,KAAKutC,UACF5W,IAAI,kBAAmBsY,GACvBP,qBAAqBxB,EAAMa,8BAC9BkB,QAEO5uC,IACTA,KAMJ6sC,EAAM7uC,UAAUuwC,aAAe,WAC7B5uC,KAAKwuC,gBAGPtB,EAAM7uC,UAAUmwC,aAAe,WAC7B,GAAIU,GAAqBlvC,KAAKqtC,SAAS,GAAGhM,aAAe57B,SAASkJ,gBAAgBwgC,YAElFnvC,MAAKqtC,SAAS9+B,KACZ6gC,aAAepvC,KAAKqvC,mBAAqBH,EAAqBlvC,KAAK0tC,eAAiB,GACpF4B,aAActvC,KAAKqvC,oBAAsBH,EAAqBlvC,KAAK0tC,eAAiB,MAIxFR,EAAM7uC,UAAUwwC,iBAAmB,WACjC7uC,KAAKqtC,SAAS9+B,KACZ6gC,YAAa,GACbE,aAAc,MAIlBpC,EAAM7uC,UAAU8vC,eAAiB,WAC/B,GAAIoB,GAAkBxqC,OAAOyqC,UAC7B,KAAKD,EAAiB,CACpB,GAAIE,GAAsBhqC,SAASkJ,gBAAgBs9B,uBACnDsD,GAAkBE,EAAoBC,MAAQ1xC,KAAK2xC,IAAIF,EAAoBzU,MAE7Eh7B,KAAKqvC,kBAAoB5pC,SAAS2I,KAAKwhC,YAAcL,EACrDvvC,KAAK0tC,eAAiB1tC,KAAK6vC,oBAG7B3C,EAAM7uC,UAAU+vC,aAAe,WAC7B,GAAI0B,GAAUlN,SAAU5iC,KAAKotC,MAAM7+B,IAAI,kBAAoB,EAAI,GAC/DvO,MAAKytC,gBAAkBhoC,SAAS2I,KAAKF,MAAMohC,cAAgB,GACvDtvC,KAAKqvC,mBAAmBrvC,KAAKotC,MAAM7+B,IAAI,gBAAiBuhC,EAAU9vC,KAAK0tC,iBAG7ER,EAAM7uC,UAAUywC,eAAiB,WAC/B9uC,KAAKotC,MAAM7+B,IAAI,gBAAiBvO,KAAKytC,kBAGvCP,EAAM7uC,UAAUwxC,iBAAmB,WACjC,GAAIE,GAAYtqC,SAASmF,cAAc,MACvCmlC,GAAUxtC,UAAY,0BACtBvC,KAAKotC,MAAMhU,OAAO2W,EAClB,IAAIrC,GAAiBqC,EAAUl/B,YAAck/B,EAAUH,WAEvD,OADA5vC,MAAKotC,MAAM,GAAG7uB,YAAYwxB,GACnBrC,EAmBT,IAAI/wB,GAAMmwB,EAAEhzB,GAAGk2B,KAEflD,GAAEhzB,GAAGk2B,MAAoBjD,EACzBD,EAAEhzB,GAAGk2B,MAAMC,YAAc/C,EAMzBJ,EAAEhzB,GAAGk2B,MAAMzqC,WAAa,WAEtB,MADAunC,GAAEhzB,GAAGk2B,MAAQrzB,EACN3c,MAOT8sC,EAAErnC,UAAUixB,GAAG,0BAA2B,wBAAyB,SAAUjuB,GAC3E,GAAIwkC,GAAUH,EAAE9sC,MACZgpB,EAAUikB,EAAM/gC,KAAK,QACrBgkC,EAAUpD,EAAEG,EAAM/gC,KAAK,gBAAmB8c,GAAQA,EAAK7gB,QAAQ,iBAAkB,KACjFsvB,EAAUyY,EAAQjoC,KAAK,YAAc,SAAW6kC,EAAErjC,QAASmkC,QAAS,IAAIlnC,KAAKsiB,IAASA,GAAQknB,EAAQjoC,OAAQglC,EAAMhlC,OAEpHglC,GAAMliB,GAAG,MAAMtiB,EAAEyqB,iBAErBgd,EAAQvZ,IAAI,gBAAiB,SAAUwZ,GACjCA,EAAUhd,sBACd+c,EAAQvZ,IAAI,kBAAmB,WAC7BsW,EAAMliB,GAAG,aAAekiB,EAAMza,QAAQ,aAG1Cua,EAAO5sC,KAAK+vC,EAASzY,EAAQz3B,SAG/BgG,SA0BC,SAAS5J,EAAS8L,GAOnB,QAASuJ,KACPzR,KAAKowC,WACDpwC,KAAKqwC,OACPC,EAAUnwC,KAAKH,KAAMA,KAAKqwC,OAI9B,QAASC,GAAUC,GACbA,IAEFvwC,KAAKqwC,MAAQE,EAEbA,EAAKC,YAAcxwC,KAAKwwC,UAAYD,EAAKC,WACzCD,EAAKE,eAAiBzwC,KAAKowC,QAAQK,aAAeF,EAAKE,cACvDF,EAAKG,WAAa1wC,KAAK0wC,SAAWH,EAAKG,UACvCH,EAAKI,cAAgB3wC,KAAK2wC,YAAcJ,EAAKI,aAEzC3wC,KAAK0wC,WACP1wC,KAAK4wC,kBAKX,QAASC,GAAaN,GACpBvwC,KAAKowC,WACLpwC,KAAK2wC,aAAc,EACnBL,EAAUnwC,KAAKH,KAAMuwC,GAQvB,QAASO,GAAmBpf,EAAU3rB,EAAMgrC,EAAMvqC,GAChD,IAAKuqC,EACH,QAEF,IAAkBC,GAAMl2B,EAAKm2B,EAAQC,EAAOC,EAAQC,EAAgBC,EAAhEC,KACAC,EAAaxrC,EAAKpI,OAAQ6zC,EAAczrC,EAAKS,GAAIirC,EAAW1rC,EAAKS,EAAE,EACvE,IAAIA,IAAM+qC,GAAcR,EAAKW,WAAY,CAKvC,GAA+B,kBAApBX,GAAKW,WAEd,MADAhgB,IAAYA,EAASzuB,KAAK8tC,EAAKW,aACvBX,EAER,KAAKC,EAAO,EAAGl2B,EAAMi2B,EAAKW,WAAW/zC,OAAemd,EAAPk2B,EAAYA,IACvDtf,GAAYA,EAASzuB,KAAK8tC,EAAKW,WAAWV,GAE5C,QAAQD,GAIZ,GAAqB,MAAhBS,GAAuC,OAAhBA,GAAyBT,EAAKS,GAAc,CAKtE,GAAoB,MAAhBA,EAAqB,CACvB,IAAKP,IAAUF,GACE,eAAXE,GAA2BF,EAAKrxC,eAAeuxC,KACjDK,EAAYA,EAAUznC,OAAOinC,EAAmBpf,EAAU3rB,EAAMgrC,EAAKE,GAASzqC,EAAE,IAGpF,OAAO8qC,GACF,GAAmB,OAAhBE,EAAsB,CAC9BH,EAAc7qC,EAAE,IAAM+qC,GAAe/qC,EAAE,IAAM+qC,GAA2B,MAAbE,EACxDJ,GAAcN,EAAKW,aAEpBJ,EAAYA,EAAUznC,OAAOinC,EAAmBpf,EAAU3rB,EAAMgrC,EAAMQ,IAGxE,KAAKN,IAAUF,GACE,eAAXE,GAA2BF,EAAKrxC,eAAeuxC,KACnC,MAAXA,GAA6B,OAAXA,GAChBF,EAAKE,GAAQS,aAAeL,IAC7BC,EAAYA,EAAUznC,OAAOinC,EAAmBpf,EAAU3rB,EAAMgrC,EAAKE,GAASM,KAEhFD,EAAYA,EAAUznC,OAAOinC,EAAmBpf,EAAU3rB,EAAMgrC,EAAKE,GAASzqC,KAE9E8qC,EADQL,IAAWQ,EACPH,EAAUznC,OAAOinC,EAAmBpf,EAAU3rB,EAAMgrC,EAAKE,GAASzqC,EAAE,IAGpE8qC,EAAUznC,OAAOinC,EAAmBpf,EAAU3rB,EAAMgrC,EAAKE,GAASzqC,IAIpF,OAAO8qC,GAGTA,EAAYA,EAAUznC,OAAOinC,EAAmBpf,EAAU3rB,EAAMgrC,EAAKS,GAAchrC,EAAE,IAavF,GAVA0qC,EAAQH,EAAK,KACTG,GAKFJ,EAAmBpf,EAAU3rB,EAAMmrC,EAAO1qC,EAAE,GAG9C2qC,EAASJ,EAAK,MAEZ,GAAOQ,EAAJ/qC,EAAgB,CACd2qC,EAAOO,YAERZ,EAAmBpf,EAAU3rB,EAAMorC,EAAQI,EAI7C,KAAIN,IAAUE,GACE,eAAXF,GAA2BE,EAAOzxC,eAAeuxC,KAC/CA,IAAWQ,EAEZX,EAAmBpf,EAAU3rB,EAAMorC,EAAOF,GAASzqC,EAAE,GAC7CyqC,IAAWO,EAEnBV,EAAmBpf,EAAU3rB,EAAMorC,EAAOF,GAASzqC,EAAE,IAErD4qC,KACAA,EAAeH,GAAUE,EAAOF,GAChCH,EAAmBpf,EAAU3rB,GAAQ4rC,KAAMP,GAAkB5qC,EAAE,SAI7D2qC,GAAOO,WAEfZ,EAAmBpf,EAAU3rB,EAAMorC,EAAQI,GACnCJ,EAAO,MAAQA,EAAO,KAAKO,YACnCZ,EAAmBpf,EAAU3rB,EAAMorC,EAAO,KAAMI,EAIpD,OAAOD,GAGT,QAASM,GAAiB7rC,EAAM8rC,GAE9B9rC,EAAuB,gBAATA,GAAoBA,EAAKjE,MAAM9B,KAAKwwC,WAAazqC,EAAKvE,OAKpE,KAAI,GAAIgF,GAAI,EAAGsU,EAAM/U,EAAKpI,OAAcmd,EAANtU,EAAE,EAASA,IAC3C,GAAe,OAAZT,EAAKS,IAA6B,OAAdT,EAAKS,EAAE,GAC5B,MAOJ,KAHA,GAAIuqC,GAAO/wC,KAAK4wC,aACZl0C,EAAOqJ,EAAK+R,QAETpb,GAAM,CAQX,GANKq0C,EAAKr0C,KACRq0C,EAAKr0C,OAGPq0C,EAAOA,EAAKr0C,GAEQ,IAAhBqJ,EAAKpI,OAAc,CAErB,GAAKozC,EAAKW,YAGL,GAA8B,kBAApBX,GAAKW,WAClBX,EAAKW,YAAcX,EAAKW,WAAYG,OAEjC,IAAIjoC,EAAQmnC,EAAKW,cAEpBX,EAAKW,WAAWzuC,KAAK4uC,IAEhBd,EAAKW,WAAWI,QAAQ,CAE3B,GAAIr1B,GAAIs1B,CAEiC,oBAA9B/xC,MAAKowC,QAAQK,eACtBh0B,EAAIzc,KAAKowC,QAAQK,cAGfh0B,EAAI,GAAKs0B,EAAKW,WAAW/zC,OAAS8e,IAEpCs0B,EAAKW,WAAWI,QAAS,EACzBE,QAAQn5B,MAAM,mIAGAk4B,EAAKW,WAAW/zC,QAC9Bq0C,QAAQC,cAxBZlB,GAAKW,WAAaG,CA4BpB,QAAO,EAETn1C,EAAOqJ,EAAK+R,QAEd,OAAO,EA5MT,GAAIlO,GAAU6R,MAAM7R,QAAU6R,MAAM7R,QAAU,SAAkB9D,GAC9D,MAA+C,mBAAxCjI,OAAOQ,UAAUC,SAAS6B,KAAK2F,IAEpCisC,EAAsB,EAmN1BlB,GAAaxyC,UAAUmyC,UAAY,IAEnCK,EAAaxyC,UAAU6zC,gBAAkB,SAAS3mB,GAChDvrB,KAAKowC,SAAW3+B,EAAKtR,KAAKH,MAC1BA,KAAKowC,QAAQK,aAAellB,EACvBvrB,KAAKqwC,QAAOrwC,KAAKqwC,UACtBrwC,KAAKqwC,MAAMI,aAAellB,GAG5BslB,EAAaxyC,UAAUuJ,MAAQ,GAE/BipC,EAAaxyC,UAAUuuB,KAAO,SAAShlB,EAAOkS,GAE5C,MADA9Z,MAAKmyC,KAAKvqC,EAAO,EAAGkS,GACb9Z,MAGT6wC,EAAaxyC,UAAU8zC,KAAO,SAASvqC,EAAOwqC,EAAKt4B,GAOjD,QAAS+3B,KACO,MAARO,GACJtnB,EAAK6D,IAAI/mB,EAAOiqC,GAElB/3B,EAAG1K,MAAMpP,KAAMqP,WAVjB,GAAIyb,GAAO9qB,IAEX,IAAkB,kBAAP8Z,GACT,KAAM,IAAInU,OAAM,0CAclB,OAJAksC,GAASQ,QAAUv4B,EAEnB9Z,KAAK02B,GAAG9uB,EAAOiqC,GAER/mB,GAGT+lB,EAAaxyC,UAAUi0C,KAAO,WAE5BtyC,KAAKowC,SAAW3+B,EAAKtR,KAAKH,KAE1B,IAAI+F,GAAOsJ,UAAU,EAErB,IAAa,gBAATtJ,IAA2B/F,KAAK2wC,cAC7B3wC,KAAKowC,QAAQO,YAAe,OAAO,CAI1C,IAAI3wC,KAAKuyC,KAAM,CAGb,IAAK,GAFDzlC,GAAIuC,UAAU1R,OACd+c,EAAO,GAAIe,OAAM3O,EAAI,GAChBtG,EAAI,EAAOsG,EAAJtG,EAAOA,IAAKkU,EAAKlU,EAAI,GAAK6I,UAAU7I,EACpD,KAAKA,EAAI,EAAGsG,EAAI9M,KAAKuyC,KAAK50C,OAAYmP,EAAJtG,EAAOA,IACvCxG,KAAK4H,MAAQ7B,EACb/F,KAAKuyC,KAAK/rC,GAAG4I,MAAMpP,KAAM0a,GAK7B,GAAa,UAAT3U,KAEG/F,KAAKuyC,MACPvyC,KAAKowC,QAAQv3B,OACZ7Y,KAAK0wC,UAAY1wC,KAAK4wC,aAAa/3B,OAErC,KAAIxJ,WAAU,YAAc1J,OACpB0J,UAAU,GAEV,GAAI1J,OAAM,uCAMtB,IAAI8Y,EAEJ,IAAGze,KAAK0wC,SAAU,CAChBjyB,IACA,IAAI+zB,GAAqB,gBAATzsC,GAAoBA,EAAKjE,MAAM9B,KAAKwwC,WAAazqC,EAAKvE,OACtEsvC,GAAmB3wC,KAAKH,KAAMye,EAAS+zB,EAAIxyC,KAAK4wC,aAAc,OAG9DnyB,GAAUze,KAAKowC,QAAQrqC,EAGzB,IAAuB,kBAAZ0Y,GAAwB,CAEjC,GADAze,KAAK4H,MAAQ7B,EACY,IAArBsJ,UAAU1R,OACZ8gB,EAAQte,KAAKH,UAEV,IAAIqP,UAAU1R,OAAS,EAC1B,OAAQ0R,UAAU1R,QAChB,IAAK,GACH8gB,EAAQte,KAAKH,KAAMqP,UAAU,GAC7B,MACF,KAAK,GACHoP,EAAQte,KAAKH,KAAMqP,UAAU,GAAIA,UAAU,GAC3C,MAEF,SAGE,IAAK,GAFDvC,GAAIuC,UAAU1R,OACd+c,EAAO,GAAIe,OAAM3O,EAAI,GAChBtG,EAAI,EAAOsG,EAAJtG,EAAOA,IAAKkU,EAAKlU,EAAI,GAAK6I,UAAU7I,EACpDiY,GAAQrP,MAAMpP,KAAM0a,GAE1B,OAAO,EAEJ,GAAI+D,EAAS,CAGhB,IAAK,GAFD3R,GAAIuC,UAAU1R,OACd+c,EAAO,GAAIe,OAAM3O,EAAI,GAChBtG,EAAI,EAAOsG,EAAJtG,EAAOA,IAAKkU,EAAKlU,EAAI,GAAK6I,UAAU7I,EAGpD,KAAK,GADD8qC,GAAY7yB,EAAQjd,QACfgF,EAAI,EAAGsG,EAAIwkC,EAAU3zC,OAAYmP,EAAJtG,EAAOA,IAC3CxG,KAAK4H,MAAQ7B,EACburC,EAAU9qC,GAAG4I,MAAMpP,KAAM0a,EAE3B,OAAQ42B,GAAU3zC,OAAS,GAAMqC,KAAKuyC,KAGtC,MAAOvyC,MAAKuyC,MAKhB1B,EAAaxyC,UAAUq4B,GAAK,SAAS3wB,EAAM8rC,GAEzC,GAAoB,kBAAT9rC,GAET,MADA/F,MAAKyyC,MAAM1sC,GACJ/F,IAGT,IAAwB,kBAAb6xC,GACT,KAAM,IAAIlsC,OAAM,wCAQlB,IANA3F,KAAKowC,SAAW3+B,EAAKtR,KAAKH,MAI1BA,KAAKsyC,KAAK,cAAevsC,EAAM8rC,GAE5B7xC,KAAK0wC,SAEN,MADAkB,GAAiBzxC,KAAKH,KAAM+F,EAAM8rC,GAC3B7xC,IAGT,IAAKA,KAAKowC,QAAQrqC,IAIb,GAAiC,kBAAvB/F,MAAKowC,QAAQrqC,GAE1B/F,KAAKowC,QAAQrqC,IAAS/F,KAAKowC,QAAQrqC,GAAO8rC,OAEvC,IAAIjoC,EAAQ5J,KAAKowC,QAAQrqC,MAE5B/F,KAAKowC,QAAQrqC,GAAM9C,KAAK4uC,IAGnB7xC,KAAKowC,QAAQrqC,GAAM+rC,QAAQ,CAE9B,GAAIr1B,GAAIs1B,CAEiC,oBAA9B/xC,MAAKowC,QAAQK,eACtBh0B,EAAIzc,KAAKowC,QAAQK,cAGfh0B,EAAI,GAAKzc,KAAKowC,QAAQrqC,GAAMpI,OAAS8e,IAEvCzc,KAAKowC,QAAQrqC,GAAM+rC,QAAS,EAC5BE,QAAQn5B,MAAM,mIAGA7Y,KAAKowC,QAAQrqC,GAAMpI,QACjCq0C,QAAQC,cA1BZjyC,MAAKowC,QAAQrqC,GAAQ8rC,CA8BvB,OAAO7xC,OAGT6wC,EAAaxyC,UAAUo0C,MAAQ,SAAS34B,GAMtC,GAJI9Z,KAAKuyC,OACPvyC,KAAKuyC,SAGW,kBAAPz4B,GACT,KAAM,IAAInU,OAAM,2CAKlB,OADA3F,MAAKuyC,KAAKtvC,KAAK6W,GACR9Z,MAGT6wC,EAAaxyC,UAAUq0C,YAAc7B,EAAaxyC,UAAUq4B,GAE5Dma,EAAaxyC,UAAUswB,IAAM,SAAS5oB,EAAM8rC,GAC1C,GAAwB,kBAAbA,GACT,KAAM,IAAIlsC,OAAM,kDAGlB,IAAI+rB,GAASihB,IAEb,IAAG3yC,KAAK0wC,SAAU,CAChB,GAAI8B,GAAqB,gBAATzsC,GAAoBA,EAAKjE,MAAM9B,KAAKwwC,WAAazqC,EAAKvE,OACtEmxC,GAAQ7B,EAAmB3wC,KAAKH,KAAM,KAAMwyC,EAAIxyC,KAAK4wC,aAAc,OAEhE,CAEH,IAAK5wC,KAAKowC,QAAQrqC,GAAO,MAAO/F,KAChC0xB,GAAW1xB,KAAKowC,QAAQrqC,GACxB4sC,EAAM1vC,MAAMyuC,WAAWhgB,IAGzB,IAAK,GAAIkhB,GAAM,EAAGA,EAAMD,EAAMh1C,OAAQi1C,IAAS,CAC7C,GAAI5B,GAAO2B,EAAMC,EAEjB,IADAlhB,EAAWsf,EAAKU,WACZ9nC,EAAQ8nB,GAAW,CAIrB,IAAK,GAFDvtB,GAAW,GAENqC,EAAI,EAAG7I,EAAS+zB,EAAS/zB,OAAYA,EAAJ6I,EAAYA,IACpD,GAAIkrB,EAASlrB,KAAOqrC,GACjBngB,EAASlrB,GAAGqrC,UAAYngB,EAASlrB,GAAGqrC,WAAaA,GACjDngB,EAASlrB,GAAG6rC,SAAW3gB,EAASlrB,GAAG6rC,UAAYR,EAAW,CAC3D1tC,EAAWqC,CACX,OAIJ,GAAe,EAAXrC,EACF,QAkBF,OAfGnE,MAAK0wC,SACNM,EAAKU,WAAWz2B,OAAO9W,EAAU,GAGjCnE,KAAKowC,QAAQrqC,GAAMkV,OAAO9W,EAAU,GAGd,IAApButB,EAAS/zB,SACRqC,KAAK0wC,eACCM,GAAKU,iBAGL1xC,MAAKowC,QAAQrqC,IAGjB/F,MAEA0xB,IAAamgB,GACnBngB,EAASmgB,UAAYngB,EAASmgB,WAAaA,GAC3CngB,EAAS2gB,SAAW3gB,EAAS2gB,UAAYR,KACvC7xC,KAAK0wC,eACCM,GAAKU,iBAGL1xC,MAAKowC,QAAQrqC,IAK1B,MAAO/F,OAGT6wC,EAAaxyC,UAAUw0C,OAAS,SAAS/4B,GACvC,GAAkBuT,GAAd7mB,EAAI,EAAGsG,EAAI,CACf,IAAIgN,GAAM9Z,KAAKuyC,MAAQvyC,KAAKuyC,KAAK50C,OAAS,GAExC,IADA0vB,EAAMrtB,KAAKuyC,KACP/rC,EAAI,EAAGsG,EAAIugB,EAAI1vB,OAAYmP,EAAJtG,EAAOA,IAChC,GAAGsT,IAAOuT,EAAI7mB,GAEZ,MADA6mB,GAAIpS,OAAOzU,EAAG,GACPxG,SAIXA,MAAKuyC,OAEP,OAAOvyC,OAGT6wC,EAAaxyC,UAAUy0C,eAAiBjC,EAAaxyC,UAAUswB,IAE/DkiB,EAAaxyC,UAAU00C,mBAAqB,SAAShtC,GACnD,GAAyB,IAArBsJ,UAAU1R,OAEZ,OADCqC,KAAKowC,SAAW3+B,EAAKtR,KAAKH,MACpBA,IAGT,IAAGA,KAAK0wC,SAIN,IAAK,GAHD8B,GAAqB,gBAATzsC,GAAoBA,EAAKjE,MAAM9B,KAAKwwC,WAAazqC,EAAKvE,QAClEmxC,EAAQ7B,EAAmB3wC,KAAKH,KAAM,KAAMwyC,EAAIxyC,KAAK4wC,aAAc,GAE9DgC,EAAM,EAAGA,EAAMD,EAAMh1C,OAAQi1C,IAAS,CAC7C,GAAI5B,GAAO2B,EAAMC,EACjB5B,GAAKU,WAAa,SAGjB,CACH,IAAK1xC,KAAKowC,QAAQrqC,GAAO,MAAO/F,KAChCA,MAAKowC,QAAQrqC,GAAQ,KAEvB,MAAO/F,OAGT6wC,EAAaxyC,UAAUizC,UAAY,SAASvrC,GAC1C,GAAG/F,KAAK0wC,SAAU,CAChB,GAAIhf,MACA8gB,EAAqB,gBAATzsC,GAAoBA,EAAKjE,MAAM9B,KAAKwwC,WAAazqC,EAAKvE,OAEtE,OADAsvC,GAAmB3wC,KAAKH,KAAM0xB,EAAU8gB,EAAIxyC,KAAK4wC,aAAc,GACxDlf,EAST,MANA1xB,MAAKowC,SAAW3+B,EAAKtR,KAAKH,MAErBA,KAAKowC,QAAQrqC,KAAO/F,KAAKowC,QAAQrqC,OACjC6D,EAAQ5J,KAAKowC,QAAQrqC,MACxB/F,KAAKowC,QAAQrqC,IAAS/F,KAAKowC,QAAQrqC,KAE9B/F,KAAKowC,QAAQrqC,IAGtB8qC,EAAaxyC,UAAU20C,aAAe,WAEpC,MAAGhzC,MAAKuyC,KACCvyC,KAAKuyC,SAadn2C,EAAQ62C,cAAgBpC,GAGP,mBAAZqC,UAAoD,mBAAlBA,SAAQC,OAA4C,mBAAZ/2C,SAA0BA,QAAU2I,QA0BvH,SAAWA,EAAQU,EAAUojB,EAAUlX,EAAYyhC,EAAoBhK,GA4CvE,QAASiK,GAAajzC,EAAQT,GAC1B,GAAI0xB,SAAWjxB,GAAOT,EACtB,OAAY,YAAL0xB,KACE,UAALA,IAAiBjxB,EAAOT,KACvB,WAAL0xB,EAGJ,QAASiiB,GAAalzC,EAAQT,GAC1B,QAAsC,gBAArBS,GAAOT,KAA0BS,EAAOT,IAM7D,QAASiK,GAAQ2pC,GACb,MAA6C,mBAAtC11C,OAAOQ,UAAUC,SAAS6B,KAAKozC,GAI1C,QAASC,KACL,GAAI92C,GAAO,kBAAmBqb,EAAW,+BAEzC,KAAKpb,EAAM82C,UAAUC,UAA8C,gBAA3BD,WAAUC,QAAQh3C,GAAmB,CAEzE,GAAIi3C,GAAcF,UAAUC,QAAQh3C,GAAMi3C,WACtCA,KAAgBh3C,EAAM82C,UAAUG,YAAcH,UAAUG,UAAU77B,IAAa07B,UAAUG,UAAU77B,GAAU87B,gBAC7GC,EAAeH,EAAYxsC,MAAM,SAGzC,IAAK2sC,EAAc,CACf,GAAIC,EACJ,KACIA,EAAQ,GAAI16B,eAAc,iCAC1By6B,EAAer4B,MAAMpd,UAAUmD,MAAMrB,KAAK4zC,EAAMC,YAAY,YAAY7sC,MAAM,2BAA4B,GAC1G4sC,EAAQ,KAEZ,MAAOE,KAGX,IAAKH,EACD,OAAO,CAEX,IAAII,GAAQtR,SAASkR,EAAa,GAAI,IAAKK,EAAQvR,SAASkR,EAAa,GAAI,GAE7E,OADAM,GAA0BF,EAAQ,GAAKC,EAAQ,GACxC,EA6CX,QAASE,KACL,IAAIC,EAAJ,CAGAA,GAAa,CACb,KAAK,GAAI9tC,GAAI,EAAGA,EAAI+tC,EAAc52C,OAAQ6I,IACtC+tC,EAAc/tC,IAElB+tC,GAAc52C,OAAS,GA0C3B,QAAS62C,GAAU16B,EAAI26B,GACnB,MAAIH,OACAx6B,GAAG3Z,KAAKs0C,OAGZF,GAActxC,KAAK,WACf6W,EAAG3Z,KAAKs0C,KAUhB,QAASC,KACL,GAAI5uC,GAAM5F,MACV,IAAkB,KAAdgyB,EACA,IAAK,GAAI1rB,GAAI,EAAGmuC,EAAKziB,EAAUpwB,MAAM,KAAM0E,EAAImuC,EAAGh3C,OAAQ6I,IACtDV,EAAMA,EAAI6uC,EAAGnuC,GAGrB,OAAOV,GAAI8uC,QAWf,QAASrvC,GAAWitC,GAOhB,MALAztC,GAAO6vC,QAAUC,EACjB3iB,EAAYsgB,EACRtgB,IACA4iB,EAAgB,WAAa5iB,EAAU/pB,QAAQ,IAAK,KAAO,KAExDysC,EAYX,QAASG,GAAcpP,GACnB,MAAOA,GAAIx+B,MAAM6tC,GAAO,GAS5B,QAASC,GAAQtP,GACb,MAAOA,GAAIx+B,MAAM6tC,GAAO,IAAM,GAQlC,QAASE,GAAYvP,GACjB,GAAIlpB,GAAIkpB,EAAIt9B,cAAclB,MAAM6tC,GAC5BG,EAAQ14B,EAAE,GAAI24B,EAAS34B,EAAE,GAAI44B,EAAO54B,EAAE,IAAM,EAIhD,QAHc,SAAT04B,GAA4B,OAARE,GAA4B,UAATF,GAA6B,QAARE,KAC7DA,EAAO,IAEJF,EAAQ,KAAOC,EAASC,EAQnC,QAASC,GAAW3P,GAMhB,GAHAA,EAAMA,EAAIx9B,QAAQotC,EAAe,QAG5B5P,EAAIx+B,MAAM,uBAAwB,CAEnC,GAAIquC,GAAgC,MAAxB7P,EAAI8P,UAAU,EAAG,GAAc,GAAK5sB,EAAS6sB,QACjB,OAApCF,EAAKC,UAAUD,EAAK73C,OAAS,KAC7B63C,EAAOA,EAAKC,UAAU,EAAGD,EAAKG,YAAY,KAAO,IAGrDhQ,EAAM9c,EAAS+sB,SAAW,KAAO/sB,EAASgtB,KAAOL,EAAO7P,EAI5D,KAAOmQ,EAASpvC,KAAKi/B,IACjBA,EAAMA,EAAIx9B,QAAQ2tC,EAAU,GAGhC,OAAOnQ,GAUX,QAASoQ,GAAsBpQ,EAAKqQ,GAEhC,GAAIptB,GAAO,GAAInP,EAAUksB,EAAIlsB,QAAQ,IACrB,MAAZA,IACAmP,EAAO+c,EAAI8P,UAAUh8B,GACrBksB,EAAMA,EAAI8P,UAAU,EAAGh8B,GAE3B,IAAIw8B,KACJ,KAAK,GAAIjuC,KAAOguC,GACRA,EAAWt2C,eAAesI,IAC1BiuC,EAAEhzC,KAAK+E,EAAM,IAAMohC,EAAmB4M,EAAWhuC,IAGzD,OAAO29B,IAAOuQ,EAAU,IAA2B,IAApBvQ,EAAIlsB,QAAQ,KAAa,IAAM,KAAQw8B,EAAE/yC,KAAK,KAAO0lB,EAuBxF,QAASjsB,GAAMqc,GACX,MAAoB,mBAANA,GAkDlB,QAAS5J,GAAM+mC,EAAa/yC,EAAQgzC,GAChC,GAAIC,EACJ,KAAK,GAAI/kC,KAAQlO,GACTA,EAAO1D,eAAe4R,KAClBA,IAAQ6kC,IACRE,EAASjzC,EAAOkO,GACM,gBAAX+kC,GACPjnC,EAAM+mC,EAAY7kC,GAAO+kC,EAAQD,GAE3BA,IACND,EAAY7kC,GAAQlO,EAAOkO,KAI/B6kC,EAAY7kC,GAAQlO,EAAOkO,GAIvC,OAAO6kC,GAIX,QAASG,KACL,GAAIngB,GAAO1wB,EAAS2I,KAAKtC,YAAYrG,EAASmF,cAAc,SAAUib,EAAQsQ,EAAKrqB,YAAYrG,EAASmF,cAAc,SACtHib,GAAMnpB,KAAOo4C,EAAgB,OAASyB,EACtCC,EAAwB3wB,IAAUsQ,EAAKhwB,SAAS0f,EAAMnpB,MACtD+I,EAAS2I,KAAKmQ,YAAY4X,GAe9B,QAASsgB,GAAYC,GACb/5C,EAAM65C,IACNF,GAEJ,IAAIK,EAIAH,GACAG,EAAQlxC,EAASmF,cAAc,iBAAoB8rC,EAAOhkC,MAAMhW,KAAO,QAGvEi6C,EAAQlxC,EAASmF,cAAc,UAC/B+rC,EAAMj6C,KAAOg6C,EAAOhkC,MAAMhW,MAG9Bi6C,EAAMttC,GAAKstC,EAAMj6C,KAAOg6C,EAAOhkC,MAAMhW,WAC9Bg6C,GAAOhkC,MAAMhW,KAEW,gBAApBg6C,GAAO3nB,YACd2nB,EAAO3nB,UAAYtpB,EAAS0X,eAAeu5B,EAAO3nB,YAGjD2nB,EAAO3nB,YAER3f,EAAMunC,EAAMzoC,OACR/J,SAAU,WACVmhB,IAAK,UAEL0V,KAAM,QAEV0b,EAAO3nB,UAAYtpB,EAAS2I,KAQhC,IAAIzB,GAAM+pC,EAAOhkC,MAAM/F,GAgBvB,IAfA+pC,EAAOhkC,MAAM/F,IAAM,mBAGnByC,EAAMunC,EAAOD,EAAOhkC,OAEpBikC,EAAM/Y,OAAS+Y,EAAMC,YAAc,EACnCD,EAAME,mBAAoB,EAC1BH,EAAO3nB,UAAUjjB,YAAY6qC,GAEzBD,EAAOI,QACPpgB,EAAGigB,EAAO,OAAQD,EAAOI,QAK1BJ,EAAOK,QAAS,CACf,GAAyElxB,GAArEsQ,EAAOugB,EAAO3nB,UAAUjjB,YAAYrG,EAASmF,cAAc,QAI/D,IAHAurB,EAAKhf,OAASw/B,EAAMj6C,KACpBy5B,EAAK6gB,OAASrqC,EACdwpB,EAAKiS,OAAS,OACiB,gBAApBsO,GAAc,QACrB,IAAK,GAAIlwC,KAAKkwC,GAAOK,QACbL,EAAOK,QAAQr3C,eAAe8G,KAC1BgwC,EACA3wB,EAAQpgB,EAASmF,cAAc,gBAAkBpE,EAAI,QAErDqf,EAAQpgB,EAASmF,cAAc,SAC/Bib,EAAMnpB,KAAO8J,GAEjBqf,EAAMhpB,MAAQ65C,EAAOK,QAAQvwC,GAC7B2vB,EAAKrqB,YAAY+Z,GAI7BsQ,GAAKnM,SACLmM,EAAK3oB,WAAW+Q,YAAY4X,OAE5BwgB,GAAMhqC,IAAMA,CAIhB,OAFA+pC,GAAOhkC,MAAM/F,IAAMA,EAEZgqC,EAWX,QAASM,GAASC,EAAK9B,GAED,gBAAP8B,KACPA,GAAOA,GAGX,KADA,GAAIC,GAAI3wC,EAAI0wC,EAAIv5C,OACT6I,KAGH,GAFA2wC,EAAKD,EAAI1wC,GACT2wC,EAAK,GAAIxzB,QAA0B,KAAnBwzB,EAAGC,OAAO,EAAG,GAAYD,EAAM,IAAMA,EAAGhvC,QAAQ,QAAS,OAAOA,QAAQ,MAAO,KAAO,KAClGgvC,EAAGzwC,KAAK0uC,GACR,OAAO,CAGf,QAAO,EAWX,QAASiC,GAAsBX,GAC3B,GAAgCY,GAA5B1B,EAAWc,EAAOd,QAOtB,IANAc,EAAOa,OAASb,EAAOa,QAAU56C,EAAM66C,EAAMC,OAC7CvB,EAAUQ,EAAO9tB,OAAQ,EAEpB8tB,EAAOhkC,QACRgkC,EAAOhkC,UAENgkC,EAAOa,OAWRb,EAAO9I,OAAS0H,EAAWoB,EAAO9I,QAClC8I,EAAOgB,QAAUhB,EAAOgB,SAAW,UAAYnB,IAC/CG,EAAOiB,OAAS35C,KAAKsd,SAAShd,SAAS,IAAIm3C,UAAU,GACjD94C,EAAMi5C,KAKFA,EAJAV,EAAYrsB,EAASG,OAASksB,EAAYwB,EAAO9I,QAItC,IAENyF,EAAatuC,EAAQ,gBAAkBsuC,EAAa5tC,EAAU,eAIxD,IAENixC,EAAOkB,KAAOvE,EAAatuC,EAAQ,kBAAoByuC,IAIjD,IAEgB,UAAtBC,UAAUoE,SAAuB,gBAAkB9yC,IAAmD,IAAzC0uC,UAAUqE,UAAUr+B,QAAQ,UAInF,IAENi9B,EAAOqB,aAMD,IAQA,SA/CnB,IALArB,EAAOgB,QAAUF,EAAMQ,MAAM7vC,QAAQ,YAAa,IAClDuuC,EAAOiB,OAASH,EAAMS,MACtBvB,EAAO9I,OAAS4J,EAAMU,MAAM/vC,QAAQ,YAAa,IAEjDytC,EAAW4B,EAAMC,MACbf,EAAOQ,MAAQD,EAASP,EAAOQ,IAAKR,EAAO9I,QAC3C,KAAM,IAAIjoC,OAAM,qBAAuB+wC,EAAO9I,OAmDtD,QADA8I,EAAOd,SAAWA,EACVA,GACJ,IAAK,IAQD,GAPAxmC,EAAMsnC,GACFvW,SAAU,IACVK,MAAO,IACP2X,WAAW,EACXC,WAAW,EACXC,YAAY,IACb,GACC3B,EAAOa,OAAQ,CACf,IAAKb,EAAO4B,MAAO,CAIf,IAFA,GAA2GvuB,GAAvGqrB,EAASvsB,EAAS+sB,SAAW,KAAO/sB,EAASgtB,KAAM0C,EAAS9yC,EAAS2I,KAAKnD,qBAAqB,OAC/FzE,EAAI+xC,EAAO56C,OACR6I,KAEH,GADAujB,EAAQwuB,EAAO/xC,GACXujB,EAAMpd,IAAI8oC,UAAU,EAAGL,EAAOz3C,UAAYy3C,EAAQ,CAClDsB,EAAO4B,MAAQvuB,EAAMpd,GACrB,OAGH+pC,EAAO4B,QAER5B,EAAO4B,MAAQvzC,GAIvB,GAAIixC,IACAgC,MAAOtB,EAAOgB,QACdD,MAAO,EAGPf,GAAO4B,QAAUvzC,GAEjB2xC,EAAO2B,YAAa,EACpB3B,EAAO0B,WAAY,EACnB1B,EAAO4B,MAAQzvB,EAAS+sB,SAAW,KAAO/sB,EAASgtB,KAAOhtB,EAAS6sB,SAAW7sB,EAAS2vB,OACvFxC,EAAWkC,MAAQxB,EAAO4B,MAC1BtC,EAAWyC,OAAS,GAGpBzC,EAAWkC,MAAQ5C,EAAWoB,EAAO4B,OAGrC5B,EAAO3nB,YACP2nB,EAAOyB,WAAY,EACnBnC,EAAW0C,OAAS,GAExBhC,EAAO9I,OAASmI,EAAsBW,EAAO9I,OAAQoI,OAGrD5mC,GAAMsnC,GACFgB,QAASF,EAAMQ,MACfpK,OAAQ4J,EAAMU,MACdE,WAAYz7C,EAAM66C,EAAMiB,QACxBJ,YAAa17C,EAAM66C,EAAMkB,QACzBP,UAAWzB,EAAO0B,WAAY,EAAQ1B,EAAOyB,WAGrDb,IAAY,GAAI1C,GAAQtyC,MAAMq2C,cAAcjC,GAAS,GAAI9B,GAAQtyC,MAAMs2C,qBAAsB,GAAIhE,GAAQtyC,MAAMu2C,eAC3GC,QAAQ,EACRC,UAAW,IAAOrC,EAAO9I,OAAOjwC,SAChC,GAAIi3C,GAAQtyC,MAAM02C,gBAClBC,SAAUvC,EAAOa,SAErB,MACJ,KAAK,IACDD,GAAY,GAAI1C,GAAQtyC,MAAM42C,qBAAqBxC,GACnD,MACJ,KAAK,IACGA,EAAOa,SACPb,EAAOqB,aAAezC,EAAWoB,EAAOqB,eAE5CT,GAAY,GAAI1C,GAAQtyC,MAAM62C,cAAczC,GAAS,GAAI9B,GAAQtyC,MAAMu2C,cAAiB,GAAIjE,GAAQtyC,MAAM02C,gBACtGC,SAAUvC,EAAOa,SAErB,MACJ,KAAK,IACDD,GAAY,GAAI1C,GAAQtyC,MAAM82C,aAAa1C,GAC3C,MACJ,KAAK,IACDY,GAAY,GAAI1C,GAAQtyC,MAAM+2C,oBAAoB3C,GAClD,MACJ,KAAK,IACDY,GAAY,GAAI1C,GAAQtyC,MAAMg3C,sBAAsB5C,GACpD,MACJ,KAAK,IACI5C,GACDN,IAEJ8D,GAAY,GAAI1C,GAAQtyC,MAAMi3C,eAAe7C,IAQrD,MAJAY,GAASr0C,KAAK,GAAI2xC,GAAQtyC,MAAMu2C,eAC5BW,KAAM9C,EAAO8C,KACbzsB,QAAQ,KAELuqB,EASX,QAASmC,GAAWC,GAkBhB,IAAK,GAjBDC,GAASC,GACTC,SAAU,SAASC,EAASC,GACxB/5C,KAAKg6C,GAAGH,SAASC,EAASC,IAE9BE,SAAU,SAASH,EAASI,GACxBl6C,KAAKm6C,KAAKF,SAASH,EAASI,IAEhC75C,SAAU,SAASwmC,GACf7mC,KAAKg6C,GAAG35C,SAASwmC,IAErBp1B,KAAM,WACFzR,KAAKm6C,KAAK1oC,QAEd2oC,QAAS,WACLp6C,KAAKm6C,KAAKC,YAGT5zC,EAAI,EAAGsU,EAAM4+B,EAAc/7C,OAAYmd,EAAJtU,EAASA,IACjDmzC,EAAUD,EAAclzC,GACxB4I,EAAMuqC,EAASC,GAAU,GACf,IAANpzC,IACAmzC,EAAQQ,KAAOT,EAAclzC,EAAI,IAEjCA,IAAMsU,EAAM,IACZ6+B,EAAQK,GAAKN,EAAclzC,EAAI,GAGvC,OAAOmzC,GAOX,QAASU,GAAgBt3C,GACrBA,EAAQi3C,GAAGG,KAAOp3C,EAAQo3C,KAC1Bp3C,EAAQo3C,KAAKH,GAAKj3C,EAAQi3C,GAC1Bj3C,EAAQi3C,GAAKj3C,EAAQo3C,KAAO,KAxtBhC,GAUI3D,GAEA1C,EACAM,EAsDA1d,EAAI4jB,EAnEJp1C,EAASlF,KACTu2C,EAAYv4C,KAAKqB,MAAsB,IAAhBrB,KAAKsd,UAC5Bi/B,EAAUhW,SAASlmC,UACnB22C,EAAQ,qCACRc,EAAW,kBACXP,EAAgB,cAChBrjB,EAAY,GACZ0iB,KACAC,EAAW9vC,EAAO6vC,QAClBE,EAAgB,WAEhBoB,GAAU,CAyDd,IAAI7C,EAAatuC,EAAQ,oBACrB2xB,EAAK,SAASvf,EAAQpR,EAAM8rC,GACxB16B,EAAO3P,iBAAiBzB,EAAM8rC,GAAU,IAE5CyI,EAAK,SAASnjC,EAAQpR,EAAM8rC,GACxB16B,EAAO1P,oBAAoB1B,EAAM8rC,GAAU,QAG9C,CAAA,IAAIwB,EAAatuC,EAAQ,eAS1B,KAAM,IAAIY,OAAM,wBARhB+wB,GAAK,SAASt2B,EAAQo6C,EAAQC,GAC1Br6C,EAAOmlB,YAAY,KAAOi1B,EAAQC,IAEtCH,EAAK,SAASl6C,EAAQo6C,EAAQC,GAC1Br6C,EAAOuH,YAAY,KAAO6yC,EAAQC,IAU1C,GAA4C5yC,GAAxCysC,GAAa,EAAOC,IA2BxB,IA1BI,cAAgB9uC,IAIhBoC,EAAapC,EAASoC,WACtBysC,EAA2B,YAAdzsC,IAA+B4rC,UAAUqE,UAAUr+B,QAAQ,kBAAkC,UAAd5R,GAAwC,eAAdA,IAMtHysC,IAAe7uC,EAAS2I,MAevBkmC,EAAY,CACb,GAAIjB,EAAatuC,EAAQ,oBACrB2xB,EAAGjxB,EAAU,mBAAoB4uC,OAQjC,IALA3d,EAAGjxB,EAAU,mBAAoB,WACF,YAAvBA,EAASoC,YACTwsC,MAGJ5uC,EAASkJ,gBAAgBkgB,UAAY9pB,IAAWugB,IAAK,CACrD,GAAIwJ,GAAgB,WAChB,IAAIwlB,EAAJ,CAIA,IACI7uC,EAASkJ,gBAAgBkgB,SAAS,QAEtC,MAAOpmB,GAEH,WADAkJ,GAAWmd,EAAe,GAG9BulB,KAEJvlB,KAKR4H,EAAG3xB,EAAQ,OAAQsvC,GA+IvB,GAAImD,GAAS,SAAS3xB,GAClBA,EAAQA,EAAM4vB,UAAU,GAAG3zC,MAAM,IAEjC,KADA,GAAe44C,GAAXzyC,KAAiBzB,EAAIqf,EAAMloB,OACxB6I,KACHk0C,EAAO70B,EAAMrf,GAAG1E,MAAM,KACtBmG,EAAKyyC,EAAK,IAAMtH,EAAmBsH,EAAK,GAE5C,OAAOzyC,IACT,SAASvB,KAAKmiB,EAAS2vB,QAAU3vB,EAAS2vB,OAAS3vB,EAASD,MAkB1D6f,EAAU,WACV,GAAIne,MACAxkB,GACAxI,GAAI,EAAG,EAAG,IACX0oC,EAAO,eAEV,OAAmB,mBAAR7gC,OAAiD,kBAAnBA,MAAKpI,WAA4BoI,KAAKpI,UAAU+I,GAAKqC,QAAQ,MAAS,MAAQ69B,EAE5G7gC,MAEPtH,OAAOX,QACHW,OAAOX,OAAO4I,GAAKqC,QAAQ,MAAS,MAAQ69B,IAE5C1b,EAAOvtB,UAAYc,OAAOX,QAIO,kBAA9BE,QAAOiB,UAAUs8C,WACxB70C,EAAMkgC,EAAK2U,WACP70C,EAAIxI,GAAsB,IAAjBwI,EAAIxI,EAAEK,QAA6B,IAAbmI,EAAIxI,EAAE,KAErCgtB,EAAO7sB,MAAQ,SAAS2mC,GACpB,MAAOA,GAAIuW,cAKnBrwB,EAAOvtB,WAAautB,EAAO7sB,OAE3BgrC,EAAU,WACN,MAAOne,IAEJA,GAEJ,MAqYXlb,GAAMwlC,GAKFh7B,QAAS,WAMT49B,MAAOA,EAIPl1C,SAOA8M,MAAOA,EAMPwrC,cAAenS,EAOf+L,UAAWA,EASXjvC,WAAYA,IA4DhBqvC,EAAQiG,WAOJnkB,GAAIA,EAOJ4jB,GAAIA,EAQJQ,aAAc,SAAStF,GACdlC,EAAavuC,EAAQ,SAGtBU,EAASqJ,MAAM,uCAA8C0mC,EAAO,iBA8B/E,WAEG,GAAIuF,KAQJnG,GAAQoG,IAOJjhB,IAAK,SAASr9B,EAAMod,GAChBihC,EAAKr+C,GAAQod,GASjBzV,IAAK,SAAS3H,EAAMu+C,GAChB,GAAKF,EAAKr7C,eAAehD,GAAzB,CAGA,GAAIod,GAAKihC,EAAKr+C,EAKd,OAHIu+C,UACOF,GAAKr+C,GAETod,QAoFnB86B,EAAQsG,OAAS,SAASxE,GAGtB,GAAIp0C,GAAQm3C,EAAWpC,EAAsBX,GAAQ7sC,SACjDgwC,SAAU,SAASC,EAASC,GACxBrD,EAAOyE,UAAUrB,EAASC,IAE9B15C,SAAU,SAASwmC,GACX6P,EAAO0E,SACP1E,EAAO0E,QAAQvU,QAGrBqT,EAAYhF,EAAYwB,EAAO9I,OAGrC5tC,MAAK+5C,OAAS7E,EAAYwB,EAAO9I,QAKjC5tC,KAAKo6C,QAAU,WACX93C,EAAM83C,WAOVp6C,KAAKq7C,YAAc,SAASvB,GACxBx3C,EAAM23C,SAASH,EAASI,IAG5B53C,EAAMmP,QAmIVmjC,EAAQ0G,IAAM,SAAS5E,EAAQ6E,GAG3B,GAAIA,EAAcjD,MACd,IAAK,GAAIlQ,KAAUmT,GAAcjD,MAC7B,GAAIiD,EAAcjD,MAAM54C,eAAe0oC,GAAS,CAC5C,GAAIiO,GAASkF,EAAcjD,MAAMlQ,EACX,mBAAXiO,KACPkF,EAAcjD,MAAMlQ,IAChBA,OAAQiO,IAQ5B,GAAI/zC,GAAQm3C,EAAWpC,EAAsBX,GAAQ7sC,QAAQ,GAAI+qC,GAAQtyC,MAAMk5C,YAAYx7C,KAAMu7C,IAC7Fl7C,SAAU,SAASwmC,GACX6P,EAAO0E,SACP1E,EAAO0E,QAAQvU,OAM3B7mC,MAAK+5C,OAAS7E,EAAYwB,EAAO9I,QAMjC5tC,KAAKo6C,QAAU,WACX93C,EAAM83C,WAGV93C,EAAMmP,QAqCVmjC,EAAQtyC,MAAM+2C,oBAAsB,SAAS3C,GACzC,GAAI+E,GAAK9E,EAAOnO,EAAMkT,CAEtB,OAAQD,IACJxB,SAAU,SAASH,EAAS1E,EAAQt7B,GAChC0uB,EAAKsR,GACDhgC,GACAA,KAGRsgC,QAAS,WACDzD,IACAA,EAAMnpC,WAAW+Q,YAAYo4B,GAC7BA,EAAQ,OAGhBgF,WAAY,WACRD,EAAexG,EAAYwB,EAAO9I,QAE9B8I,EAAOa,QAEPnoC,EAAMsnC,EAAOhkC,OACT/F,IAAKopC,EAAsBW,EAAO9I,QAC9BsK,MAAOrvB,EAAS+sB,SAAW,KAAO/sB,EAASgtB,KAAOhtB,EAAS6sB,SAC3DsC,MAAOtB,EAAOgB,QACdD,MAAO,IAEX/6C,KAAMo4C,EAAgB4B,EAAOgB,QAAU,cAE3Cf,EAAQF,EAAYC,GACpB9B,EAAQoG,GAAGjhB,IAAI2c,EAAOgB,QAAS,SAASkE,GAKpC,MAJApT,GAAOoT,EACPjqC,EAAW,WACP8pC,EAAIzB,GAAG35C,UAAS,IACjB,GACI,SAASmb,GACZigC,EAAIzB,GAAGH,SAASr+B,EAAKkgC,QAK7BlT,EAAOkM,IAAkBsG,GAAG32C,IAAIqyC,EAAOgB,SAAS,GAAM,SAASl8B,GAC3DigC,EAAIzB,GAAGH,SAASr+B,EAAKkgC,KAEzB/pC,EAAW,WACP8pC,EAAIzB,GAAG35C,UAAS,IACjB,KAGXoR,KAAM,WACF+iC,EAAUiH,EAAIE,WAAYF,MA0CtC7G,EAAQtyC,MAAMi3C,eAAiB,SAAS7C,GAIpC,QAASyE,GAAUrB,EAASC,GACxBpoC,EAAW,WACP8pC,EAAIzB,GAAGH,SAASC,EAAS4B,IAC1B,GAMP,QAASG,GAAOzG,GAEZ,GAAIzP,GAAM+Q,EAAOkB,IAAM,SAAWlB,EAAOa,OACrCluC,EAAK,eAAiBrL,KAAKqB,MAAsB,IAAhBrB,KAAKsd,SAG1Cs5B,GAAQoG,GAAGjhB,IAAI,eAAiBqb,EAAOjtC,QAAQ,SAAU,KAAM,WAC3DysC,EAAQtyC,MAAMi3C,eAAenE,GAAQwC,IAAMA,EAAMkE,EAAajwC,UAE9D,KAAK,GADDsH,GAAQyhC,EAAQtyC,MAAMi3C,eAAenE,GAAQjiC,MACxC3M,EAAI,EAAGA,EAAI2M,EAAMxV,OAAQ6I,IAC9B2M,EAAM3M,IAEV2M,GAAMxV,OAAS,IAGf+4C,EAAOoF,aACPA,EAA8C,gBAAvBpF,GAAOoF,aAA4Br2C,EAAS0X,eAAeu5B,EAAOoF,cAAgBpF,EAAOoF,cAIhHA,EAAer2C,EAASmF,cAAc,OAKtCwE,EAAM0sC,EAAa5tC,MAAOkmC,GAA2BsC,EAAOqF,eACxD7pC,OAAQ,OACR3Q,MAAO,OACP4C,SAAU,QACVurC,MAAO,EACPpqB,IAAK,IAELpT,OAAQ,MACR3Q,MAAO,MACP4C,SAAU,WACVsP,SAAU,SACVi8B,MAAO,EACPpqB,IAAK,IAET7f,EAAS2I,KAAKtC,YAAYgwC,GAI9B,IAAIE,GAAY,wBAA0B5S,EAAmBgM,EAAOjtC,QAAQ,SAAU,MAChF,UAAYjD,EAAO2jB,SAAS+sB,SAC5B,WAAaxM,EAAmB2L,EAAc7vC,EAAO2jB,SAASG,OAC9D,SAAWogB,EAAmB6L,EAAQ/vC,EAAO2jB,SAASG,OACtD,OAASogB,EAAmBlX,EAClC4pB,GAAanuC,UAAY,2EAA6EtE,EAAK,WAAas8B,EAAM,+HAI9HA,EACA,4CAEAqW,EACA,oEAEAA,EACA,yDACArW,EACA,2CAzEJ,GAAI8V,GACP9E,EAAa+E,EAAc9D,EAAKkE,CA4E7B,OAAQL,IACJxB,SAAU,SAASH,EAAS1E,EAAQt7B,GAChC89B,EAAIyD,YAAY3E,EAAOgB,QAASoC,EAAQx7C,YACpCwb,GACAA,KAGRsgC,QAAS,WACL,IACIxC,EAAIqE,eAAevF,EAAOgB,SAE9B,MAAOjvC,IAEPmvC,EAAM,KACFjB,IACAA,EAAMnpC,WAAW+Q,YAAYo4B,GAC7BA,EAAQ,OAGhBgF,WAAY,WAERD,EAAehF,EAAO9I,OAGtBgH,EAAQoG,GAAGjhB,IAAI,SAAW2c,EAAOgB,QAAU,QAAS,WAChD/lC,EAAW,WACP8pC,EAAIzB,GAAG35C,UAAS,OAKxBu0C,EAAQoG,GAAGjhB,IAAI,SAAW2c,EAAOgB,QAAU,aAAcyD,GAEzDzE,EAAOkB,IAAMtC,EAAWoB,EAAOkB,IAC/B,IAAIsE,GAAYnH,EAAc2B,EAAOkB,KACjC99B,EAAK,WAEL86B,EAAQtyC,MAAMi3C,eAAe2C,GAAWzqC,MAAO,EAC/CmmC,EAAMhD,EAAQtyC,MAAMi3C,eAAe2C,GAAWtE,IAE9CA,EAAIuE,cAAczF,EAAOgB,QAAShB,EAAOiB,OAAQzC,EAAYwB,EAAO9I,QAAS8I,EAAOa,QAEhFb,EAAOa,SAEHnD,GAA2BsC,EAAOqF,eAClC3sC,EAAMsnC,EAAOhkC,OACTvO,SAAU,QACVurC,MAAO,EACPpqB,IAAK,EACLpT,OAAQ,OACR3Q,MAAO,SAIf6N,EAAMsnC,EAAOhkC,OACT/F,IAAKopC,EAAsBW,EAAO9I,QAC9BsK,MAAOhD,EAAYrsB,EAASG,MAC5BgvB,MAAOtB,EAAOgB,QACdD,MAAO,EACPQ,MAAOvB,EAAOiB,SAElBj7C,KAAMo4C,EAAgB4B,EAAOgB,QAAU,cAE3Cf,EAAQF,EAAYC,IAIxB9B,GAAQtyC,MAAMi3C,eAAe2C,IAActH,EAAQtyC,MAAMi3C,eAAe2C,GAAWzqC,KAEnFqI,IAIK86B,EAAQtyC,MAAMi3C,eAAe2C,GAQ9BtH,EAAQtyC,MAAMi3C,eAAe2C,GAAW/oC,MAAMlQ,KAAK6W,IANnD86B,EAAQtyC,MAAMi3C,eAAe2C,IACzB/oC,OAAQ2G,IAEZ+hC,EAAOK,KAOnBzqC,KAAM,WACF+iC,EAAUiH,EAAIE,WAAYF,MAwCtC7G,EAAQtyC,MAAM42C,qBAAuB,SAASxC,GAW1C,QAAS0F,GAAWx0C,GAChB,GAAIA,EAAMmyC,OAEN,MAAO7E,GAAYttC,EAAMmyC,OAE7B,IAAInyC,EAAMy0C,IAEN,MAAOnH,GAAYttC,EAAMy0C,IAE7B,IAAIz0C,EAAMwtC,OAGN,MAAOvsB,GAAS+sB,SAAW,KAAOhuC,EAAMwtC,MAE5C,MAAM,6CASV,QAASkH,GAAkB10C,GACvB,GAAImyC,GAASqC,EAAWx0C,EACpBmyC,IAAU2B,GAAgB9zC,EAAMK,KAAKwtC,UAAU,EAAGiB,EAAOgB,QAAQ/5C,OAAS,IAAM+4C,EAAOgB,QAAU,KACjG+D,EAAIzB,GAAGH,SAASjyC,EAAMK,KAAKwtC,UAAUiB,EAAOgB,QAAQ/5C,OAAS,GAAIo8C,GApCzE,GAAI0B,GACP9E,EACA4F,EACAb,CAqCG,OAAQD,IACJxB,SAAU,SAASH,EAAS1E,EAAQt7B,GAChCyiC,EAAalB,YAAY3E,EAAOgB,QAAU,IAAMoC,EAAS1E,GAAUsG,GAC/D5hC,GACAA,KAGRsgC,QAAS,WACLE,EAAGv1C,EAAQ,UAAWu3C,GAClB3F,IACA4F,EAAe,KACf5F,EAAMnpC,WAAW+Q,YAAYo4B,GAC7BA,EAAQ,OAGhBgF,WAAY,WAER,GADAD,EAAexG,EAAYwB,EAAO9I,QAC9B8I,EAAOa,OAAQ,CAEf,GAAIiF,GAAe,SAAS50C,GACpBA,EAAMK,MAAQyuC,EAAOgB,QAAU,WAE/B6E,EAAgB,eAAiB5F,GAAM/nC,cAAiB+nC,EAAM/nC,cAAgB+nC,EAAM/nC,cAAcnJ,SAClG60C,EAAGv1C,EAAQ,UAAWy3C,GACtB9lB,EAAG3xB,EAAQ,UAAWu3C,GACtB3qC,EAAW,WACP8pC,EAAIzB,GAAG35C,UAAS,IACjB,IAGXq2B,GAAG3xB,EAAQ,UAAWy3C,GAGtBptC,EAAMsnC,EAAOhkC,OACT/F,IAAKopC,EAAsBW,EAAO9I,QAC9BsK,MAAOhD,EAAYrsB,EAASG,MAC5BgvB,MAAOtB,EAAOgB,QACdD,MAAO,IAEX/6C,KAAMo4C,EAAgB4B,EAAOgB,QAAU,cAE3Cf,EAAQF,EAAYC,OAIpBhgB,GAAG3xB,EAAQ,UAAWu3C,GACtBC,EAAgB,eAAiBx3C,GAAO7E,OAAU6E,EAAO7E,OAAS6E,EAAO7E,OAAOuF,SAChF82C,EAAalB,YAAY3E,EAAOgB,QAAU,SAAUgE,GAEpD/pC,EAAW,WACP8pC,EAAIzB,GAAG35C,UAAS,IACjB,IAGXoR,KAAM,WACF+iC,EAAUiH,EAAIE,WAAYF,MAuCtC7G,EAAQtyC,MAAMg3C,sBAAwB,SAAS5C,GAC3C,GAAI+E,GAAK9E,EAAOnO,EAAMkT,CAEtB,OAAQD,IACJxB,SAAU,SAASH,EAAS1E,EAAQt7B,GAChC0uB,EAAKroC,KAAKH,KAAM85C,GACZhgC,GACAA,KAGRsgC,QAAS,WACDzD,IACAA,EAAMnpC,WAAW+Q,YAAYo4B,GAC7BA,EAAQ,OAGhBgF,WAAY,WACRD,EAAexG,EAAYwB,EAAO9I,QAE9B8I,EAAOa,QAEPnoC,EAAMsnC,EAAOhkC,OACT/F,IAAKopC,EAAsBW,EAAO9I,QAC9BsK,MAAOhD,EAAYrsB,EAASG,MAC5BgvB,MAAOtB,EAAOgB,QACdD,MAAO,IAEX/6C,KAAMo4C,EAAgB4B,EAAOgB,QAAU,cAE3Cf,EAAQF,EAAYC,GACpBC,EAAM78B,GAAK,SAAS8hC,GAOhB,aANOjF,GAAM78B,GACb0uB,EAAOoT,EACPjqC,EAAW,WACP8pC,EAAIzB,GAAG35C,UAAS,IACjB,GAEI,SAASmb,GACZigC,EAAIzB,GAAGH,SAASr+B,EAAKkgC,OAMzBj2C,EAASg3C,UAAYvH,EAAYzvC,EAASg3C,WAAajF,EAAMU,QAC7DnzC,EAAOugB,IAAIuD,SAAW2uB,EAAMU,OAEhC1P,EAAOzjC,EAAO6pB,aAAa9U,GAAG,SAAS0B,GACnCigC,EAAIzB,GAAGH,SAASr+B,EAAKkgC,KAEzBD,EAAIzB,GAAG35C,UAAS,KAGxBoR,KAAM,WACF+iC,EAAUiH,EAAIE,WAAYF,MAwCtC7G,EAAQtyC,MAAM62C,cAAgB,SAASzC,GAKnC,QAASgG,GAAa5C,GAClB,GAAInU,GAAM+Q,EAAOqB,cAAgBR,EAAS,MAAQ,OAASb,EAAOgB,OAClE6E,GAAa3tC,cAAc+tC,YAAY7C,EAASnU,GAGpD,QAASiX,KACDrF,EACqB,MAAfsF,GAAqBtF,GACvBkE,EAAIzB,GAAG35C,UAAS,IAIpBq8C,EAAa,SACbjB,EAAIzB,GAAG35C,UAAS,IAIxB,QAASy8C,GAAWhD,GAChB2B,EAAIzB,GAAGH,SAASC,EAASiD,GAG7B,QAASC,KACD38C,GACAsR,EAAW,WACPtR,GAAS,IACV,GA5BX,GAAIo7C,GACAlE,EAAQgF,EAAcU,EAAcJ,EAAYx8C,EAAU08C,EAAcG,CA+B5E,OAAQzB,IACJxB,SAAU,SAASH,EAAS1E,EAAQt7B,GAChCzZ,EAAWyZ,EACX4iC,EAAa5C,IAEjBM,QAAS,WACLmC,EAAa/uC,WAAW+Q,YAAYg+B,GACpCA,EAAe,KACXhF,IACA0F,EAAazvC,WAAW+Q,YAAY0+B,GACpCA,EAAe,OAGvBtB,WAAY,WACRpE,EAASb,EAAOa,OAChBsF,EAAa,EACbE,EAAe7H,EAAYwB,EAAO9I,QAClC8I,EAAO4B,MAAQhD,EAAWoB,EAAO4B,OAE7Bf,GAEA3C,EAAQoG,GAAGjhB,IAAI2c,EAAOgB,QAAS,SAASoC,GAChCvC,GAAsB,UAAZuC,IAEVlF,EAAQoG,GAAGjhB,IAAI2c,EAAOgB,QAASoF,GAC/BF,OAKRM,EAAYnH,EAAsBW,EAAO9I,QACrCsK,MAAOxB,EAAO4B,MACdN,MAAOtB,EAAOgB,QACdD,MAAO,IAEXroC,EAAMsnC,EAAOhkC,OACT/F,IAAKuwC,EAAY,IAAMxG,EAAOgB,QAC9Bh7C,KAAMo4C,EAAgB4B,EAAOgB,QAAU,cAE3CuF,EAAexG,EAAYC,KAG3BA,EAAOqB,aAAerB,EAAO9I,OAC7BgH,EAAQoG,GAAGjhB,IAAI2c,EAAOgB,QAASoF,GAInC,IAAIhG,GAAS,WAET,GAAIpxC,GAAI62C,GAAgBv8C,IACxBs6C,GAAG50C,EAAG,OAAQoxC,GACdlC,EAAQoG,GAAGjhB,IAAI2c,EAAOgB,QAAU,QAASsF,GACxC,QAASt2C,KACoC,kBAA/BhB,GAAEkJ,cAAc+tC,YACvBC,IAGAjrC,EAAWjL,EAAM,OAK7B61C,GAAe9F,GACX/jC,OACI/F,IAAK+pC,EAAO4B,MAAQ,MAAQ5B,EAAOgB,SAEvCZ,OAAQA,KAGhBrlC,KAAM,WACF+iC,EAAUiH,EAAIE,WAAYF,MAyCtC7G,EAAQtyC,MAAMq2C,cAAgB,SAASjC,GAKnC,QAASgG,GAAa5C,GAClB,GAAKqD,EAAL,CAGA,GAAIxX,GAAM+Q,EAAO9I,OAAS,IAAOwP,KAAY,IAAMtD,GACjDvC,IAAWa,EAAa+E,EAAcvuC,cAAgBuuC,GAAet0B,SAAW8c,GAGtF,QAAS0X,GAAYz0B,GACjB00B,EAAW10B,EACX6yB,EAAIzB,GAAGH,SAASyD,EAAS7H,UAAU6H,EAAS7jC,QAAQ,KAAO,GAAI8jC,GAOnE,QAASC,KACL,GAAKC,EAAL,CAGA,GAAIz0B,GAAOy0B,EAAgB50B,SAASG,KAAMJ,EAAO,GAAInP,EAAUuP,EAAKvP,QAAQ,IAC7D,KAAXA,IACAmP,EAAOI,EAAKysB,UAAUh8B,IAEtBmP,GAAQA,GAAQ00B,GAChBD,EAAYz0B,IAIpB,QAAS80B,KACLC,EAASvd,YAAYod,EAAWI,GAnCpC,GAAInC,GACWlE,EAAQoG,EAAQC,EAAcN,EAAUF,EAAQK,EAAiBN,EAC5E/E,EAAWmF,CAoCf,OAAQ9B,IACJxB,SAAU,SAASH,EAAS1E,GACxBsH,EAAa5C,IAEjBM,QAAS,WACLr1C,EAAOs7B,cAAcsd,IACjBpG,IAAWa,IACX+E,EAAc3vC,WAAW+Q,YAAY4+B,GAEzCA,EAAgB,MAEpBxB,WAAY,WAOR,GANApE,EAASb,EAAOa,OAChBqG,EAAelH,EAAOvW,SACtBmd,EAAW,IAAM5G,EAAOgB,QACxB0F,EAAS,EACThF,EAAY1B,EAAO0B,UACnBmF,EAAgBrI,EAAYwB,EAAO9I,QAC/B2J,EAAQ,CAKR,GAJAnoC,EAAMsnC,EAAOhkC,OACT/F,IAAK+pC,EAAO9I,OACZlxC,KAAMo4C,EAAgB4B,EAAOgB,QAAU,cAEvCU,EACA1B,EAAOI,OAAS,WACZ2G,EAAkB14C,EAClB24C,IACAjC,EAAIzB,GAAG35C,UAAS,QAGnB,CACD,GAAIw9C,GAAQ,EAAGztC,EAAMsmC,EAAOlW,MAAQ,IACnC,QAASsd,KACN,KAAMD,EAAQztC,EACV,KAAM,IAAIzK,OAAM,qCAEpB,KACI83C,EAAkBN,EAAcvuC,cAAcmvC,OAAOjJ,EAAgB4B,EAAOgB,QAAU,aAE1F,MAAOsG,IAEHP,GACAC,IACAjC,EAAIzB,GAAG35C,UAAS,IAGhBsR,EAAWmsC,EAAQ,OAI/BX,EAAgB1G,EAAYC,OAG5B+G,GAAkB14C,EAClB24C,IACItF,GACA+E,EAAgBj9C,OAChBu7C,EAAIzB,GAAG35C,UAAS,KAGhB+O,EAAMsnC,GACFhkC,OACI/F,IAAK+pC,EAAO9I,OAAS,IAAM8I,EAAOgB,QAAU,GAAIn6C,MAChDb,KAAMo4C,EAAgB4B,EAAOgB,QAAU,aAE3CZ,OAAQ,WACJ2E,EAAIzB,GAAG35C,UAAS,MAGxB88C,EAAgB1G,EAAYC,KAIxCjlC,KAAM,WACF+iC,EAAUiH,EAAIE,WAAYF,MAqCtC7G,EAAQtyC,MAAMs2C,iBAAmB,SAASlC,GACtC,GAAI+E,GACPp7C,EACO49C,EAAQ,EAAGC,EAAO,EAAGC,EAAiB,EAE1C,OAAQ1C,IACJ5B,SAAU,SAASC,EAASC,GACxB,GAAItgC,GAAUqgC,EAAQrgC,QAAQ,KAAM2kC,EAAMtE,EAAQrE,UAAU,EAAGh8B,GAAS3X,MAAM,IAC9Eg4C,GAAUA,EAAQrE,UAAUh8B,EAAU,GAElC2kC,EAAI,IAAMH,IACVE,EAAiB,GACb99C,GACAA,GAAS,IAGby5C,EAAQn8C,OAAS,IACjB89C,EAAItB,KAAKF,SAASmE,EAAI,GAAK,IAAMH,EAAQ,IAAME,EAAgBpE,GAC3DmE,GAAQE,EAAI,KACZF,EAAOE,EAAI,GACX3C,EAAIzB,GAAGH,SAASC,EAASC,MAKrCE,SAAU,SAASH,EAASC,EAAQjgC,GAChCqkC,EAAiBrE,EACjBz5C,EAAWyZ,EACX2hC,EAAItB,KAAKF,SAASiE,EAAO,OAASD,EAAS,IAAMnE,EAASC,MAyCtEnF,EAAQtyC,MAAMu2C,cAAgB,SAASnC,GAGnC,QAAS3kB,KACL,GAAI2kB,EAAO3pB,QAA2B,IAAjB5Z,EAAMxV,OAEvB,WADA08C,GAAgBoB,EAGpB,KAAI4C,GAA4B,IAAjBlrC,EAAMxV,SAAgB2gD,EAArC,CAGAD,GAAU,CACV,IAAIvE,GAAU3mC,EAAM2E,OAEpB2jC,GAAItB,KAAKF,SAASH,EAAQ7xC,KAAM6xC,EAAQC,OAAQ,SAASlT,GACrDwX,GAAU,EACNvE,EAAQz5C,UACRsR,EAAW,WACPmoC,EAAQz5C,SAASwmC,IAClB,GAEP9U,OApBR,GAAI0pB,GAAgD6C,EAA3CnrC,KAAYkrC,GAAU,EAAMxE,EAAW,GAAgBd,EAAY,EAAGS,GAAO,EAAO+E,GAAa,CAuB1G,OAAQ9C,IACJhqC,KAAM,WACE9U,EAAM+5C,KACNA,MAEAA,EAAOqC,YACPA,EAAYrC,EAAOqC,UACnBwF,GAAa,GAEb7H,EAAO8C,KACPA,GAAO,EAGPiC,EAAItB,KAAK1oC,QAGjBpR,SAAU,SAASwmC,GACfwX,GAAU,CACV,IAAIrE,GAAKyB,EAAIzB,EACbjoB,KACAioB,EAAG35C,SAASwmC,IAEhBgT,SAAU,SAASC,EAASC,GACxB,GAAIwE,EAAY,CACZ,GAAI9kC,GAAUqgC,EAAQrgC,QAAQ,KAAM+kC,EAAM5b,SAASkX,EAAQrE,UAAU,EAAGh8B,GAAU,GAClFogC,IAAYC,EAAQrE,UAAUh8B,EAAU,GAC5B,IAAR+kC,IACI9H,EAAOoC,SACPe,EAAWzG,EAAmByG,IAElC4B,EAAIzB,GAAGH,SAASA,EAAUE,GAC1BF,EAAW,QAIf4B,GAAIzB,GAAGH,SAASC,EAASC,IAGjCE,SAAU,SAASH,EAASC,EAAQjgC,GAC5B48B,EAAOoC,SACPgB,EAAU1Q,EAAmB0Q,GAEjC,IAAoB3pB,GAAhBsuB,IACJ,IAAIF,EAAY,CAEZ,KAA0B,IAAnBzE,EAAQn8C,QACXwyB,EAAW2pB,EAAQrE,UAAU,EAAGsD,GAChCe,EAAUA,EAAQrE,UAAUtlB,EAASxyB,QACrC8gD,EAAUx7C,KAAKktB,EAGnB,MAAQA,EAAWsuB,EAAU3mC,SACzB3E,EAAMlQ,MACFgF,KAAMw2C,EAAU9gD,OAAS,IAAMwyB,EAC/B4pB,OAAQA,EACR15C,SAA+B,IAArBo+C,EAAU9gD,OAAemc,EAAK,WAKhD3G,GAAMlQ,MACFgF,KAAM6xC,EACNC,OAAQA,EACR15C,SAAUyZ,GAGd0/B,GACAiC,EAAItB,KAAK1oC,OAGTsgB,KAGRqoB,QAAS,WACLkE,GAAa,EACb7C,EAAItB,KAAKC,aAuCrBxF,EAAQtyC,MAAM02C,eAAiB,SAAStC,GAGpC,QAASgI,KACLC,EAAW3gD,KAAKsd,SAAShd,SAAS,IAAIm3C,UAAU,GAChDgG,EAAItB,KAAKF,SAAS0E,GAJtB,GAAIlD,GAAKkD,EAAUC,CAOnB,OAAQnD,IACJ5B,SAAU,SAASC,EAASC,GACxB,GAAItgC,GAAUqgC,EAAQrgC,QAAQ,IACd,MAAZA,EACIqgC,IAAY6E,EACZlD,EAAIzB,GAAG35C,UAAS,GAEVu+C,IACNA,EAAc9E,EACTpD,EAAOuC,UACRyF,IAEJjD,EAAItB,KAAKF,SAASH,IAIlBA,EAAQrE,UAAU,EAAGh8B,KAAamlC,GAClCnD,EAAIzB,GAAGH,SAASC,EAAQrE,UAAUh8B,EAAU,GAAIsgC,IAI5DE,SAAU,SAASH,EAASC,EAAQjgC,GAChC2hC,EAAItB,KAAKF,SAAS0E,EAAW,IAAM7E,EAASC,EAAQjgC,IAExDzZ,SAAU,SAASwmC,GACX6P,EAAOuC,UACPyF,OA2ChB9J,EAAQtyC,MAAMk5C,YAAc,SAASl/B,EAAOo6B,GASxC,QAASmI,GAAM52C,GACXA,EAAK62C,QAAU,MACfrD,EAAItB,KAAKF,SAAS8E,EAAWhiD,UAAUkL,IAU3C,QAAS+2C,GAAcC,EAAY7W,GAC/B,GAAI5mC,GAAQia,MAAMpd,UAAUmD,KAE5B,OAAO,YACH,GAA0BnB,GAAtByM,EAAIuC,UAAU1R,OAAkBm8C,GAChC1R,OAAQA,EAGRt7B,GAAI,GAAiC,kBAArBuC,WAAUvC,EAAI,IAE1BA,EAAI,GAAiC,kBAArBuC,WAAUvC,EAAI,IAE9BzM,GACIwmC,QAASx3B,UAAUvC,EAAI,GACvB+L,MAAOxJ,UAAUvC,EAAI,IAEzBgtC,EAAQ5O,OAAS1pC,EAAMrB,KAAKkP,UAAW,EAAGvC,EAAI,KAI9CzM,GACIwmC,QAASx3B,UAAUvC,EAAI,IAE3BgtC,EAAQ5O,OAAS1pC,EAAMrB,KAAKkP,UAAW,EAAGvC,EAAI,IAElDoyC,EAAW,MAAQC,GAAqB9+C,EACxCy5C,EAAQzwC,GAAK81C,GAIbrF,EAAQ5O,OAAS1pC,EAAMrB,KAAKkP,UAAW,GAEvC4vC,EAAWG,aAAyC,IAA1BtF,EAAQ5O,OAAOvtC,SACzCm8C,EAAQ5O,OAAS4O,EAAQ5O,OAAO,IAGpC2T,EAAM/E,IAYd,QAASuF,GAAejX,EAAQ/+B,EAAIyQ,EAAIoxB,GACpC,IAAKpxB,EAUD,YATIzQ,GACAw1C,GACIx1C,GAAIA,EACJwP,OACIqvB,KAAM,OACN4R,QAAS,0BAOzB,IAAIjT,GAAShuB,CACTxP,IACAw9B,EAAU,SAAS5mC,GACf4mC,EAAU0T,EACVsE,GACIx1C,GAAIA,EACJpJ,OAAQA,KAGhB4Y,EAAQ,SAASihC,EAAS7xC,GACtB4Q,EAAQ0hC,CACR,IAAI/+B,IACAnS,GAAIA,EACJwP,OACIqvB,KAAM,OACN4R,QAASA,GAGb7xC,KACAuT,EAAI3C,MAAM5Q,KAAOA,GAErB42C,EAAMrjC,KAIVqrB,EAAUhuB,EAAQ0hC,EAGjB3wC,EAAQshC,KACTA,GAAUA,GAEd,KACI,GAAIjrC,GAAS6Z,EAAGsuB,OAAOh5B,MAAM0K,EAAG26B,MAAOvJ,EAAOrhC,QAAQg9B,EAAShuB,IAC1Dlc,GAAMsD,IACP4mC,EAAQ5mC,GAGhB,MAAOq/C,GACHzmC,EAAMymC,EAAIxF,UAxHlB,GAAI2B,GAAKsD,EAAarI,EAAOqI,YAActW,IACvC0W,EAAmB,EAAGD,IA2H1B,OAAQzD,IACJ5B,SAAU,SAASC,EAASC,GACxB,GAAI9xC,GAAO82C,EAAWthD,MAAMq8C,EAC5B,IAAI7xC,EAAKmgC,OAEDsO,EAAOxpC,OACPwpC,EAAOxpC,OAAOjF,EAAM42C,GAGpBQ,EAAep3C,EAAKmgC,OAAQngC,EAAKoB,GAAIqtC,EAAO4B,MAAMrwC,EAAKmgC,QAASngC,EAAKijC,YAGxE,CAED,GAAI7qC,GAAW6+C,EAAWj3C,EAAKoB,GAC3BpB,GAAK4Q,MACDxY,EAASwY,OACTxY,EAASwY,MAAM5Q,EAAK4Q,OAGnBxY,EAASwmC,SACdxmC,EAASwmC,QAAQ5+B,EAAKhI,cAEnBi/C,GAAWj3C,EAAKoB,MAG/BoI,KAAM,WACF,GAAIilC,EAAO9I,OAEP,IAAK,GAAIxF,KAAUsO,GAAO9I,OAClB8I,EAAO9I,OAAOluC,eAAe0oC,KAC7B9rB,EAAM8rB,GAAU4W,EAActI,EAAO9I,OAAOxF,GAASA,GAIjEqT,GAAItB,KAAK1oC,QAEb2oC,QAAS,WACL,IAAK,GAAIhS,KAAUsO,GAAO9I,OAClB8I,EAAO9I,OAAOluC,eAAe0oC,IAAW9rB,EAAM5c,eAAe0oC,UACtD9rB,GAAM8rB,EAGrBqT,GAAItB,KAAKC,aAIrBl1C,EAAO0vC,QAAUA,GACd7vC,OAAQU,SAAUojB,SAAU9jB,OAAO4M,WAAYyhC,mBAAoBhK;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BtE,GAAI/sC,GAOJA,IAAK,WAYJ,GAAIkjD,GAAiB,SAAS5/B,EAAMqJ,GAEnC,QAASw2B,GAAkB35B,GAC1B,GAAI45B,KAWJ,OAVA55B,GAAM1d,QAAQ,kBAAmB,IAC/BA,QAAQ,iBAAkB,KAC1BA,QAAQ,UAAW,QACnBA,QAAQ,aAAc,SAAUk2B,GACtB,QAANA,EACHohB,EAAOt8C,MAEPs8C,EAAOx8C,KAAKo7B,KAGRohB,EAAOv8C,KAAK,IAAIiF,QAAQ,MAA2B,MAApB0d,EAAM5jB,OAAO,GAAa,IAAM,IAMvE,MAHA+mB,GAAO02B,EAAU12B,GAAQ,IACzBrJ,EAAO+/B,EAAU//B,GAAQ,IAEjBqJ,GAASrJ,GAAeqJ,EAAK4sB,UAAYj2B,EAAKi2B,WACpD5sB,EAAK4sB,UAAY5sB,EAAK22B,UAAY32B,EAAK22B,UAAYhgC,EAAKggC,WACzDH,EAAkBx2B,EAAK4sB,UAAY5sB,EAAK22B,WAAyC,MAA5B32B,EAAK0sB,SAASzzC,OAAO,GAAa+mB,EAAK0sB,SAAY1sB,EAAK0sB,UAAa/1B,EAAKggC,YAAchgC,EAAK+1B,SAAW,IAAM,IAAM/1B,EAAK+1B,SAASl0C,MAAM,EAAGme,EAAK+1B,SAASC,YAAY,KAAO,GAAK3sB,EAAK0sB,SAAY/1B,EAAK+1B,WAC3P1sB,EAAK4sB,UAAY5sB,EAAK22B,WAAa32B,EAAK0sB,SAAW1sB,EAAKwvB,OAAUxvB,EAAKwvB,QAAU74B,EAAK64B,QACvFxvB,EAAKJ,KAJkB,MAgBrB82B,EAAY,SAAS/Z,GACxB,GAAIlpB,GAAIrf,OAAOuoC,GAAKx9B,QAAQ,aAAc,IAAIhB,MAAM,qGAEpD,OAAQsV,IACNuM,KAAWvM,EAAE,IAAM,GACnBm5B,SAAWn5B,EAAE,IAAM,GACnBkjC,UAAWljC,EAAE,IAAM,GACnBo5B,KAAWp5B,EAAE,IAAM,GACnBmjC,SAAWnjC,EAAE,IAAM,GACnB44B,KAAW54B,EAAE,IAAM,GACnBi5B,SAAWj5B,EAAE,IAAM,GACnB+7B,OAAW/7B,EAAE,IAAM,GACnBmM,KAAWnM,EAAE,IAAM,IAChB,KAGN,QAMCojC,kBAAmB,SAAS73C,EAAKnL,GAChC,MAAW,QAAPmL,GAAwB,MAAPA,GAAsB,UAAPA,EAC5BE,OAEArL,GAsCTijD,QAWAr2C,OAAQ,SAAU+oC,EAAI1sC,EAAKi6C,GAC1B,GAAIC,GAAwB,kBAARl6C,GAChBi4B,EAAQyU,EAAKA,EAAG1wC,MAAM,QACtB5B,EAASF,IACb8F,GAAMA,MAGW,OAAbi4B,EAAM,KACTA,EAAQA,EAAMv8B,MAAM,GAIrB,KAAK,GAAIgF,GAAI,EAAGsU,EAAMijB,EAAMpgC,OAAYmd,EAAJtU,EAASA,IACvCtG,EAAO69B,EAAMv3B,MACjBtG,EAAO69B,EAAMv3B,IAAMw5C,GAAUx5C,EAAI,GAAKsU,EAAMhV,MAE7C5F,EAASA,EAAO69B,EAAMv3B,GAIvB,KAAKw5C,EACJ,IAAK,GAAI1uC,KAAQxL,IACY,mBAAjB5F,GAAOoR,IAAyByuC,KAC1C7/C,EAAOoR,GAAQxL,EAAIwL,GAKtB,OAAOpR,IAQRqJ,KAAM,WACL,GAAI02C,GAAK,WACR,OAA2B,OAAjB,EAAEjiD,KAAKsd,UAAmB,GAAGhd,SAAS,IAAIm3C,UAAU,GAE/D,OAAQwK,KAAKA,IAAK,IAAIA,IAAK,IAAIA,IAAK,IAAIA,IAAK,IAAIA,IAAKA,IAAKA,KAS5Dt5C,QAAS,SAAS9J,EAAOqjD,GACxB,MAAOl6C,QAAOW,QAAQ9J,EAAOqjD,GAAS,IASvCC,eAAgB,SAASxa,GACxB,GAGCb,GACAD,EAJGQ,EAAO,8CACV+a,EAAWza,EAAIt9B,cACf01B,EAAQsH,EAAKh5B,KAAM+zC,EAIpB,KACCtb,EAAejc,SAASG,KACvB,MAAOvgB,GAGRq8B,EAAer/B,SAASmF,cAAc,KACtCk6B,EAAa9b,KAAO,GACpB8b,EAAeA,EAAa9b,KAG7B8b,EAAeA,EAAaz8B,cAIvB01B,IACJqiB,EAAWb,EAAeza,EAAasb,GAAU/3C,cACjD01B,EAAQsH,EAAKh5B,KAAM+zC,IAIpBvb,EAAeQ,EAAKh5B,KAAMy4B,MAG1B,IAAItc,KAAYuV,IACbA,EAAO,KAAQ8G,EAAc,IAAO9G,EAAO,KAAQ8G,EAAc,KAChE9G,EAAO,KAAuB,UAAfA,EAAO,GAAkB,KAAO,WAC9C8G,EAAc,KAA8B,UAAtBA,EAAc,GAAkB,KAAO,SAElE,OAAOrc,IAQR63B,gBAAiB,SAASC,GACzB,GAAIC,GACa,gBAATC,MAAoBF,YAAsBE,MACjDF,GAAoC,gBAAfA,IAA0D,gBAAxBA,GAAWx7C,UAAwD,gBAAxBw7C,GAAWj1C,SAG1Go1C,EACoB,gBAAhBC,aAA2BJ,YAAsBI,aACxDJ,GAAoC,gBAAfA,IAAmD,IAAxBA,EAAWx7C,UAAiD,gBAAxBw7C,GAAWj1C,QAGhG,OAAQk1C,IAAWE,GAgBpBE,IAAK,WAeJ,IAdA,GAAIC,GAEAxY,EAUA1tB,EAXAmmC,EAAa,MAEbr3C,EAAO,aACPs3C,GACH,SAAU,QAAS,QAAS,QAAS,MAAO,SAAU,QACtD,YAAa,QAAS,iBAAkB,WAAY,OAAQ,MAC5D,eAAgB,UAAW,aAAc,QAAS,OAAQ,UAC1D,YAAa,QAAS,QAEnBnjD,EAASmjD,EAAQnjD,OACjBq0C,EAAWjtC,OAAOitC,QAAUjtC,OAAOitC,YAGhCr0C,KACNyqC,EAAS0Y,EAAQnjD,GAGZq0C,EAAQ5J,KACZ4J,EAAQ5J,GAAU5+B,GAKf6F,WAAaA,UAAU1R,OAAS,GAAK0R,UAAU,IAAM+4B,IACxDyY,EAAazY,EAEb1tB,EAAOe,MAAMpd,UAAUmD,MAAMrB,KAAKkP,UAAW,GAK9CuxC,GADGrc,SAASlmC,UAAUslC,KACfY,SAASlmC,UAAUslC,KAAKxjC,KAAK6xC,EAAQ6O,GAAa7O,GAElD,WACNzN,SAASlmC,UAAU+Q,MAAMjP,KAAK6xC,EAAQ6O,GAAa7O,EAAUt3B,GAAQrL,YAIvEuxC,EAAKxxC,MAAMpP,KAAO0a,GAAQrL,YAQ3B5R,MAAO,SAAS2mC,GACf,MAAOj/B,MAAK1H,MAAM2mC,IAoBnBrnC,UAAW,SAASF,EAAOkkD,EAAUC,GACpC,MAAO77C,MAAKpI,UAAUF,EAAOkkD,EAAUC,IAOxCpnC,QAAS,WAAa,MAAO,aAwC/Bvd,GAAGoN,OAAO,cAAe,WAGxB,GAAIw3C,GAAM5kD,GAAGkN,OACT23C,EAAO7kD,GAAGkN,OAEV43C,GACHC,0BACAC,iBACAC,mBACAC,oBACAC,kBACAC,mBACAC,aACAC,cACAC,wBAGGC,GACHH,UAAW,SAASI,EAAWC,GAE9B,GAAIC,GAAQ,IAGR3lD,IAAGgkD,gBAAgByB,EAAUlkD,OAShCokD,EAAQh8C,OAAO87C,EAAUlkD,MAGzBokD,EAAM5oB,OAAO2oB,KAVbD,EAAUlkD,KAAOoI,OAAO+7C,GAAS19C,IAAI,GAErC29C,EAAQh8C,OAAO87C,EAAUlkD,OAY1BoI,OAAO,QAAQozB,OAAO4oB,IAEvBL,WAAY,SAASM,GAGjBA,GAAeA,EAAYC,KAAOD,EAAYC,IAAI9H,SAA8C,kBAA5B6H,GAAYC,IAAW,QAE7FD,EAAYC,IAAI9H,UAGT6H,GAAeA,EAAYC,KAAOD,EAAYC,IAAI9H,SAEzD/9C,GAAGskD,IAAIsB,EAAYvL,OAAOyL,MAAQ,kGAInCn8C,OAAOi8C,EAAYvL,OAAO94C,MAAMqiC,QAAQ,IAAK,WAC5Cj6B,OAAOhG,MAAM+sB,aAKZq1B,EAAiB,SAAS73B,EAAO83B,EAAYC,EAAiBC,GAGjEC,EAAej4B,EAGf,IAAI9L,IACHnI,KAAkCgsC,EAClCpwB,UAAWmwB,EACXI,QAAUpmD,GAAGgkD,gBAAgBiC,GAAoBA,EAAkB,KAGpE,KAAI7jC,EAAQnI,OAASmI,EAAQgkC,QAE5B,KAAM,iIAGP,IAAGhkC,EAAQgkC,UAAYF,EAEtB,KAAM,wHAGP,OAAO9jC,IAGJ+jC,EAAiB,SAASE,GAG7B,GAAGzB,GAAOyB,GAAUxB,GAAQwB,EAAU,KAAM,yHAGzCC,EAAiB,SAASD,EAAQE,EAAUP,GAK/C,GAFAG,EAAeE,GAEXL,GAAeO,EAKd,IAAIP,GAAcO,EAEtBzB,EAAmByB,UAGf,IAAGP,IAAeO,EACvB,CACCP,EAAaA,EAAWh6C,aAExB,KAAI,GAAIw6C,KAAmB1B,GAC3B,CAIC,IAAI,GAHA2B,GAAkB3B,EAAmB0B,GACrCE,KAEIv8C,EAAI,EAAGw8C,EAAKF,EAAgBnlD,OAAYqlD,EAAJx8C,EAAQA,IACpD,CACC,GAAIy8C,GAAsBH,EAAgBt8C,EACvCy8C,KAEEA,EAAoB/wB,WAAa+wB,EAAoB/wB,UAAU7pB,eAAiBg6C,GAEnFU,EAAU9/C,KAAKggD,IAKlBH,EAAkBC,OAGf,IAAGV,GAAclB,EAAmByB,GACzC,CACCP,EAAaA,EAAWh6C,aAIxB,KAAI,GAFA66C,MAEIC,EAAW,EAAGC,EAAKjC,EAAmByB,GAAUjlD,OAAmBylD,EAAXD,EAAeA,IAC/E,CACC,GAAIE,GAAiBlC,EAAmByB,GAAUO,EAC/CE,KAEEA,EAAenxB,WAAamxB,EAAenxB,UAAU7pB,eAAiBg6C,GAEzEa,EAAqBjgD,KAAKogD,IAK7BlC,EAAmByB,GAAYM,GAIjC,QAOCI,SAAU,WAMT,aAFOtjD,MAAKsjD,SAELrC,GASRsC,aAAc,WAMb,aAFOvjD,MAAKujD,aAELrC,GAURsC,UAAW,SAASj5B,EAAOq4B,GAG1B,GAAGr4B,GAAS22B,EAEX,KAAM,iFAGP,KAAGC,IAAsBA,EAAmByB,GA+C3C,KAAM,2DAzCN,KAAI,GAHAa,MAGIj9C,EAAI,EAAGuU,EAAI1L,UAAU1R,OAAYod,EAAJvU,EAAOA,IAE3Ci9C,EAAaxgD,KAAKoM,UAAU7I,GAG7B,IAA2C,IAAxC26C,EAAmByB,GAAUjlD,QAAgBkkD,EAAgBe,GAG/D,MADAf,GAAgBe,GAAUxzC,MAAM/S,GAAIonD,GAC7BzjD,IAEH,IAA2C,IAAxCmhD,EAAmByB,GAAUjlD,SAAiBwjD,EAAmByB,GAExE,MAAO5iD,KAIR,KAAI,GAAImjD,GAAW,EAAGO,EAAMvC,EAAmByB,GAAUjlD,OAAmB+lD,EAAXP,EAAgBA,IACjF,CACC,GAAI1kC,GAAU0iC,EAAmByB,GAAUO,EAG3C,IAAI1kC,EAAQgkC,SAAWpzC,UAAU,IAAMA,UAAU,GAAGzR,MAAQyR,UAAU,GACtE,CACC,GAAIs0C,GAAW39C,OAAOqJ,UAAU,GAAGzR,MAAMw7B,OAAO/pB,UAAU,GAC1DrJ,QAAOyY,EAAQgkC,SAASrpB,OAAOuqB,OAEvBllC,GAAQgkC,SAAWpzC,UAAU,KAAOA,UAAU,GAAGzR,MAAQyR,UAAU,IAG3EA,UAAU,GAAGzR,KAAOoI,OAAOqJ,UAAU,IAAIhL,IAAI,GAE7C2B,OAAOyY,EAAQgkC,SAASrpB,OAAO/pB,UAAU,GAAGzR,OAI5C6gB,EAAQnI,KAAKlH,MAAM/S,GAAIonD,GAS1B,MAAOzjD,OAoDR02B,GAAI,SAASnM,EAAOq4B,EAAUN,GAE7B,GAAID,GAAa,IAEjB,KAAIO,EAEH,KAAM,yGAIP,IAAGA,EAASnpC,QAAQ,KAAO,GAC3B,CACC,GAAImqC,GAAShB,EAAS9gD,MAAM,IAC5B8gD,GAAWgB,EAAO,GAClBvB,EAAauB,EAAO,GAGrB,IAAGzC,IAAsBA,EAAmByB,GAa3C,KAAM,2DAGP,OAdCzB,GAAmByB,GAAU3/C,KAC5Bm/C,EACC73B,EACA83B,EACAC,EACa,aAAZM,IASG5iD,MAeR2uB,IAAK,SAASpE,EAAOq4B,GAEpB,GAAIP,GAAa,IAEjB,KAAIO,EAEH,KAAM,yGAIP,IAAGA,EAASnpC,QAAQ,KAAO,GAC3B,CACC,GAAImqC,GAAShB,EAAS9gD,MAAM,IAC5B8gD,GAAWgB,EAAO,GAClBvB,EAAauB,EAAO,GAGrB,IAAGzC,IAAsBA,EAAmByB,GAU3C,KAAM,2DAGP,OAXCD,GACCp4B,EACAq4B,EACAP,GAQKriD,WAKV3D,GAAGoN,OAAO,aAKTo6C,YAAa,WAEZ,OAoBCC,0BAA2B,yBAsB3BC,gBAAiB,gBAoBjBC,kBAAmB,kBAuCnBC,WAAY,YAoBZC,iBAAkB,iBAoBlBC,mBAAoB,mBAiCpBC,YAAa,aAoBbC,kBAAmB,kBAoBnBC,uBAAwB,4BAQ3BjoD,GAAGoN,OAAO,IAaT86C,IAAK,SAASzC,EAAW0C,EAAY5mD,GACpC,OAOC6T,KAAK,eAOPgzC,WAQCtC,MAAO,GAMP3lD,WAOAkoD,qBAAqB,EAUrBxyC,OAAQ,EASRyyC,WAAY,GAWZC,UAAU,EAYVC,gBAAiB,KAWjBC,iBAQAC,YAAa,GASblqB,SAAU,EAUVmqB,YAAa,EAUbpqB,SAAU,IAOVl+B,KAAM,GASNkB,KAAMsK,OASN+8C,GAAI/8C,OAYJg9C,UAMDC,aAQCC,QAOAC,iBAOAvsB,WAOAtoB,WAMD80C,YAOCr9C,QAOA0xB,KAAM,GAON+M,OAAQ,IAOT6e,iBAYCC,eAAgB,SAAS1D,EAAWnoB,KAcpC+nB,UAAW,SAASI,EAAWnoB,KAW/B8rB,gBAAiB,SAAS3D,KAO1B4D,WAAW,EAYXC,OAAQ,KAORC,mBAAoB,IAOpBC,iBAAiB,EASjBC,kBAAmB,GASnBC,kBAKAC,IAOCC,MAOCC,gBAAiB,OAMjBC,YAAa,GAObh0C,QAAS,GASTi0C,YAAY,EAOZ9oB,OAAQ,IAkEVgM,KAsBC/yB,SAAU,SAASovB,EAAK0gB,KAsBxBtgD,KAAM,SAAS4/B,EAAK0gB,KAmBpB1gB,IAAK,SAASA,EAAK0gB,MAgBpBC,YAAa,SAASxtB,EAAQytB,EAAQlmD,KAetCmmD,WAAY,SAASh2C,EAAOnQ,QAQ9BhE,GAAGoN,OAAO,aAKTg9C,IAAK,WAGJ,GAAIC,GAAU,KAEd,QAWCC,IAAKD,EAAU,MASfE,cAAeF,EAAU,gBAUzBG,UAAWH,EAAU,YAYrBI,SAAUJ,EAAU,WAcpBK,iBAAkBL,EAAU,mBAU5BM,KAAMN,EAAU,OAShBO,eAAgBP,EAAU,qBAQ5BQ,OAAQ,WAEP,GAAIC,GAAoB,OAEpBC,EAA0B,YAE9B,QASCC,mBAAoBF,EAAoB,gBAaxCG,kBAAmBH,EAAoB,eAcvCI,iBAAkBJ,EAAoB,eActCK,wBAAyBJ,EAA0B,eASnDK,uBAAwBL,EAA0B,cAclDM,wBAAyBN,EAA0B,eAUnDO,wBAAyBP,EAA0B,2BAIrDQ,eAAgB,oBAEhBC,WACCC,MAAO,QACPC,QAAS,WAQVC,SASCC,MAAO,YAYPC,KAAM,iBASNC,IAAK,UASLC,aAAc,kBAQdC,OAAQ,aAWTC,OASCC,eAAgB,eAQhBC,MAAO,QAQPC,KAAM,OASNC,KAAM,OASNC,OAAQ,SASRC,SAAU,cASZvsD,GAAGoN,OAAO,SAAU,WAEnB,GAAI2mC,GAAU,GAAI6C,gBACjBvC,UAAS,GAMV,OAFAN,GAAQ8B,gBAAgB,IAWvB2W,YAAa,WACZ,MAAO5V,eAAc50C,UAAUi0C,KAAKljC,MAAMghC,KAAY5uC,MAAMrB,KAAKkP,aASlEijC,KAAM,WAEL,MADAj2C,IAAGi/C,IAAIwN,UAAUzsD,GAAG0sD,UAAUf,QAAQC,SAAUzmD,MAAMrB,KAAKkP,YACpD4jC,cAAc50C,UAAUi0C,KAAKljC,MAAMghC,KAAY5uC,MAAMrB,KAAKkP,aAalE8iC,KAAM,SAASvqC,EAAOohD,EAAenX,GACpC,MAAOzB,GAAQ+B,KAAKvqC,EAAOohD,EAAenX,IAQ3CljB,IAAK,SAAS/mB,EAAOiqC,GACpB,MAAOzB,GAAQzhB,IAAI/mB,EAAOiqC,IAS3Bnb,GAAI,SAAS9uB,EAAOiqC,GACnB,MAAOzB,GAAQ1Z,GAAG9uB,EAAOiqC,IAU1BjlB,KAAM,SAAShlB,EAAOiqC,GACrB,MAAOzB,GAAQxjB,KAAKhlB,EAAOiqC,SAQ9Bx1C,GAAGoN,OAAO,MAAO,WAChB,GAAIy1C,MACA+J,EAAqB,GACrBC,KACAC,EAAW,GAAIxlC,QAAO,IAAMtnB,GAAG0sD,UAAUf,QAAQC,OACjDmB,EAAQ,GAAIzlC,QAAO,IAAMtnB,GAAG0sD,UAAUf,QAAQG,KAC9CkB,EAAgB,GAAI1lC,QAAO,IAAMtnB,GAAG0sD,UAAUf,QAAQI,cACtDkB,EAAe,GAAI3lC,QAAO,IAAMtnB,GAAG0sD,UAAUf,QAAQE,MACrDqB,EAAW,GAAI5lC,QAAO,IAAMtnB,GAAG0sD,UAAUf,QAAQK,QAQjDmB,EAA8B,WAEjC,GAAI1H,GACA2H,GAAW,EAIXC,KAEAC,EAAS,GAAI/U,SAAQsG,QACxBC,UAAW,SAASrB,EAASC,GAG5B,IAAK0P,GAAYH,EAAa5iD,KAAKozC,GAAU,CAC5CA,EAAUA,EAAQ3xC,QAAQmhD,EAAc,GACxC,IAAIM,GAAWvtD,GAAGoB,MAAMq8C,EAGD,IAAnB8P,EAASjsD,SACZmkD,EAAY8H,EAAS,GAGrBV,EAAMpH,EAAU6C,aACfjO,OAAOoL,EACP6H,OAAOA,GAIRttD,GAAGwtD,cAAc/H,IAAa8H,EAAS,KAGvC5jD,OAAOkB,KAAKwiD,EAAiB,SAASljD,EAAGiC,GACxCq0C,EAAWgF,EAAWhI,EAASC,KAGhC0P,GAAW,OAEFA,GAEV3M,EAAWgF,EAAWhI,EAASC,GAG/B2P,EAAgBzmD,KAAK62C,OAcrBgQ,EAA8B,SAAShI,EAAWiI,GAErD,GAAIh7B,GAAY/oB,OAAO87C,EAAUlkD,KAMjC,IAJKmxB,EAAUhE,GAAG,IAAM1uB,GAAG0sD,UAAUtC,IAAIG,gBACxC73B,EAAU9iB,KAAK,IAAM5P,GAAG0sD,UAAUtC,IAAIG,gBAGlC73B,EAAUpxB,OAEd,WADAtB,IAAGskD,IAAI,gEAIR,IAAIqJ,IACHC,UAAU,KACV/7C,OACC3M,MAAM,QAIJugD,GAAU5vC,SACb83C,EAAY97C,MAAMgE,OAAS4vC,EAAU5vC,OAAS,KAG/C,IAAIy3C,GAAS,GAAI/U,SAAQsG,QACxBtN,OAAQqb,EACRl6B,UAAWA,EAAU1qB,IAAI,GACzBqO,MAAMs3C,EACN7O,UAAW,SAASrB,EAASC,GAE5B+C,EAAWgF,EAAWhI,EAASC,IAEhCqB,QAAS,WACRuO,EAAOtO,YAAYh/C,GAAG0sD,UAAUf,QAAQE,KAAO7rD,GAAGU,WAAW+kD,EAAWiI,GAAc1tD,GAAGwjD,sBAI3F,OAAO8J,IAUJO,EAAqB,SAASvF,EAAYwF,GAC7C,MAAO,YACN9tD,GAAGi/C,IAAIn7C,KACNwkD,EACAtoD,GAAG0sD,UAAUf,QAAQI,aACrB+B,KACG3oD,MAAMrB,KAAKkP,WAAW7N,MAAM,MAa9Bs7C,EAAa,SAASgF,EAAWhI,EAASC,GAI7C,QAASqQ,GAAclqD,EAAQmqD,GAE9B,IAAK,GADD7U,GAAOp4C,OAAOitD,GAAcvoD,MAAM,KAC7B0E,EAAI,EAAGA,EAAIgvC,EAAK73C,OAAQ6I,IAAK,CACrC,GAAwB0B,SAApBhI,EAAOs1C,EAAKhvC,IAAmB,CAClCtG,EAASgI,MACT,OAEDhI,EAASA,EAAOs1C,EAAKhvC,IAEtB,MAAOtG,GAGR,QAASoqD,GAAaC,EAAOzQ,EAAS6K,GACrC,GAAIpR,GAAIl3C,GAAGoB,MAAMq8C,EAAQ3xC,QAAQoiD,EAAO,IAiBxC,OAVIhX,GAAErI,QAAUqI,EAAErI,OAAOvtC,QAAU41C,EAAEiX,WAAajX,EAAEiX,UAAU7sD,QAC7DqI,OAAOkB,KAAKqsC,EAAEiX,UAAW,SAAShkD,EAAGikD,GACpCzkD,OAAOkB,KAAKqsC,EAAErI,OAAQ,SAAS1kC,EAAG63B,GAC7BosB,GAAKpsB,IACRkV,EAAErI,OAAO1kC,GAAK0jD,EAAmBvF,EAAY8F,QAM1ClX,EAhCR,GAAIztC,GAAKwQ,CAoCLizC,GAAS7iD,KAAKozC,IACjBh0C,EAAMwkD,EAAaf,EAAUzP,EAASgI,EAAU6C,YAChDruC,EAAO8zC,EAActI,EAAUmD,GAAIn/C,EAAIukD,cAE1BniD,SAAToO,EACHA,EAAKlH,MAAM0yC,EAAUmD,GAAIn/C,EAAIolC,QAE7B7uC,GAAGskD,IAAI,qCAAuC76C,EAAIukD,eAIzCjB,EAAM1iD,KAAKozC,IACrBh0C,EAAMwkD,EAAalB,EAAOtP,EAASgI,EAAU6C,YAC7CruC,EAAO8zC,EAAcrlD,OAAQe,EAAIukD,cACpBniD,SAAToO,EACHA,EAAKlH,MAAMkH,EAAMxQ,EAAIolC,QAErB7uC,GAAGskD,IAAI,kCAAoC76C,EAAIukD,eAItChB,EAAc3iD,KAAKozC,IAC7Bh0C,EAAMwkD,EAAajB,EAAevP,EAASgI,EAAU6C,YAChBz8C,SAAjCg3C,EAAWp5C,EAAIukD,gBAClBnL,EAAWp5C,EAAIukD,cAAcj7C,MAAM8vC,EAAWp5C,EAAIukD,cAAevkD,EAAIolC,cAC9DgU,GAAWp5C,EAAIukD,gBAIblB,EAASziD,KAAKozC,KACxBh0C,EAAMwkD,EAAanB,EAAUrP,EAASgI,EAAU6C,YAChDtoD,GAAG6qD,OAAO2B,YAAYz5C,MAAM/S,GAAG6qD,OAAQphD,KAWrC4kD,EAAoB,SAASrqD,GAChC,GAAI8pD,GAAa9tD,GAAGkN,MAEpB,OADA21C,GAAWiL,GAAc9pD,EAClB8pD,EAGR,QAOCrB,UAAW,SAAS6B,EAAazf,GAEhC,GAAI4O,GAAU6Q,EAActuD,GAAGU,UAAUmuC,EACzCllC,QAAOkB,KAAKgiD,EAAO,SAAS1iD,EAAGlJ,GAC9BA,EAAEqsD,OAAOtO,YAAYvB,MAavB35C,KAAM,SAASwkD,EAAYgG,EAAaN,EAAcnf,GAErD,GAAIsf,KACJxkD,QAAOkB,KAAKgkC,EAAQ,SAAS1kC,EAAGiC,GAC/B,GAAiB,kBAANA,GAAkB,CAC5B,GAAImiD,GAAMF,EAAkBjiD,EAC5ByiC,GAAO1kC,GAAKokD,EACZJ,EAAUvnD,KAAK2nD,MAIjB1B,EAAMvE,GAAYgF,OAAOtO,YACxBsP,EAActuD,GAAGU,WAChBstD,aAAaA,EACbnf,OAAOA,EACPsf,UAAUA,MAcb/4C,KAAM,SAASq0C,GACdmD,EAAqBnD,EAChBmD,GACJO,KAYFqB,SAAU,SAASlG,GAClB,MAEuBz8C,UAAtBghD,EAAMvE,IAENuE,EAAMvE,GAAYjO,OAAOkO,UAEuC,IAAhE5+C,OAAOkjD,EAAMvE,GAAYjO,OAAO94C,MAAMqO,KAAK,UAAUtO,QAUvDmtD,SAAU,SAAShJ,EAAWiI,GACvBjI,GAAeiI,EACpBb,EAAMpH,EAAU6C,aACfjO,OAAOoL,EACP6H,OAAOG,EAA4BhI,EAAWiI,IAG/C1tD,GAAGskD,IAAI,qFAKXtkD,GAAGoN,OAAO,KAAM,WAEf,GAAIshD,GAQAC,EAAW,SAASlJ,GAEvB,GAAImJ,GAAanJ,EACbE,EAAQh8C,OAAO87C,EAAUlkD,MAEzBstD,EAAgB,SAASh5C,GAC5BA,EAASA,GAAUlM,OAAOilD,EAAWrtD,MAAMutD,cAEvC9uD,GAAGi/C,IAAIuP,SAASI,EAAWtG,YAC9BtoD,GAAGi/C,IAAIn7C,KACN8qD,EAAWtG,WACXtoD,GAAG0sD,UAAUf,QAAQK,OACrB,gBAECn2C,KAIF+4C,EAAW/4C,OAASA,EACpB8vC,EAAM/1C,KAAK,UAAUiG,OAAO+4C,EAAW/4C,UAKrCk5C,EAAa,SAASrlD,EAAK+zC,EAAQuR,GACtC,OACC,sBACC,6BACC,8BACC,6BACC,8IACA,2BAA2BtlD,EAAK,QACjC,SACA,8BACC+zC,EACA,aACD,6BACE,EAAe,oFAAsF,GACtG,mEACD,SACD,SACD,SACD,UACE52C,KAAK,IAGT,QAOCooD,SAAU,SAASzxC,GAClBxd,GAAG2pD,GAAGsF,SAASL,EAAWtG,WAAY9qC,IAOvC0xC,OAAQ,WAEP,GAAIC,GAAe,SAAS1R,GAC3B,MAAOsR,GAAW,QAAQtR,IAGvB2R,EAAiB,SAAS3R,GAC7B,MAAOsR,GAAW,UAAUtR,GAAQ,GAGrC,QASC4R,MAAO,SAAS5R,EAASz5C,GAExB,MAAKhE,IAAGsvD,cAKJtvD,GAAGi/C,IAAIuP,SAASI,EAAWtG,YAC9BtoD,GAAGi/C,IAAIn7C,KACN8qD,EAAWtG,WACXtoD,GAAG0sD,UAAUf,QAAQK,OACrB,kBACG7mD,MAAMrB,KAAKkP,YAIfrJ,OAAOwlD,EAAa1R,IAClBpjB,GAAG,gBAAiB,WACpB,GAAIsZ,GAAQhwC,IACZgG,QAAOgqC,GAAO/jC,KAAK,gBAAgByqB,GAAG,QAAS,WAC9C1wB,OAAOgqC,GAAOA,MAAM,QAAQjjB,UAC3B1sB,GAAY2F,OAAOwD,YAGrBwmC,OAAOhC,UAAS,SArBlB3xC,IAAGskD,IAAI,yDAkCTiL,QAAS,SAAS9R,EAAS+R,EAAYC,GAEtC,MAAKzvD,IAAGsvD,cAKJtvD,GAAGi/C,IAAIuP,SAASI,EAAWtG,YAC9BtoD,GAAGi/C,IAAIn7C,KACN8qD,EAAWtG,WACXtoD,GAAG0sD,UAAUf,QAAQK,OACrB,oBACG7mD,MAAMrB,KAAKkP,YAIfrJ,OAAOylD,EAAe3R,IACpBpjB,GAAG,gBAAiB,WACpB,GAAIsZ,GAAQhwC,IAEZgG,QAAOgqC,GAAO/jC,KAAK,WAAWyqB,GAAG,QAAS,WACzC1wB,OAAOgqC,GAAOA,MAAM,QAAQjjB,UAC3B8+B,GAAc7lD,OAAOwD,UAGvBxD,OAAOgqC,GAAO/jC,KAAK,eAAeyqB,GAAG,QAAS,WAC7C1wB,OAAOgqC,GAAOA,MAAM,QAAQjjB,UAC3B++B,GAAkB9lD,OAAOwD,YAG3BwmC,OAAOhC,UAAS,SA3BlB3xC,IAAGskD,IAAI,+DAyCXoL,SAAU,SAAS5Y,GAEd92C,GAAGi/C,IAAIuP,SAASI,EAAWtG,YAC9BtoD,GAAGi/C,IAAIn7C,KACN8qD,EAAWtG,WACXtoD,GAAG0sD,UAAUf,QAAQK,OACrB,YAEClV,IAIFntC,OAAOilD,EAAWrtD,MAAMqO,KAAK,IAAM5P,GAAG0sD,UAAUtC,IAAII,WAAWt5C,KAAK4lC,IAUtE6Y,SAAU,SAASnyC,EAAUoyC,GAC5B5vD,GAAG2pD,GAAGgG,SAASf,EAAWtG,WAAY9qC,EAAUoyC,IASjDC,aAAchB,EAMd5C,MAAO,WAEN,GAAIlY,GAAU,GAAI6C,eACdkZ,EAAgB,SAGpB/b,GAAQ8B,gBAAgB,EAExB,IAAIka,GAAW,SAASx7B,GACvB,MAAIu7B,GAAczlD,KAAKkqB,IACf,GAEPv0B,GAAGskD,IAAI,IAAM/vB,EAAY,4CAClB,GAIT,QASCC,OAAQ,SAAShL,GAEK,kBAAVA,GACV7lB,KAAK02B,GAAG,SAAU7Q,GACS,gBAAVA,KAEbolC,EAAWrG,WAAavoD,GAAGi/C,IAAIuP,SAASI,EAAWtG,YACtDtoD,GAAGi/C,IAAIn7C,KACN8qD,EAAWtG,WACXtoD,GAAG0sD,UAAUf,QAAQK,OACrB,kBACG7mD,MAAMrB,KAAKkP,YAELhT,GAAGsK,QAAQkf,EAAOolC,EAAW/F,SACvCl/C,OAAO,IAAM3J,GAAG0sD,UAAUtC,IAAIK,SAAU9E,GACtClf,SAAS,QACTz/B,OAAO,kBAAoBwiB,EAAQ,KAAMm8B,GACzC7e,YAAY,QAEd+nB,IACA9a,EAAQkC,KAAK,SAAUzsB,MAW1B8I,IAAK,SAAS/mB,EAAOiqC,GAChBua,EAASxkD,IACZwoC,EAAQzhB,IAAI/mB,EAAOiqC,IAWrBnb,GAAI,SAAS9uB,EAAOiqC,GACfua,EAASxkD,IACZwoC,EAAQ1Z,GAAG9uB,EAAOiqC,SAyIxB,OAxHAmZ,GAASM,SAAW,SAAS3G,EAAY9qC,GAExC,IAAKxd,GAAGsvD,SAEP,WADAtvD,IAAGskD,IAAI,mDAIR,IAAItkD,GAAGi/C,IAAIuP,SAASlG,KAAgB3+C,OAAO6T,GAAUkR,GAAG,IAAM1uB,GAAG0sD,UAAUtC,IAAIE,KAC9EtqD,GAAGi/C,IAAIn7C,KACNwkD,EACAtoD,GAAG0sD,UAAUf,QAAQG,IACrB,kBAECxD,EAGA3+C,OAAO6T,GAAUA,eAGb,CAEN,GAAIkV,GAAY/oB,OAAO6T,EACvBkV,GAAU9iB,KAAK,MAAQ5P,GAAG0sD,UAAUtC,IAAIO,MAAMj6B,SAC9CgC,EAAUoU,YAAY9mC,GAAG0sD,UAAUtC,IAAIQ,gBAInCl4B,EAAU9mB,KAAK5L,GAAG0sD,UAAUtC,IAAIQ,iBACnCl4B,EAAUxgB,KAAKpK,SAAW,aAW7B6mD,EAASv5C,KAAO,SAAS46C,GACxBtB,EAAmBsB,EAGnBtB,EAAiB/E,GAAKhgD,OAAOyD,QAAO,KAAUpN,GAAGkpD,gBAAgBS,GAAI+E,EAAiB/E,SAYvFgF,EAASgB,SAAW,SAASrH,EAAY9qC,EAAUyyC,GAElD,IAAKjwD,GAAGsvD,SAEP,WADAtvD,IAAGskD,IAAI,mDAIR,IAAItkD,GAAGi/C,IAAIuP,SAASlG,IAAe3+C,OAAO6T,GAAUkR,GAAG,IAAM1uB,GAAG0sD,UAAUtC,IAAIE,KAC7EtqD,GAAGi/C,IAAIn7C,KACNwkD,EACAtoD,GAAG0sD,UAAUf,QAAQG,IACrB,kBAECxD,EAGA3+C,OAAO6T,GAAUA,SACjByyC,QAGI,CAEFA,IAAgBvB,EAAiB/E,GAAGC,KAAKE,aAC5C9pD,GAAGskD,IAAI,4GAGR,IAAI5xB,GAAY/oB,OAAO6T,GAAUipB,SAASzmC,GAAG0sD,UAAUtC,IAAIQ,gBACvDsF,EAAOvmD,OAAO,SAChBkM,OAAO,QACP3Q,MAAM,QACNuhC,SAASzmC,GAAG0sD,UAAUtC,IAAIO,KAGvB+D,GAAiB/E,GAAGC,KAAKG,YAC7BmG,EAAKh+C,KACJi+C,mBAAmBzB,EAAiB/E,GAAGC,KAAKC,gBAC5CuG,mBAAsB1B,EAAiB/E,GAAGC,KAAKE,YAAe,OAAS4E,EAAiB/E,GAAGC,KAAKE,YAAc,IAAO,GACrHuG,sBAAsB,UACtBC,oBAAoB,YACpBt+C,QAAU,QACV2sB,KAAO,EACP4xB,aAAa,GACbjvB,QAAU,EACVx5B,SAAW,WACXmhB,IAAM,EACNunC,UAAU9B,EAAiB/E,GAAGC,KAAK3oB,OAEnCj6B,OAAS,iBAAuD,IAAnC0nD,EAAiB/E,GAAGC,KAAK9zC,QAAiB,IACvEA,QAAU44C,EAAiB/E,GAAGC,KAAK9zC,UAKH,WAA9B4c,EAAUxgB,IAAI,cACjBwgB,EAAUxgB,KAAKpK,SAAW,aAG1B4qB,EAAU9mB,KAAK5L,GAAG0sD,UAAUtC,IAAIQ,gBAAgB,IAIjDl4B,EAAUqK,OAAOmzB,KAIZvB,MAOR3uD,GAAGoN,OAAO,GAAI,WAEb,GAAIy/C,UACA4D,SAAU,EACVC,mBAAoB,EACpBC,kBAAoB3wD,GAAGwnD,YAAYN,eACnC0J,mBAWAC,gBAAkB,SAASpL,EAAWnoB,GAEzC,GAAIlb,GAAUquC,QAAQtH,gBAAkB,SAAS1D,EAAWnoB,GAC1D,MAAO3zB,QAAO2zB,GAAMxrB,SAAS,SAE3Bg/C,EAAe1uC,EAAQqjC,EAAWnoB,EAEtC,OAAQmzB,SAAQtH,iBAAmB2H,MAClC9wD,IAAGskD,IAAI,0FAKP36C,OAAOmnD,GAAcrqB,SAASzmC,GAAG0sD,UAAUtC,IAAIE,KACxCwG,EAAa9oD,IAAI,KAYtB+oD,WAAa,SAAStL,EAAWnoB,GAUpC,MAPAA,GAAO0zB,WAAWrnD,OAAO2zB,GAAMmJ,SAASzmC,GAAG0sD,UAAUtC,IAAIG,cAAgB,IAAM9E,EAAUK,QAGrF2K,QAAQpL,YACX/nB,EAAOmzB,QAAQpL,UAAUI,EAAWnoB,IAG9B0zB,WAAW1zB,IAYf2zB,iBAAmB,SAASxL,GAC/B,GAAIrjC,GAAUquC,QAAQrH,iBAAmBz/C,OAAOwD,IAChD,OAAOiV,GAAQqjC,IAYZyL,qBAAuB,SAASzL,EAAW0L,GAC9C,GAAI/uC,GAAUquC,QAAQlL,qBAAuB57C,OAAOwD,IACpD,OAAOiV,GAAQqjC,EAAW0L,IAWvBC,iBAAmB,SAAS3L,GAmB/B,MAhBAA,GAAY97C,OAAOyD,QAAO,KAAUq4C,GAGpCA,EAAU6C,WAAa7C,EAAU6C,YAActoD,GAAGkN,OAGlDu4C,EAAUoD,MAAQpD,EAAUoD,UACvB7oD,GAAGsK,QAAQtK,GAAG0sD,UAAUT,MAAMI,KAAM5G,EAAUoD,QAClDpD,EAAUoD,MAAMjiD,KAAK5G,GAAG0sD,UAAUT,MAAMI,MAIrCrsD,GAAGkpD,gBAAgBI,SACtB7D,EAAU+C,gBAAkBxoD,GAAGkpD,gBAAgBI,QAGzC7D,GAUJ4L,yBAA2B,SAAStoC,GACvC,GAAI08B,EAEJ,IAAI18B,EAAM,CACT,GAAI+8B,GAAQ/8B,EAAK9c,aAAa,iBAC1By8C,EAAc3/B,EAAK9c,aAAa,sBAEpC,IAAI65C,GAAS4C,EAAa,CACzBjD,GACCK,MAAOA,EACPuC,oBAAqBt/B,EAAKuoC,aAAa,+BACvC/I,SAAUx/B,EAAKuoC,aAAa,oBAC5B5I,YAAaA,EACbnnD,KAAMwnB,EAIP,IAAIwoC,GAAcxoC,EAAK9c,aAAa,kBAEpC,IAAIslD,EACH,IACC9L,EAAUtlD,QAAUH,GAAGoB,MAAMmwD,GAE9B,MAAOnlD,GACNupC,QAAQ6b,KAAK,kDAAmD,IAAMplD,EAAI,OAM9E,MAAOq5C,IAUJgM,sBAAwB,SAAS1oC,GACpC,GAAI2oC,IAAW,CAEf,IAAI3oC,EAAK4oC,gBACR,IAAK,GAAIxnD,GAAI,EAAGsU,EAAMsK,EAAKha,WAAWzN,OAAYmd,EAAJtU,EAASA,IACtD,GAAoC,IAAhC4e,EAAKha,WAAW5E,GAAG1B,SAAgB,CACtCipD,GAAW,CACX,OAKH,MAAOA,IASJE,wBAA0B,SAAS5B,GAEjCA,EAAgBzG,qBACpByG,EAAgBzG,mBAAqBvpD,GAAGkpD,gBAAgBK,oBAGrDyG,EAAgB3G,aAAc,IACjC2G,EAAgB3G,UAAYrpD,GAAGkpD,gBAAgBG,WAG5C2G,EAAgB1G,QAA2C,gBAA1B0G,GAAgB1G,SACpDtpD,GAAGkpD,gBAAgBI,OAAS0G,EAAgB1G,SAS1CuI,eAAiB,SAASpM,GAE7B97C,OAAO87C,EAAUlkD,MAAM84B,GAAG,QAAS,IAAMr6B,GAAG0sD,UAAUtC,IAAIM,iBAAmB,IAAM1qD,GAAG0sD,UAAUT,MAAMC,eAAiB,IAAK,SAAS3gD,GAEpIA,EAAMsrB,gBAEN,IAAIi7B,GAAOnoD,OAAOhG,MAAMkM,KAAK7P,GAAG0sD,UAAUT,MAAMC,gBAAgBlgD,aAG5D8lD,IAAQ9xD,GAAG0sD,UAAUT,MAAMK,OAC9BtsD,GAAG+xD,UAAUtM,EAAU6C,YAGvB7C,EAAUmD,GAAGqD,MAAMz3B,OAAOs9B,MAUzBE,qBAAuB,WAE1B,GAAIC,GACAC,EAAgB,WACnBlyD,GAAG6qD,OAAO5U,KAAKj2C,GAAG0sD,UAAU7B,OAAOO,wBAGpCzhD,QAAOjB,QAAQ2xB,GAAG,SAAU,WAC3BgK,aAAa4tB,GACbA,EAAgB38C,WAAW48C,EAAe,OAI3ClyD,GAAG6qD,OAAOxwB,GAAGr6B,GAAG0sD,UAAU7B,OAAOQ,wBAAwB,SAASz/C,GAC7DA,EAAK09C,QAAgC,gBAAf19C,GAAK09C,SAC9BtpD,GAAGkpD,gBAAgBI,OAAS19C,EAAK09C,WAYhC6I,sBAAwB,SAASppC,GACpC,MACC/oB,IAAGgkD,gBAAgBj7B,KAClB0oC,sBAAsB1oC,MACrBA,EAAK9c,aAAa,oBAClB8c,EAAK9c,aAAa,wBAUlBmmD,QAAU,WACb,QAAS3B,SASN4B,mBAAqB,SAAS5M,EAAW0C,GAE5C1C,EAAUmD,GAAK,GAAI5oD,IAAG2pD,GAAGlE,GAGQ55C,SAA7B7L,GAAGyjD,KAAKgC,EAAUK,SACmB,kBAA7B9lD,IAAGyjD,KAAKgC,EAAUK,OAG5BxwC,WAAW,WACVu3C,MAAMpH,EAAU6C,YAAYzC,IAAM,GAAI7lD,IAAGyjD,KAAKgC,EAAUK,OAAOL,EAAW0C,EAAY1C,EAAUlkD,MAChDsK,SAA5CghD,MAAMpH,EAAU6C,YAAYzC,IAAU,MACzCgH,MAAMpH,EAAU6C,YAAYzC,IAAIzwC,QAE/B,GAIHpV,GAAGskD,IAAI,4DAA8DmB,EAAUK,MAAQ,OAatFwM,UAAY,SAAStI,WAAY0D,aAIpC,GAHA1D,cAAgBx8C,OAAOw8C,YAGE,GAArBA,WAAW1oD,QAAe0oD,WAAW,GAAGzB,WAAakI,QAAQjH,gBAEhE,WADA+I,gBAAevI,WAAW,GAAI0D,YAK/B,IAAI1D,WAAW1oD,QAAUosD,YAAY3E,KAAKznD,OAEzC,WADAtB,IAAGskD,IAAI,mFAAoFoJ,YAI5F,IAAI8E,sBAAuB,WAC1B,MAAO7oD,QAAO,eAAe8D,IAAI,SAAStD,EAAGsE,GAC5C,MAAOA,GAAI6B,OAITmiD,oBAAsB,WACzB,MAAO9oD,QAAO,cAAc8D,IAAI,SAAStD,EAAGsE,GAC3C,MAAOA,GAAIke,QAKT+lC,YAAc,SAASv+C,EAAQw+C,GAElC,GAAIC,GAAiBH,qBAMrB,IALAt+C,EAASxK,OAAOM,KAAKkK,EAAQ,SAASm1B,GACrC,MAAOA,IAA+C,KAAxC3/B,OAAOW,QAAQg/B,EAAKspB,KAI/BnC,QAAQtG,WACX,MAAOsG,SAAQtG,WAAWh2C,EAAQw+C,EAInC,IAAIE,GAAiB,KACpBC,IAAwB1pD,SAAS2pD,gBAElCppD,QAAOkB,KAAKsJ,EAAQ,SAAShK,EAAG6oD,GAC3BF,EACH1pD,SAAS2pD,iBAAiBC,IAG1BH,EAAiBA,MACjBA,EAAejsD,KAAK,gDAAkDosD,EAAc,UAIlFH,GACHlpD,OAAO,QAAQozB,OAAO81B,EAAehsD,KAAK,KAG3C8rD,KAKGM,aAAe,SAASx2B,EAASk2B,GAEpC,GAAIO,GAAkBV,sBAMtB,IALA/1B,EAAU9yB,OAAOM,KAAKwyB,EAAS,SAAS6M,GACvC,MAAOA,IAAgD,KAAzC3/B,OAAOW,QAAQg/B,EAAK4pB,KAI/BzC,QAAQxG,YACX,MAAOwG,SAAQxG,YAAYxtB,EAASk2B,EAGrC,KAAKl2B,EAAQn7B,OACZ,MAAOqxD,IAGR,IAAI/gD,GAAMlJ,OAAOU,SACb+pD,EAAc12B,EAAQn7B,OACtB8xD,EAAgB,EAGhBvlB,EAAOj8B,IAAQA,EAAU,MAAKA,EAAIhD,qBAAqB,QAAQ,IAG/DykD,EAAiBxlB,GAAQA,EAAKj/B,qBAAqB,QAAQ,IAAM,KAEjE0kD,EAAc,oBAAsB5qD,YAAgB6qD,QAAU,EAAM35C,UAAY,GAGhF45C,EAAS,SAASpnD,GACrBkJ,WAAW,WACV,GAAIm+C,IACHnjD,IAAKlE,EAAE0O,OAAOxK,IACdw1C,MAAOkE,WAAW,GAAGlE,MAItB9lD,IAAGskD,IAAI,sBAAyBmP,EAAQ3N,MAAQ,qBAAyB2N,EAAQnjD,IAAM,KAGvFtQ,GAAG6qD,OAAO5U,KAAKj2C,GAAG0sD,UAAU7B,OAAOS,wBAAyBmI,GAEvD/C,kBAIJ1wD,GAAGwnD,YAAYL,UACdwJ,kBACA3wD,GAAG0sD,UAAUlF,YAAYS,uBACzB+B,WAAW,GACXyJ,EAAQnjD,KAPT4gD,qBAAqBlH,WAAW,GAAIyJ,EAAQnjD,MAU3CmgD,QAAQlH,qBAGRmK,EAAiB,aAEdN,IAAkBD,GAEvBR,KAIEgB,EAAiB,SAASC,EAAaC,GAC1C,GAAI7R,GACH8R,EAAWlD,gBAAgBgD,EAE5B,IAAKE,EAAL,CAIA,IAAK,GAAI3pD,GAAE,EAAGA,EAAE2pD,EAASxyD,OAAQ6I,IAChC63C,EAAU8R,EAAU3pD,GAEhB0pD,EACH7R,EAAQxlC,MAAMq3C,GAEd7R,EAAQxX,SAIVomB,iBAAgBgD,GAAe,MAIhCjqD,QAAOkB,KAAK4xB,EAAS,SAAStyB,EAAGiC,GAChC,GAAIuhC,GAAS/7B,EAAIrD,cAAc,UAC9BykD,EAAc5mD,EACdwnD,EAAcZ,EAAYhnD,aAG3B,OAAI4kD,iBAAgBgD,OACnBhD,iBAAgBgD,GAAahtD,MAC5B4jC,QAASkpB,EACTl3C,MAAOg3C,KAMT5C,gBAAgBgD,MAGZnD,QAAQpH,YACX2J,GAAe,iBAAkB,GAAI9xD,OAAO6yD,WAK7CpmB,EAAOrF,OAAQ,EACfqF,EAAOjkC,KAAO,kBACdikC,EAAOI,QAAU,QAEjBJ,EAAOqmB,QAAU,SAAS5nD,GACzBonD,EAAOpnD,GACPunD,EAAeC,EAAaxnD,IAI7BuhC,EAAOK,OAASL,EAAOF,mBAAqB,SAASrhC,GACpDA,EAAIA,GAAK1D,OAAO6C,OAMF,QAAVa,EAAE1C,MAAkB4pD,EAAY3lB,EAAOniC,eAE1CmiC,EAAOK,OAASL,EAAOF,mBAAqBE,EAAOqmB,QAAU,GAE7DN,IAEAC,EAAeC,GAEfjmB,EAAS,OAKXA,EAAOr9B,IAAM0iD,MAGbnlB,GAAK3Q,aAAayQ,EAAQ0lB,OAIxBY,mBAAqB,SAAS/J,QAASyI,IAE1C,GAAIlC,QAAQyD,kBACXzD,QAAQyD,kBAAkBhK,QAASyI,QAE/B,CACJ,IAAK,GAAIxoD,GAAI,EAAGsU,IAAMyrC,QAAQ5oD,OAAYmd,IAAJtU,EAASA,IAC9C,IACCgqD,KAAKjK,QAAQ//C,IAEd,MAAOhJ,WACNnB,GAAGskD,IAAI,gCAAkCnjD,UAAY,OAAS+oD,QAAQ//C,IAGtEnK,GAAG6qD,OAAO5U,KAAK,2BAA6B6P,MAAMkE,WAAW,GAAGlE,MAAOx1C,IAAK45C,QAAQ//C,GAAI8D,IAAK9M,YAExFuvD,kBAIJ1wD,GAAGwnD,YAAYL,UACdwJ,kBACA3wD,GAAG0sD,UAAUlF,YAAYS,uBACzB+B,WAAW,GACX7oD,WAPD+vD,qBAAqBlH,WAAW,GAAI7oD,WAYvCwxD,OAKEyB,kBAAoB,SAAS1tD,GAChC,GAAIA,EACH,KAAOA,EAAQyK,YAGd,GAFAzK,EAAUA,EAAQyK,WAEdzK,IAAY0C,SACf,OAAO,CAKV,QAAO,GAIJirD,UAAY,SAAStL,GACxBp/C,OAAOkB,KAAKk+C,EAAM,SAAS5+C,EAAGlJ,GAC7B,GAAIkxD,sBAAsBnI,WAAW7/C,GAAG5I,MACvCoI,OAAOqgD,WAAW7/C,GAAG5I,MACnBklC,SAASzmC,GAAG0sD,UAAUtC,IAAIE,KAC1BvtB,OAAOpzB,OAAO1I,EAAEq8B,MAAMmJ,SAASzmC,GAAG0sD,UAAUtC,IAAIG,cAAgB,IAAMP,WAAW7/C,GAAG27C,YAElF,IAAK4K,kBAIL,CACJ1wD,GAAGwnD,YAAYL,UACdwJ,kBACA3wD,GAAG0sD,UAAUlF,YAAYI,WACzBoC,WAAW7/C,GACX6mD,WAAWrnD,OAAO1I,EAAEq8B,MAAMmJ,SAASzmC,GAAG0sD,UAAUtC,IAAIG,cAAgB,IAAMP,WAAW7/C,GAAG27C,QAGzF,IAAIA,GAAQkE,WAAW7/C,GAAG27C,MACzBvkD,EAAOyoD,WAAW7/C,GAAG5I,IAEtB,KAAKA,EACJ,KAAO,YAAcukD,EAAQ,yJAG9B,KAAKsO,kBAAkB7yD,GACtB,KAAO,gBAAkBukD,EAAQ,oHASlC,IANA9lD,GAAGwnD,YAAYL,UACdwJ,kBACA3wD,GAAG0sD,UAAUlF,YAAYK,iBACzBmC,WAAW7/C,KAGPnK,GAAGgkD,gBAAgBziD,GACvB,KAAO,gBAAkBukD,EAAQ,8HA5BlCkE,YAAW7/C,GAAG5I,KAAOsvD,gBAAgB7G,WAAW7/C,GAAI4mD,WAAW/G,WAAW7/C,GAAIlJ,EAAEq8B,MAiCjFu0B,gBAAe7H,WAAW7/C,OAKxBsyB,QAAUixB,YAAYjxB,YACtBtoB,OAASu5C,YAAYv5C,WACrB+1C,QAAUwD,YAAY1E,kBACtBD,KAAO2E,YAAY3E,QAGvB2J,aAAYv+C,OAAQ,WAEnBkgD,UAAUtL,MAEVkK,aAAax2B,QAAS,WAEjButB,WAAW,IAAKhqD,GAAG6qD,OAAO5U,KAAK,sBAAwB6P,MAAMkE,WAAW,GAAGlE,MAAOrpB,QAAQA,UAE9Fw3B,mBAAmB/J,QAAS,WAE3BvgD,OAAOkB,KAAKm/C,WAAY,SAAS7/C,EAAGlJ,GACnCoxD,mBAAmBpxD,EAAGysD,YAAY3E,KAAK5+C,aAexCooD,eAAiB,SAAS9M,EAAWiI,GAGxC,GAAI+C,QAAQhH,kBAAmB,CAC9B,GAAI0I,sBAAsB1M,EAAUlkD,MACnCoI,OAAO87C,EAAUlkD,MACfklC,SAASzmC,GAAG0sD,UAAUtC,IAAIE,KAC1BvtB,OAAOpzB,OAAO,eAAe88B,SAASzmC,GAAG0sD,UAAUtC,IAAIG,cAAgB,IAAM9E,EAAUK,YAErF,IAAK4K,kBAIL,CACJ,GAAI/K,GAAQh8C,OAAO87C,EAAUlkD,KAS7B,IAPAvB,GAAGwnD,YAAYL,UACdwJ,kBACA3wD,GAAG0sD,UAAUlF,YAAYI,WACzBnC,EACAuL,WAAWrnD,OAAO+jD,EAAYpwB,MAAMmJ,SAASzmC,GAAG0sD,UAAUtC,IAAIG,cAAgB,IAAM9E,EAAUK,SAGpD,IAAvCH,EAAMl2B,QAAQ,cAAcnuB,OAC/B,KAAM,iIASP,IANAtB,GAAGwnD,YAAYL,UACdwJ,kBACA3wD,GAAG0sD,UAAUlF,YAAYK,iBACzBpC,IAGIA,EAAUlkD,KACd,KAAM,mKAGP,KAAKvB,GAAGgkD,gBAAgByB,EAAUlkD,MACjC,KAAM,uIA3BPkkD,GAAUlkD,KAAOsvD,gBAAgBpL,EAAWsL,WAAWtL,EAAW,eAgCnEA,GAAUmD,GAAK,GAAI5oD,IAAG2pD,GAAGlE,GAEzBoM,eAAepM,GAEfzlD,GAAGi/C,IAAIwP,SAAShJ,EAAWiI,OAG3B1tD,IAAGskD,IAAI,yFAIL0M,WAAa,SAAS1zB,GACzB,MAAO3zB,QAAO,eAAeozB,OAAOO,GAAMA,QAUvCg3B,aAAe,SAAS7O,GAG3B,MAAKA,GAAUK,MAILL,EAAUlkD,MAASkkD,EAAUiD,aAKhC,GAJN1oD,GAAGskD,IAAI,0CACA,IALPtkD,GAAGskD,IAAI,oCACA,IAgBLiQ,yBAA2B,WAE9B,GAAI9D,SACCA,QAAQxjB,IAAK,CAChB,GAA6B,kBAAhBwjB,SAAQxjB,KAA6C,gBAAhBwjB,SAAQxjB,IACzD,KAAM,uDAEP,IAAIwjB,QAAQxjB,IAAI/yB,UAA4C,kBAAzBu2C,SAAQxjB,IAAI/yB,SAC9C,KAAM,mDAEP,IAAIu2C,QAAQxjB,IAAIvjC,MAAoC,kBAArB+mD,SAAQxjB,IAAIvjC,KAC1C,KAAM,+CAEP,IAAI+mD,QAAQxjB,IAAI3D,KAAkC,kBAApBmnB,SAAQxjB,IAAI3D,IACzC,KAAM,+CAKT,OAAO,EAGR,QAMCkrB,kBAAmB,WAClB,MAAKpC,WAKEzoD,OAAO8D,IAAIo/C,MAAO,SAAShH,GACjC,OACCC,MAAOD,EAAIxL,OAAOyL,aANnB9lD,IAAGskD,IAAI,2DAeTmQ,mBAAoB,WACnB,MAAKrC,WAKEpyD,GAAGkpD,gBAAgBI,WAJzBtpD,IAAGskD,IAAI,4DAYTlvC,KAAM,SAASilC,GACdoW,QAAUpW,MAEVka,2BAEA3C,wBAAwBnB,SAIxBC,oBAAsBD,QAAQrH,iBAAoBqH,QAAQpL,WAAcoL,QAAQtH,gBAAmBsH,QAAQlL,sBAGnGkL,QAAQhH,mBAAqBgH,QAAQjH,kBAC5CxpD,GAAGi/C,IAAI7pC,KAASq7C,QAAQhH,kBAAoBgH,QAAQhH,mBAAoB,GAGzEzpD,GAAG2pD,GAAGv0C,KAAKq7C,SAENA,QAAQjH,iBACZwI,wBAQF1C,OAAQ8C,QAQRsC,iBAAkB,SAASvjD,GAE1B,GAAIrH,MACHkgD,KACAl5C,EAAM,SAAS1E,GACTA,GACLtC,EAASlD,KAAKwF,IAEfuoD,EAAS,SAAS7rC,GACjB,GAAKA,EACL,IAAK,GAAI3e,GAAI,EAAGsU,EAAMqK,EAAIxnB,OAAYmd,EAAJtU,EAASA,IAC1C2G,EAAIgY,EAAI3e,IAIX,IAAMgH,IAAenR,GAAGgkD,gBAAgB7yC,GACvC,KAAM,yCAMHA,IAAcA,EAAWmgD,aAAa,iBACzCxgD,EAAIK,IAKJA,EAAaA,GAAc/H,SACvB+H,EAAWrC,kBACd6lD,EAAOxjD,EAAWrC,iBAAiB,oBAIrC,KAAK,GAAI3E,GAAI,EAAGsU,EAAM3U,EAASxI,OAAYmd,EAAJtU,EAASA,IAAK,CACpD,GAAIs7C,GAAY4L,yBAAyBvnD,EAASK,GAClD6/C,GAAWpjD,KAAK6+C,GAGbuE,EAAW1oD,QACdtB,GAAGwtD,aAAaxD,IA4GlBwD,aAAc,SAASxD,EAAY4K,GAElC,IAAKxC,UAEJ,WADApyD,IAAGskD,IAAI,oDAGH,KAAK0F,EAET,WADAhqD,IAAGskD,IAAI,uEAIR,IAAIuQ,MACAC,KACAC,KACAC,GAAgB,CAMpB,OALAhL,MAAgBx8C,OAAOw8C,GACvB4K,KAAkBpnD,OAAOonD,OACzBI,IAAmBJ,EAAatzD,OAG3B0oD,EAAW1oD,OAKP0oD,EAAW1oD,QAAU0zD,GAAiBhL,EAAW1oD,QAAUszD,EAAatzD,WAChFtB,IAAGskD,IAAI,qEAMR36C,OAAOkB,KAAKm/C,EAAY,SAAS7/C,EAAGlJ,GAUnC,GARAA,EAAImwD,iBAAiBnwD,GAIrBA,EAAEM,KAAON,EAAEM,MAAQ,KAId+yD,aAAarzD,GAAlB,CAWA,GANA4rD,MAAM5rD,EAAEqnD,aACPjO,OAAQp5C,GAKLA,EAAEM,OAAS4wD,sBAAsBlxD,EAAEM,MAAO,CAC7C,IAAMN,EAAEM,MAA0B,gBAAXN,GAAM,OAAmBjB,GAAGgkD,gBAAgB/iD,EAAEM,MAGpE,KAFAvB,IAAGskD,IAAI,uEACPtkD,GAAGskD,IAAI,sBAAuBrjD,GACxB,iJAEF,IAA6B,GAAzB0I,OAAO1I,EAAEM,MAAMD,OAIvB,KAHAtB,IAAGskD,IAAI,mDACPtkD,GAAGskD,IAAI,sBAAuBrjD,GAC9BjB,GAAGskD,IAAI,gCAAiC36C,OAAO1I,EAAEM,MAAMD,QACjD,0GAcP,OAVA+wD,oBAAmBpxD,GAClBg0D,WAAW,EACX5qB,OAAQrqC,GAAG0sD,UAAUlB,UAAUE,cAIhCmG,gBAAe5wD,GAOXkxD,sBAAsBlxD,EAAEM,QACvBmvD,mBAKJ1wD,GAAGwnD,YAAYL,UACdwJ,kBACA3wD,GAAG0sD,UAAUlF,YAAYE,gBACzBzmD,GAGDjB,GAAGwnD,YAAYL,UACdwJ,kBACA3wD,GAAG0sD,UAAUlF,YAAYG,kBACzB1mD,IAZDA,EAAEM,KAAO0vD,iBAAiBhwD,IAkBxB+zD,EACH1C,UAAUrxD,EAAG2zD,EAAazqD,IAItBlJ,EAAEonD,sBAAwBpnD,EAAEsnD,UAC/BuM,EAAQ7zD,EAAEynD,YAAY18C,eAAiB8oD,EAAQ7zD,EAAEynD,YAAY18C,mBAC7D8oD,EAAQ7zD,EAAEynD,YAAY18C,eAAepF,KAAK3F,IAG1C4zD,EAASjuD,MACRmiD,MAAO9nD,GACPqoC,IAAKroC,EAAEynD,sBAONsM,IAEJrrD,OAAOkB,KAAKiqD,EAAS,SAAS3qD,EAAGoY,GAChCsyC,EAASjuD,MACR0iC,IAAKn/B,EACL4+C,KAAMxmC,MAUR5Y,OAAOkB,KAAKgqD,EAAU,SAAS1qD,EAAG+qD,GAEjC,GAAI9mB,GAAgBpuC,GAAG0sD,UAAUnB,eAAiB2J,EAAInM,KAAK,GAAGjD,KAG9DiP,GAAc3mB,GAAiB2mB,EAAc3mB,OAC7C2mB,EAAc3mB,GAAexnC,KAAKsuD,KAMnCvrD,OAAOkB,KAAKkqD,EAAe,SAAS5qD,EAAGgrD,GAEtC,GAAIC,GAAkB,SAAShnB,EAAe8mB,GAC7C,GAAKA,EAAL,CAKA,GAAI5rB,GAAM4rB,EAAI5rB,IACb5/B,EAAO,MACPwQ,EAAW,QACXm7C,EAAe,WACdD,EAAgBjrD,EAAGgrD,EAASruD,QAE7BwuD,EAAY,WACX3rD,OAAOkB,KAAKqqD,EAAInM,KAAM,SAAS78B,EAAKqpC,GACnCA,EAAKl1D,KAAOk1D,EAAKl1D,MAAQk1D,EAAKzP,MAC9B9lD,GAAGskD,IAAI,kBAAoBiR,EAAKl1D,KAAO,OAAQk1D,GAC/Cv1D,GAAGwnD,YAAYL,UACbwJ,kBACA3wD,GAAG0sD,UAAUlF,YAAYC,0BACzB8N,GAEFv1D,GAAG+xD,UAAUwD,EAAKjN,eAGpBkN,EAAc,SAAS9H,GACtB4E,UAAU4C,EAAInM,KAAM2E,GAItB,IAAI+C,QAAQxjB,KAAOwjB,QAAQxjB,IAAI/yB,WAC9BA,EAAWu2C,QAAQxjB,IAAI/yB,SAASg7C,EAAI5rB,IAAK4rB,EAAInM,MACrB,gBAAb7uC,IACV,KAAM,qDAGR,IAAIu2C,QAAQxjB,KAAOwjB,QAAQxjB,IAAIvjC,OAC9BA,EAAO+mD,QAAQxjB,IAAIvjC,KAAKwrD,EAAI5rB,IAAK4rB,EAAInM,MACjB,gBAATr/C,IACV,KAAM,iDAGR,IAAI+mD,QAAQxjB,KAAOwjB,QAAQxjB,IAAI3D,MAC9BA,EAAMmnB,QAAQxjB,IAAI3D,IAAI4rB,EAAI5rB,IAAK4rB,EAAInM,MAChB,gBAARzf,IACV,KAAM,gDAKR,IAAImsB,GAAchF,QAAQxjB,GACC,mBAAhBwoB,KACVA,EAAc,SAASnsB,EAAK0gB,EAAY0L,EAAiBC,EAAeC,GACvEjsD,OAAOygC,MACNd,IAAKA,EACL5/B,KAAMA,EACNkC,MACCijC,OAAQ7uC,GAAGU,UAAUw0D,EAAInM,KAAM/oD,GAAGwjD,oBAEnCrV,OAAO,EACPC,cAAeA,EACfl0B,SAAUA,EACVswB,QAASkrB,EACTl5C,MAAO,SAASq5C,EAAO5rB,EAAU9oC,GAChCnB,GAAGskD,IAAI,wBAAyBnjD,EAAUc,WAAYizD,EAAInM,MAC1D4M,KAED/7C,SAAUg8C,MAKbH,EAAYnsB,EAAK4rB,EAAInM,KAAMyM,EAAaF,EAAWD,IAGpDD,GAAgBjrD,EAAGgrD,EAASruD,gBA1M7B9G,IAAGskD,IAAI,yEAkNTwR,cAAe,WAEd,MAAK1D,eAKLzoD,QAAOkB,KAAKgiD,MAAO,SAAS1iD,EAAGlJ,GAC9BjB,GAAG+xD,UAAU9wD,EAAEo5C,OAAOiO,kBALtBtoD,IAAGskD,IAAI,uDAaTyN,UAAW,SAASzJ,GAEnB,MAAK8J,gBAKDvF,MAAMvE,KACTtoD,GAAGwnD,YAAYL,UACdwJ,kBACA3wD,GAAG0sD,UAAUlF,YAAYM,mBACzB+E,MAAMvE,IAGPtoD,GAAGwnD,YAAYL,UACdwJ,kBACA3wD,GAAG0sD,UAAUlF,YAAYO,YACzB8E,MAAMvE,IAGPtoD,GAAGwnD,YAAYL,UACdwJ,kBACA3wD,GAAG0sD,UAAUlF,YAAYQ,kBACzB6E,MAAMvE,UAGAuE,OAAMvE,SAvBbtoD,IAAGskD,IAAI,wDA6BV36C,OAAO,WACN,GAAIosD,MACHjlD,EAAM,SAAS1E,GACTA,GACL2pD,EAAYnvD,KAAKwF,IAElBuoD,EAAS,SAAS7rC,GACjB,GAAKA,EACL,IAAK,GAAI3e,GAAI,EAAGsU,EAAMqK,EAAIxnB,OAAYmd,EAAJtU,EAASA,IAC1C2G,EAAIgY,EAAI3e,IAcX,IATA2G,EAAI1H,SAAS0X,eAAe,gBAGxB1X,SAAS0F,mBACZ6lD,EAAOvrD,SAAS0F,iBAAiB,uBACjC6lD,EAAOvrD,SAAS0F,iBAAiB,kBAI9BinD,EAAYz0D,OAAQ,CACvBtB,GAAGoV,MACH,KAAK,GAAIjL,GAAI,EAAGsU,EAAMs3C,EAAYz0D,OAAYmd,EAAJtU,EAASA,IAClDnK,GAAG00D,iBAAiBqB,EAAY5rD,OAKnCpK,QAAQC,GAAKA,GAES,mBAAXqI,SAA0BA,OAAOC,KAE3CD,OAAO,WACN,MAAOrI,QAKY,mBAAZD,SAA0BA,QAAU2I"} \ No newline at end of file diff --git a/dist/f2.no-third-party.js b/dist/f2.no-third-party.js index 89bafa0d..d95480c0 100644 --- a/dist/f2.no-third-party.js +++ b/dist/f2.no-third-party.js @@ -5,7 +5,7 @@ } /*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -416,6 +416,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -801,6 +802,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the @@ -3835,6 +3856,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/docs/dist/extending-f2.html b/docs/dist/extending-f2.html index 2f63b610..7a7eb54c 100644 --- a/docs/dist/extending-f2.html +++ b/docs/dist/extending-f2.html @@ -165,7 +165,7 @@
    diff --git a/docs/dist/f2js-sdk.html b/docs/dist/f2js-sdk.html index aef303f0..35d52f13 100644 --- a/docs/dist/f2js-sdk.html +++ b/docs/dist/f2js-sdk.html @@ -187,7 +187,7 @@

    There is a page on the wiki tracking deprecated features in F2. Starting with version 1.2, three ContainerConfig properties have been retired. As F2 features and/or F2.js APIs are deprecated, we will attempt to give reasonable advance notice via any or all of the F2 communication channels. In addition, we will strive to ensure that backward compatibility will be maintained for at least one major version of F2. For example, if Feature X is deprecated in version 1.3, we will attempt to maintain backward compatibility until the next major release (version 2.0). F2 documentation will be updated accordingly to reflect any changes, and the conversation behind deprecated features will be publicly available on GitHub.

    F2 uses third party libraries inside F2.js (see Framework: Choices). These open-source libraries are all on their own release schedules. We cannot guarantee that we will always stay abreast and in tune with such latest releases, but in an effort to improve the F2 framework, we will attempt to update F2.js so that it uses the latest, most stable and most secure version of the third party software. These updates to F2 will be made through the normal release process on GitHub and comments will be open.

    -

    Have a question? Ask it on the F2 Google Group (or send an email to OpenF2@googlegroups.com) or start a discussion using Issues on GitHub.

    +

    Have a question? Ask it on the F2 Google Group (or send an email to OpenF2@googlegroups.com) or start a discussion using Issues on GitHub.

    To track bugs, enhancements or other issues, F2 is using Issues on GitHub.


    F2 is licensed under the Apache License version 2.0. Details are available in the project readme.

    diff --git a/docs/dist/sdk/classes/F2.AppHandlers.html b/docs/dist/sdk/classes/F2.AppHandlers.html index 0d634d44..1513e18a 100644 --- a/docs/dist/sdk/classes/F2.AppHandlers.html +++ b/docs/dist/sdk/classes/F2.AppHandlers.html @@ -508,7 +508,7 @@

    - sdk\src\app_handlers.js:205 + sdk\src\app_handlers.js:206

    @@ -585,7 +585,7 @@

    - sdk\src\app_handlers.js:220 + sdk\src\app_handlers.js:221

    @@ -680,7 +680,7 @@

    - sdk\src\app_handlers.js:191 + sdk\src\app_handlers.js:192

    @@ -755,7 +755,7 @@

    - sdk\src\app_handlers.js:373 + sdk\src\app_handlers.js:374

    @@ -886,7 +886,7 @@

    - sdk\src\app_handlers.js:288 + sdk\src\app_handlers.js:289

    @@ -1043,7 +1043,7 @@

    - sdk\src\app_handlers.js:313 + sdk\src\app_handlers.js:314

    diff --git a/docs/dist/sdk/classes/F2.Constants.AppHandlers.html b/docs/dist/sdk/classes/F2.Constants.AppHandlers.html index 91e20e91..4c4025b2 100644 --- a/docs/dist/sdk/classes/F2.Constants.AppHandlers.html +++ b/docs/dist/sdk/classes/F2.Constants.AppHandlers.html @@ -211,7 +211,7 @@

    F2.Constants.AppHandlers Class

    @@ -306,6 +306,19 @@

    Properties

    + + + APP_MANIFEST_REQUEST_FAIL + + static + + + +

    When bound using F2.AppHandlers.on() the listener function passed will receive the +following argument(s): ( appConfig )

    + + + APP_RENDER @@ -409,7 +422,7 @@

    - sdk\src\app_handlers.js:429 + sdk\src\app_handlers.js:450

    @@ -483,7 +496,7 @@

    - sdk\src\app_handlers.js:550 + sdk\src\app_handlers.js:571

    @@ -568,7 +581,7 @@

    - sdk\src\app_handlers.js:583 + sdk\src\app_handlers.js:604

    @@ -640,7 +653,7 @@

    - sdk\src\app_handlers.js:530 + sdk\src\app_handlers.js:551

    @@ -678,6 +691,78 @@

    Example:

    +
    + + + +
    +

    + APP_MANIFEST_REQUEST_FAIL + + String + + + + + + + final + + + + static + +

    + +
    + + + +

    + + Defined in + + + + + sdk\src\app_handlers.js:430 + +

    + + + + +
    + +
    +

    When bound using F2.AppHandlers.on() the listener function passed will receive the +following argument(s): ( appConfig )

    + +
    + + + + +
    +

    Example:

    + +
    +
    var _token = F2.AppHandlers.getToken();
    +F2.AppHandlers.on(
    +    _token,
    +    F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,
    +    function(appConfig)
    +    {
    +        You can use information from the appConfig to surface a custom error message in the dom
    +        Or display some kind of default error placeholder element rather than having a blank spot in the dom
    +    }
    +);
    + +
    +
    + + +
    @@ -712,7 +797,7 @@

    - sdk\src\app_handlers.js:471 + sdk\src\app_handlers.js:492

    @@ -803,7 +888,7 @@

    - sdk\src\app_handlers.js:510 + sdk\src\app_handlers.js:531

    @@ -875,7 +960,7 @@

    - sdk\src\app_handlers.js:451 + sdk\src\app_handlers.js:472

    @@ -947,7 +1032,7 @@

    - sdk\src\app_handlers.js:603 + sdk\src\app_handlers.js:624

    diff --git a/docs/dist/sdk/classes/F2.html b/docs/dist/sdk/classes/F2.html index 57191651..14bf4dc8 100644 --- a/docs/dist/sdk/classes/F2.html +++ b/docs/dist/sdk/classes/F2.html @@ -4659,7 +4659,7 @@

    - sdk\src\container.js:1202 + sdk\src\container.js:1207

    @@ -4724,7 +4724,7 @@

    - sdk\src\container.js:1217 + sdk\src\container.js:1222

    diff --git a/docs/dist/sdk/data.json b/docs/dist/sdk/data.json index bea13be5..8576e7fd 100644 --- a/docs/dist/sdk/data.json +++ b/docs/dist/sdk/data.json @@ -176,7 +176,7 @@ "module": "f2", "namespace": "", "file": "sdk\\src\\app_handlers.js", - "line": 422, + "line": 423, "description": "A convenient collection of all available appHandler events." }, "F2.App": { @@ -719,7 +719,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 191, + "line": 192, "description": "Allows Container Developer to retrieve a unique token which must be passed to\nall `on` and `off` methods. This function will self destruct and can only be called \none time. Container Developers must store the return value inside of a closure.", "itemtype": "method", "name": "getToken", @@ -728,7 +728,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 205, + "line": 206, "description": "Allows F2 to get a token internally. Token is required to call {{#crossLink \"F2.AppHandlers/\\_\\_trigger:method\"}}{{/crossLink}}.\nThis function will self destruct to eliminate other sources from using the {{#crossLink \"F2.AppHandlers/\\_\\_trigger:method\"}}{{/crossLink}}\nand additional internal methods.", "itemtype": "method", "name": "__f2GetToken", @@ -739,7 +739,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 220, + "line": 221, "description": "Allows F2 to trigger specific events internally.", "itemtype": "method", "name": "__trigger", @@ -763,7 +763,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 288, + "line": 289, "description": "Allows Container Developer to easily tell all apps to render in a specific location. Only valid for eventType `appRender`.", "itemtype": "method", "name": "on", @@ -794,7 +794,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 313, + "line": 314, "description": "Allows Container Developer to add listener method that will be triggered when a specific event occurs.", "itemtype": "method", "name": "on", @@ -825,7 +825,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 373, + "line": 374, "description": "Allows Container Developer to remove listener methods for specific events", "itemtype": "method", "name": "off", @@ -850,7 +850,22 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 429, + "line": 430, + "description": "When bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}} )", + "itemtype": "property", + "name": "APP_MANIFEST_REQUEST_FAIL", + "type": "string", + "static": 1, + "final": 1, + "example": [ + "\n\tvar _token = F2.AppHandlers.getToken();\n\tF2.AppHandlers.on(\n\t\t_token,\n\t\tF2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,\n\t\tfunction(appConfig)\n\t\t{\n\t\t\tYou can use information from the appConfig to surface a custom error message in the dom\n\t\t\tOr display some kind of default error placeholder element rather than having a blank spot in the dom\n\t\t}\n\t);" + ], + "class": "F2.Constants.AppHandlers", + "module": "f2" + }, + { + "file": "sdk\\src\\app_handlers.js", + "line": 450, "description": "Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}} )", "itemtype": "property", "name": "APP_CREATE_ROOT", @@ -865,7 +880,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 451, + "line": 472, "description": "Equivalent to `appRenderBefore`. Identifies the before app render method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}} )", "itemtype": "property", "name": "APP_RENDER_BEFORE", @@ -880,7 +895,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 471, + "line": 492, "description": "Equivalent to `appRender`. Identifies the app render method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}}, [appHtml](../../app-development.html#app-design) )", "itemtype": "property", "name": "APP_RENDER", @@ -895,7 +910,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 510, + "line": 531, "description": "Equivalent to `appRenderAfter`. Identifies the after app render method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}} )", "itemtype": "property", "name": "APP_RENDER_AFTER", @@ -910,7 +925,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 530, + "line": 551, "description": "Equivalent to `appDestroyBefore`. Identifies the before app destroy method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( appInstance )", "itemtype": "property", "name": "APP_DESTROY_BEFORE", @@ -925,7 +940,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 550, + "line": 571, "description": "Equivalent to `appDestroy`. Identifies the app destroy method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( appInstance )", "itemtype": "property", "name": "APP_DESTROY", @@ -940,7 +955,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 583, + "line": 604, "description": "Equivalent to `appDestroyAfter`. Identifies the after app destroy method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( appInstance )", "itemtype": "property", "name": "APP_DESTROY_AFTER", @@ -955,7 +970,7 @@ }, { "file": "sdk\\src\\app_handlers.js", - "line": 603, + "line": 624, "description": "Equivalent to `appScriptLoadFailed`. Identifies the app script load failed method for use in AppHandlers.on/off. \nWhen bound using {{#crossLink \"F2.AppHandlers/on\"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the \nfollowing argument(s): ( {{#crossLink \"F2.AppConfig\"}}appConfig{{/crossLink}}, scriptInfo )", "itemtype": "property", "name": "APP_SCRIPT_LOAD_FAILED", @@ -2361,7 +2376,7 @@ }, { "file": "sdk\\src\\container.js", - "line": 1202, + "line": 1207, "description": "Removes all apps from the container", "itemtype": "method", "name": "removeAllApps", @@ -2370,7 +2385,7 @@ }, { "file": "sdk\\src\\container.js", - "line": 1217, + "line": 1222, "description": "Removes an app from the container", "itemtype": "method", "name": "removeApp", @@ -3000,11 +3015,11 @@ }, { "message": "replacing incorrect tag: params with param", - "line": " sdk\\src\\app_handlers.js:288" + "line": " sdk\\src\\app_handlers.js:289" }, { "message": "replacing incorrect tag: params with param", - "line": " sdk\\src\\app_handlers.js:313" + "line": " sdk\\src\\app_handlers.js:314" }, { "message": "replacing incorrect tag: depreciated with deprecated", diff --git a/docs/dist/sdk/files/sdk_src_app_handlers.js.html b/docs/dist/sdk/files/sdk_src_app_handlers.js.html index fa98dc12..a26a90cd 100644 --- a/docs/dist/sdk/files/sdk_src_app_handlers.js.html +++ b/docs/dist/sdk/files/sdk_src_app_handlers.js.html @@ -244,6 +244,7 @@

    sdk\src\app_handlers.js File

    var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -629,6 +630,26 @@

    sdk\src\app_handlers.js File

    AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the diff --git a/docs/dist/sdk/files/sdk_src_container.js.html b/docs/dist/sdk/files/sdk_src_container.js.html index fc85ab51..d552b9ea 100644 --- a/docs/dist/sdk/files/sdk_src_container.js.html +++ b/docs/dist/sdk/files/sdk_src_container.js.html @@ -1345,6 +1345,11 @@

    sdk\src\container.js File

    jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/sdk/f2.debug.js b/sdk/f2.debug.js index 0f14c4e9..108504d1 100644 --- a/sdk/f2.debug.js +++ b/sdk/f2.debug.js @@ -14768,7 +14768,7 @@ global.easyXDM = easyXDM; })(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent); /*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -15179,6 +15179,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -15564,6 +15565,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the @@ -18598,6 +18619,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/sdk/f2.min.js b/sdk/f2.min.js index c07ee815..09c33768 100644 --- a/sdk/f2.min.js +++ b/sdk/f2.min.js @@ -1,4 +1,4 @@ -/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-11-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 @@ -29,7 +29,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.4",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidthe;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -56,5 +56,5 @@ var $,jQuery=$=window.jQuery.noConflict(!0);+function(a){"use strict";function b * in the terms and conditions related to the specific Third Party Material, if any. * */ -var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','",""].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); +var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appManifestRequestFail:[],appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_MANIFEST_REQUEST_FAIL:"appManifestRequestFail",APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); //# sourceMappingURL=f2.min.map \ No newline at end of file diff --git a/sdk/f2.min.map b/sdk/f2.min.map index fd932d8c..f021511f 100644 --- a/sdk/f2.min.map +++ b/sdk/f2.min.map @@ -1 +1 @@ -{"version":3,"file":"f2.min.js","sources":["f2.debug.js"],"names":["exports","F2","F2_TESTING_MODE","runInContext","context","has","name","undef","isSupported","value","serialized","stringify","stringifySupported","isExtended","toJSON","Number","String","getClass","a","Date","exception","parse","parseSupported","length","root","Object","SyntaxError","TypeError","Math","nativeJSON","isProperty","forEach","objectProto","prototype","toString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","functionClass","dateClass","numberClass","stringClass","arrayClass","booleanClass","charIndexBuggy","floor","Months","getDay","year","month","hasOwnProperty","property","constructor","members","__proto__","original","this","result","parent","call","object","callback","Properties","size","valueOf","isFunction","isConstructor","hasProperty","objectTypes","Escapes",92,34,8,12,10,13,9,"leadingZeroes","toPaddedString","width","slice","unicodePrefix","quote","index","useCharIndex","symbols","split","charCode","charCodeAt","charAt","serialize","properties","whitespace","indentation","stack","className","date","time","hours","minutes","seconds","milliseconds","results","element","prefix","push","join","pop","source","filter","Index","Source","fromCharCode","Unescapes",47,98,116,110,102,114,"abort","lex","begin","position","isSigned","get","hasMembers","update","walk","isLoader","define","amd","function","freeExports","nodeType","window","freeGlobal","module","global","JSON","previousJSON","isRestored","JSON3","noConflict","factory","document","w","Error","noGlobal","isArraylike","obj","type","jQuery","isWindow","winnow","elements","qualifier","not","grep","elem","i","risSimple","test","inArray","sibling","cur","dir","createOptions","options","optionsCache","each","match","rnotwhite","_","flag","detach","addEventListener","removeEventListener","completed","detachEvent","event","readyState","ready","dataAttr","key","data","undefined","replace","rmultiDash","toLowerCase","getAttribute","rbrace","parseJSON","e","isEmptyDataObject","isEmptyObject","internalData","pvt","acceptData","ret","thisCache","internalKey","expando","isNode","cache","id","deletedIds","guid","noop","extend","camelCase","internalRemoveData","isArray","concat","map","cleanData","support","deleteExpando","returnTrue","returnFalse","safeActiveElement","activeElement","err","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","createElement","getAll","tag","elems","found","getElementsByTagName","strundefined","querySelectorAll","childNodes","nodeName","merge","fixDefaultChecked","rcheckableType","defaultChecked","checked","manipulationTarget","content","firstChild","appendChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","exec","removeAttribute","setGlobalEval","refElements","_data","cloneCopyEvent","src","dest","hasData","l","oldData","curData","events","handle","add","fixCloneNodeIssues","noCloneEvent","removeEvent","text","parentNode","outerHTML","html5Clone","innerHTML","trim","defaultSelected","selected","defaultValue","actualDisplay","doc","style","appendTo","body","display","getDefaultComputedStyle","css","defaultDisplay","elemdisplay","iframe","documentElement","contentWindow","contentDocument","write","close","addGetHookIf","conditionFn","hookFn","condition","apply","arguments","vendorPropName","capName","toUpperCase","origName","cssPrefixes","showHide","show","hidden","values","isHidden","setPositiveNumber","subtract","matches","rnumsplit","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","Tween","prop","end","easing","init","createFxNow","setTimeout","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","createTween","animation","tween","collection","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","checkDisplay","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","done","hide","_removeData","start","propFilter","specialEasing","cssHooks","expand","Animation","stopped","animationPrefilters","deferred","Deferred","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","fx","timer","progress","complete","fail","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","error","buildParams","traditional","v","rbracket","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","getWindow","defaultView","parentWindow","indexOf","class2type","hasOwn","version","selector","fn","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","toArray","num","pushStack","prevObject","args","first","eq","last","len","j","sort","splice","copyIsArray","copy","clone","isPlainObject","random","isReady","msg","Array","isNumeric","ownLast","globalEval","execScript","string","makeArray","arr","second","invert","callbackInverse","callbackExpect","arg","proxy","Sizzle","seed","m","groups","old","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","contains","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","setAttribute","toSelector","rsibling","testContext","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","removeChild","addHandle","handler","attrHandle","siblingCheck","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","outerCache","newCache","dirruns","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","compilerCache","sortOrder","push_native","booleans","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","unloadHandler","els","node","hasCompare","top","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","innerText","lang","elemLang","hash","location","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","n","r","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","once","stopOnFalse","disable","remove","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","suffix","expanded","parts","unit","propHooks","eased","step","linear","p","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","andSelf","_jQuery","_$","$","Plugin","_relatedTarget","$this","Modal","DEFAULTS","$body","$element","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","VERSION","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","backdrop","keyboard","that","checkScrollbar","setScrollbar","escape","resize","transition","adjustDialog","enforceFocus","emulateTransitionEnd","hideModal","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","doAnimate","callbackRemove","modalIsOverflowing","clientHeight","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","right","abs","clientWidth","measureScrollbar","bodyPad","scrollDiv","modal","Constructor","$target","showEvent","_events","_conf","configure","conf","delimiter","maxListeners","wildcard","newListener","listenerTree","EventEmitter","searchListenerTree","tree","leaf","branch","xTree","xxTree","isolatedBranch","endReached","listeners","typeLength","currentType","nextType","_listeners","**","growListenerTree","listener","warned","defaultMaxListeners","console","trace","setMaxListeners","many","ttl","_origin","emit","_all","ns","onAny","addListener","leafs","iLeaf","offAny","removeListener","removeAllListeners","listenersAny","EventEmitter2","process","title","decodeURIComponent","isHostMethod","isHostObject","o","hasFlash","navigator","plugins","description","mimeTypes","enabledPlugin","flashVersion","flash","GetVariable","notSupportedException","major","minor","HAS_FLASH_THROTTLED_BUG","dom_onReady","domIsReady","domReadyQueue","whenReady","scope","getParentObject","ii","easyXDM","_easyXDM","IFRAME_PREFIX","getDomainName","reURI","getPort","getLocation","proto","domain","port","resolveUrl","reDoubleSlash","path","substring","pathname","lastIndexOf","protocol","host","reParent","appendQueryParameters","parameters","q","useHash","destination","noOverwrite","member","testForNamePropertyBug","channelId","HAS_NAME_PROPERTY_BUG","createFrame","config","frame","frameBorder","allowTransparency","onLoad","usePost","action","checkAcl","acl","re","substr","prepareTransportStack","stackEls","isHost","query","xdm_p","channel","secret","swf","product","userAgent","remoteHelper","xdm_c","xdm_s","xdm_e","useResize","useParent","usePolling","local","images","search","xdm_pa","xdm_po","HashTransport","ReliableBehavior","QueueBehavior","encode","maxLength","VerifyBehavior","initiate","PostMessageTransport","NameTransport","NixTransport","SameOriginTransport","FrameElementTransport","FlashTransport","lazy","chainStack","stackElements","stackEl","defaults","incoming","message","origin","up","outgoing","recipient","down","destroy","removeFromStack","un","emptyFn","sEvent","fpNotify","pair","evalJSON","getJSONObject","DomHelper","requiresJSON","_map","Fn","del","Socket","onMessage","onReady","postMessage","Rpc","jsonRpcConfig","RpcBehavior","pub","targetOrigin","onDOMReady","sendFn","addSwf","swfContainer","swfNoThrottle","flashVars","destroyChannel","swfdomain","createChannel","_getOrigin","uri","_window_onMessage","callerWindow","waitForReady","referrer","_sendMessage","sendMessage","_onReady","readyCount","_onMessage","remoteOrigin","_onLoad","remoteWindow","remoteUrl","_callerWindow","_msgNr","_handleHash","_lastMsg","_remoteOrigin","_pollHash","_listenerWindow","_attachListeners","_timer","pollInterval","tries","getRef","frames","ex","idOut","idIn","currentMessage","ack","waiting","destroying","doFragment","seq","fragments","startVerification","mySecret","theirSecret","_send","jsonrpc","serializer","_createMethod","definition","_callbacks","_callbackCounter","namedParams","_executeMethod","ex1","_absolutizeURI","removeDotSegments","output","_parseURI","authority","hostname","appConfigReplacer","Apps","overwrite","isFunc","S4","array","isLocalRequest","urlLower","isNativeDOMNode","testObject","bIsNode","Node","bIsElement","HTMLElement","log","_log","_logMethod","methods","replacer","space","_ct","_f2t","_handlerCollection","appCreateRoot","appRenderBefore","appDestroyBefore","appRenderAfter","appDestroyAfter","appRender","appDestroy","appScriptLoadFailed","_defaultMethods","appConfig","appHtml","$root","appInstance","app","appId","_createHandler","sNamespace","func_or_element","bDomNodeAppropriate","_validateToken","domNode","sToken","_removeHandler","eventKey","currentEventKey","eventCollection","newEvents","ec","currentEventHandler","newHandlerCollection","iCounter","hc","currentHandler","getToken","__f2GetToken","__trigger","passableArgs","hcl","$appRoot","arData","AppHandlers","APP_CREATE_ROOT","APP_RENDER_BEFORE","APP_RENDER","APP_RENDER_AFTER","APP_DESTROY_BEFORE","APP_DESTROY","APP_DESTROY_AFTER","APP_SCRIPT_LOAD_FAILED","App","appContent","AppConfig","enableBatchRequests","instanceId","isSecure","containerLocale","localeSupport","manifestUrl","minGridSize","ui","views","AppManifest","apps","inlineScripts","AppContent","ContainerConfig","afterAppRender","beforeAppRender","debugMode","locale","scriptErrorTimeout","isSecureAppPage","secureAppPagePath","supportedViews","UI","Mask","backgroundColor","loadingIcon","useClasses","appConfigs","loadScripts","inlines","loadStyles","Css","_PREFIX","APP","APP_CONTAINER","APP_TITLE","APP_VIEW","APP_VIEW_TRIGGER","MASK","MASK_CONTAINER","Events","_APP_EVENT_PREFIX","_CONTAINER_EVENT_PREFIX","APP_SCRIPTS_LOADED","APP_SYMBOL_CHANGE","APP_WIDTH_CHANGE","CONTAINER_SYMBOL_CHANGE","CONTAINER_WIDTH_CHANGE","CONTAINER_LOCALE_CHANGE","RESOURCE_FAILED_TO_LOAD","JSONP_CALLBACK","AppStatus","ERROR","SUCCESS","Sockets","EVENT","LOAD","RPC","RPC_CALLBACK","UI_RPC","Views","DATA_ATTRIBUTE","ABOUT","HELP","HOME","REMOVE","SETTINGS","_socketEmit","broadcast","Constants","timesToListen","_secureAppPagePath","_apps","_rEvents","_rRpc","_rRpcCallback","_rSocketLoad","_rUiCall","_createAppToContainerSocket","isLoaded","messagePlayback","socket","appParts","registerApps","_createContainerToAppSocket","appManifest","iframeProps","scrolling","_createRpcCallback","callbackId","parseFunction","functionName","parseMessage","regEx","callbacks","c","_registerCallback","messageType","cid","isRemote","register","_containerConfig","UI_Class","_appConfig","_updateHeight","outerHeight","_modalHtml","showCancel","hideMask","Modals","_renderAlert","_renderConfirm","alert","isInit","confirm","okCallback","cancelCallback","setTitle","showMask","showLoader","updateHeight","_rValidEvents","_isValid","containerConfig","showLoading","mask","background-color","background-image","background-position","background-repeat","min-height","z-index","_config","_bUsesAppHandlers","_sAppHandlerToken","_loadingScripts","_afterAppRender","appContainer","_appRender","_outerHtml","_beforeAppRender","_appScriptLoadFailed","scriptInfo","_createAppConfig","_getAppConfigFromElement","hasAttribute","contextJson","warn","_hasNonTextChildNodes","hasNodes","hasChildNodes","_hydrateContainerConfig","_initAppEvents","view","removeApp","_initContainerEvents","resizeTimeout","resizeHandler","_isPlaceholderElement","_isInit","_createAppInstance","_loadApps","_loadSecureApp","_findExistingScripts","_findExistingStyles","_loadStyles","cb","existingStyles","stylesFragment","useCreateStyleSheet","createStyleSheet","resourceUrl","_loadScripts","existingScripts","scriptCount","scriptsLoaded","insertBeforeEl","readyStates","loaded","_error","evtData","_checkComplete","_emptyWaitlist","resourceKey","errorEvt","waitlist","getTime","onerror","_loadInlineScripts","loadInlineScripts","eval","elementInDocument","_loadHtml","_validateApp","_validateContainerConfig","getContainerState","getContainerLocale","loadPlaceholders","addAll","appManifests","appStack","batches","callbackStack","haveManifests","preloaded","req","requests","manifestRequest","completeFunc","errorFunc","item","successFunc","requestFunc","successCallback","errorCallback","completeCallback","jqxhr","removeAllApps","autoloadEls"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"f2.min.js","sources":["f2.debug.js"],"names":["exports","F2","F2_TESTING_MODE","runInContext","context","has","name","undef","isSupported","value","serialized","stringify","stringifySupported","isExtended","toJSON","Number","String","getClass","a","Date","exception","parse","parseSupported","length","root","Object","SyntaxError","TypeError","Math","nativeJSON","isProperty","forEach","objectProto","prototype","toString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","functionClass","dateClass","numberClass","stringClass","arrayClass","booleanClass","charIndexBuggy","floor","Months","getDay","year","month","hasOwnProperty","property","constructor","members","__proto__","original","this","result","parent","call","object","callback","Properties","size","valueOf","isFunction","isConstructor","hasProperty","objectTypes","Escapes",92,34,8,12,10,13,9,"leadingZeroes","toPaddedString","width","slice","unicodePrefix","quote","index","useCharIndex","symbols","split","charCode","charCodeAt","charAt","serialize","properties","whitespace","indentation","stack","className","date","time","hours","minutes","seconds","milliseconds","results","element","prefix","push","join","pop","source","filter","Index","Source","fromCharCode","Unescapes",47,98,116,110,102,114,"abort","lex","begin","position","isSigned","get","hasMembers","update","walk","isLoader","define","amd","function","freeExports","nodeType","window","freeGlobal","module","global","JSON","previousJSON","isRestored","JSON3","noConflict","factory","document","w","Error","noGlobal","isArraylike","obj","type","jQuery","isWindow","winnow","elements","qualifier","not","grep","elem","i","risSimple","test","inArray","sibling","cur","dir","createOptions","options","optionsCache","each","match","rnotwhite","_","flag","detach","addEventListener","removeEventListener","completed","detachEvent","event","readyState","ready","dataAttr","key","data","undefined","replace","rmultiDash","toLowerCase","getAttribute","rbrace","parseJSON","e","isEmptyDataObject","isEmptyObject","internalData","pvt","acceptData","ret","thisCache","internalKey","expando","isNode","cache","id","deletedIds","guid","noop","extend","camelCase","internalRemoveData","isArray","concat","map","cleanData","support","deleteExpando","returnTrue","returnFalse","safeActiveElement","activeElement","err","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","createElement","getAll","tag","elems","found","getElementsByTagName","strundefined","querySelectorAll","childNodes","nodeName","merge","fixDefaultChecked","rcheckableType","defaultChecked","checked","manipulationTarget","content","firstChild","appendChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","exec","removeAttribute","setGlobalEval","refElements","_data","cloneCopyEvent","src","dest","hasData","l","oldData","curData","events","handle","add","fixCloneNodeIssues","noCloneEvent","removeEvent","text","parentNode","outerHTML","html5Clone","innerHTML","trim","defaultSelected","selected","defaultValue","actualDisplay","doc","style","appendTo","body","display","getDefaultComputedStyle","css","defaultDisplay","elemdisplay","iframe","documentElement","contentWindow","contentDocument","write","close","addGetHookIf","conditionFn","hookFn","condition","apply","arguments","vendorPropName","capName","toUpperCase","origName","cssPrefixes","showHide","show","hidden","values","isHidden","setPositiveNumber","subtract","matches","rnumsplit","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","Tween","prop","end","easing","init","createFxNow","setTimeout","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","createTween","animation","tween","collection","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","checkDisplay","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","done","hide","_removeData","start","propFilter","specialEasing","cssHooks","expand","Animation","stopped","animationPrefilters","deferred","Deferred","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","fx","timer","progress","complete","fail","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","error","buildParams","traditional","v","rbracket","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","getWindow","defaultView","parentWindow","indexOf","class2type","hasOwn","version","selector","fn","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","toArray","num","pushStack","prevObject","args","first","eq","last","len","j","sort","splice","copyIsArray","copy","clone","isPlainObject","random","isReady","msg","Array","isNumeric","ownLast","globalEval","execScript","string","makeArray","arr","second","invert","callbackInverse","callbackExpect","arg","proxy","Sizzle","seed","m","groups","old","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","contains","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","setAttribute","toSelector","rsibling","testContext","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","removeChild","addHandle","handler","attrHandle","siblingCheck","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","outerCache","newCache","dirruns","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","compilerCache","sortOrder","push_native","booleans","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","unloadHandler","els","node","hasCompare","top","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","innerText","lang","elemLang","hash","location","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","n","r","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","once","stopOnFalse","disable","remove","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","scripts","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","suffix","expanded","parts","unit","propHooks","eased","step","linear","p","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","async","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","script","text script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","andSelf","_jQuery","_$","$","Plugin","_relatedTarget","$this","Modal","DEFAULTS","$body","$element","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","VERSION","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","backdrop","keyboard","that","checkScrollbar","setScrollbar","escape","resize","transition","adjustDialog","enforceFocus","emulateTransitionEnd","hideModal","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","doAnimate","callbackRemove","modalIsOverflowing","clientHeight","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","right","abs","clientWidth","measureScrollbar","bodyPad","scrollDiv","modal","Constructor","$target","showEvent","_events","_conf","configure","conf","delimiter","maxListeners","wildcard","newListener","listenerTree","EventEmitter","searchListenerTree","tree","leaf","branch","xTree","xxTree","isolatedBranch","endReached","listeners","typeLength","currentType","nextType","_listeners","**","growListenerTree","listener","warned","defaultMaxListeners","console","trace","setMaxListeners","many","ttl","_origin","emit","_all","ns","onAny","addListener","leafs","iLeaf","offAny","removeListener","removeAllListeners","listenersAny","EventEmitter2","process","title","decodeURIComponent","isHostMethod","isHostObject","o","hasFlash","navigator","plugins","description","mimeTypes","enabledPlugin","flashVersion","flash","GetVariable","notSupportedException","major","minor","HAS_FLASH_THROTTLED_BUG","dom_onReady","domIsReady","domReadyQueue","whenReady","scope","getParentObject","ii","easyXDM","_easyXDM","IFRAME_PREFIX","getDomainName","reURI","getPort","getLocation","proto","domain","port","resolveUrl","reDoubleSlash","path","substring","pathname","lastIndexOf","protocol","host","reParent","appendQueryParameters","parameters","q","useHash","destination","noOverwrite","member","testForNamePropertyBug","channelId","HAS_NAME_PROPERTY_BUG","createFrame","config","frame","frameBorder","allowTransparency","onLoad","usePost","action","checkAcl","acl","re","substr","prepareTransportStack","stackEls","isHost","query","xdm_p","channel","secret","swf","product","userAgent","remoteHelper","xdm_c","xdm_s","xdm_e","useResize","useParent","usePolling","local","images","search","xdm_pa","xdm_po","HashTransport","ReliableBehavior","QueueBehavior","encode","maxLength","VerifyBehavior","initiate","PostMessageTransport","NameTransport","NixTransport","SameOriginTransport","FrameElementTransport","FlashTransport","lazy","chainStack","stackElements","stackEl","defaults","incoming","message","origin","up","outgoing","recipient","down","destroy","removeFromStack","un","emptyFn","sEvent","fpNotify","pair","evalJSON","getJSONObject","DomHelper","requiresJSON","_map","Fn","del","Socket","onMessage","onReady","postMessage","Rpc","jsonRpcConfig","RpcBehavior","pub","targetOrigin","onDOMReady","sendFn","addSwf","swfContainer","swfNoThrottle","flashVars","destroyChannel","swfdomain","createChannel","_getOrigin","uri","_window_onMessage","callerWindow","waitForReady","referrer","_sendMessage","sendMessage","_onReady","readyCount","_onMessage","remoteOrigin","_onLoad","remoteWindow","remoteUrl","_callerWindow","_msgNr","_handleHash","_lastMsg","_remoteOrigin","_pollHash","_listenerWindow","_attachListeners","_timer","pollInterval","tries","getRef","frames","ex","idOut","idIn","currentMessage","ack","waiting","destroying","doFragment","seq","fragments","startVerification","mySecret","theirSecret","_send","jsonrpc","serializer","_createMethod","definition","_callbacks","_callbackCounter","namedParams","_executeMethod","ex1","_absolutizeURI","removeDotSegments","output","_parseURI","authority","hostname","appConfigReplacer","Apps","overwrite","isFunc","S4","array","isLocalRequest","urlLower","isNativeDOMNode","testObject","bIsNode","Node","bIsElement","HTMLElement","log","_log","_logMethod","methods","replacer","space","_ct","_f2t","_handlerCollection","appManifestRequestFail","appCreateRoot","appRenderBefore","appDestroyBefore","appRenderAfter","appDestroyAfter","appRender","appDestroy","appScriptLoadFailed","_defaultMethods","appConfig","appHtml","$root","appInstance","app","appId","_createHandler","sNamespace","func_or_element","bDomNodeAppropriate","_validateToken","domNode","sToken","_removeHandler","eventKey","currentEventKey","eventCollection","newEvents","ec","currentEventHandler","newHandlerCollection","iCounter","hc","currentHandler","getToken","__f2GetToken","__trigger","passableArgs","hcl","$appRoot","arData","AppHandlers","APP_MANIFEST_REQUEST_FAIL","APP_CREATE_ROOT","APP_RENDER_BEFORE","APP_RENDER","APP_RENDER_AFTER","APP_DESTROY_BEFORE","APP_DESTROY","APP_DESTROY_AFTER","APP_SCRIPT_LOAD_FAILED","App","appContent","AppConfig","enableBatchRequests","instanceId","isSecure","containerLocale","localeSupport","manifestUrl","minGridSize","ui","views","AppManifest","apps","inlineScripts","AppContent","ContainerConfig","afterAppRender","beforeAppRender","debugMode","locale","scriptErrorTimeout","isSecureAppPage","secureAppPagePath","supportedViews","UI","Mask","backgroundColor","loadingIcon","useClasses","appConfigs","loadScripts","inlines","loadStyles","Css","_PREFIX","APP","APP_CONTAINER","APP_TITLE","APP_VIEW","APP_VIEW_TRIGGER","MASK","MASK_CONTAINER","Events","_APP_EVENT_PREFIX","_CONTAINER_EVENT_PREFIX","APP_SCRIPTS_LOADED","APP_SYMBOL_CHANGE","APP_WIDTH_CHANGE","CONTAINER_SYMBOL_CHANGE","CONTAINER_WIDTH_CHANGE","CONTAINER_LOCALE_CHANGE","RESOURCE_FAILED_TO_LOAD","JSONP_CALLBACK","AppStatus","ERROR","SUCCESS","Sockets","EVENT","LOAD","RPC","RPC_CALLBACK","UI_RPC","Views","DATA_ATTRIBUTE","ABOUT","HELP","HOME","REMOVE","SETTINGS","_socketEmit","broadcast","Constants","timesToListen","_secureAppPagePath","_apps","_rEvents","_rRpc","_rRpcCallback","_rSocketLoad","_rUiCall","_createAppToContainerSocket","isLoaded","messagePlayback","socket","appParts","registerApps","_createContainerToAppSocket","appManifest","iframeProps","scrolling","_createRpcCallback","callbackId","parseFunction","functionName","parseMessage","regEx","callbacks","c","_registerCallback","messageType","cid","isRemote","register","_containerConfig","UI_Class","_appConfig","_updateHeight","outerHeight","_modalHtml","showCancel","hideMask","Modals","_renderAlert","_renderConfirm","alert","isInit","confirm","okCallback","cancelCallback","setTitle","showMask","showLoader","updateHeight","_rValidEvents","_isValid","containerConfig","showLoading","mask","background-color","background-image","background-position","background-repeat","min-height","z-index","_config","_bUsesAppHandlers","_sAppHandlerToken","_loadingScripts","_afterAppRender","appContainer","_appRender","_outerHtml","_beforeAppRender","_appScriptLoadFailed","scriptInfo","_createAppConfig","_getAppConfigFromElement","hasAttribute","contextJson","warn","_hasNonTextChildNodes","hasNodes","hasChildNodes","_hydrateContainerConfig","_initAppEvents","view","removeApp","_initContainerEvents","resizeTimeout","resizeHandler","_isPlaceholderElement","_isInit","_createAppInstance","_loadApps","_loadSecureApp","_findExistingScripts","_findExistingStyles","_loadStyles","cb","existingStyles","stylesFragment","useCreateStyleSheet","createStyleSheet","resourceUrl","_loadScripts","existingScripts","scriptCount","scriptsLoaded","insertBeforeEl","readyStates","loaded","_error","evtData","_checkComplete","_emptyWaitlist","resourceKey","errorEvt","waitlist","getTime","onerror","_loadInlineScripts","loadInlineScripts","eval","elementInDocument","_loadHtml","_validateApp","_validateContainerConfig","getContainerState","getContainerLocale","loadPlaceholders","addAll","appManifests","appStack","batches","callbackStack","haveManifests","preloaded","req","requests","manifestRequest","completeFunc","errorFunc","item","successFunc","requestFunc","successCallback","errorCallback","completeCallback","jqxhr","removeAllApps","autoloadEls"],"mappings":"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"} \ No newline at end of file diff --git a/sdk/f2.no-third-party.js b/sdk/f2.no-third-party.js index 89bafa0d..d95480c0 100644 --- a/sdk/f2.no-third-party.js +++ b/sdk/f2.no-third-party.js @@ -5,7 +5,7 @@ } /*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -416,6 +416,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -801,6 +802,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the @@ -3835,6 +3856,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/sdk/packages/f2.basic.js b/sdk/packages/f2.basic.js index 222f2974..7bc2898e 100644 --- a/sdk/packages/f2.basic.js +++ b/sdk/packages/f2.basic.js @@ -1495,7 +1495,7 @@ /*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -1906,6 +1906,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -2291,6 +2292,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the @@ -5325,6 +5346,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/sdk/packages/f2.basic.min.js b/sdk/packages/f2.basic.min.js index 76d02e45..0e704545 100644 --- a/sdk/packages/f2.basic.min.js +++ b/sdk/packages/f2.basic.min.js @@ -1,6 +1,6 @@ -/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-11-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;eg;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file +var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appManifestRequestFail:[],appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_MANIFEST_REQUEST_FAIL:"appManifestRequestFail",APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file diff --git a/sdk/packages/f2.no-bootstrap.js b/sdk/packages/f2.no-bootstrap.js index 36d27451..91490907 100644 --- a/sdk/packages/f2.no-bootstrap.js +++ b/sdk/packages/f2.no-bootstrap.js @@ -14431,7 +14431,7 @@ global.easyXDM = easyXDM; })(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent); /*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -14842,6 +14842,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -15227,6 +15228,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the @@ -18261,6 +18282,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/sdk/packages/f2.no-bootstrap.min.js b/sdk/packages/f2.no-bootstrap.min.js index 66154168..7787f5ae 100644 --- a/sdk/packages/f2.no-bootstrap.min.js +++ b/sdk/packages/f2.no-bootstrap.min.js @@ -1,4 +1,4 @@ -/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-11-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ @@ -28,7 +28,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -55,4 +55,4 @@ var $,jQuery=$=window.jQuery.noConflict(!0);!function(a,b){function c(){this._ev * in the terms and conditions related to the specific Third Party Material, if any. * */ -var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file +var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appManifestRequestFail:[],appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_MANIFEST_REQUEST_FAIL:"appManifestRequestFail",APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file diff --git a/sdk/packages/f2.no-easyXDM.js b/sdk/packages/f2.no-easyXDM.js index 25a18111..a7135f40 100644 --- a/sdk/packages/f2.no-easyXDM.js +++ b/sdk/packages/f2.no-easyXDM.js @@ -12183,7 +12183,7 @@ var $, jQuery = $ = window.jQuery.noConflict(true); /*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -12594,6 +12594,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -12979,6 +12980,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the @@ -16013,6 +16034,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/sdk/packages/f2.no-easyXDM.min.js b/sdk/packages/f2.no-easyXDM.min.js index 69e82f89..9079fc52 100644 --- a/sdk/packages/f2.no-easyXDM.min.js +++ b/sdk/packages/f2.no-easyXDM.min.js @@ -1,4 +1,4 @@ -/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-11-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ @@ -28,7 +28,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;eg;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file +var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appManifestRequestFail:[],appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_MANIFEST_REQUEST_FAIL:"appManifestRequestFail",APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file diff --git a/sdk/packages/f2.no-jquery-or-bootstrap.js b/sdk/packages/f2.no-jquery-or-bootstrap.js index 8a341d0e..28cacf81 100644 --- a/sdk/packages/f2.no-jquery-or-bootstrap.js +++ b/sdk/packages/f2.no-jquery-or-bootstrap.js @@ -4080,7 +4080,7 @@ global.easyXDM = easyXDM; })(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent); /*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -4491,6 +4491,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -4876,6 +4877,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the @@ -7910,6 +7931,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/sdk/packages/f2.no-jquery-or-bootstrap.min.js b/sdk/packages/f2.no-jquery-or-bootstrap.min.js index ff8c4a6e..3c20357d 100644 --- a/sdk/packages/f2.no-jquery-or-bootstrap.min.js +++ b/sdk/packages/f2.no-jquery-or-bootstrap.min.js @@ -1,7 +1,7 @@ -/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-11-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){ var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -28,4 +28,4 @@ var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.me * in the terms and conditions related to the specific Third Party Material, if any. * */ -var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file +var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appManifestRequestFail:[],appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_MANIFEST_REQUEST_FAIL:"appManifestRequestFail",APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file diff --git a/sdk/src/app_handlers.js b/sdk/src/app_handlers.js index a0ddc1e7..75dd29f6 100644 --- a/sdk/src/app_handlers.js +++ b/sdk/src/app_handlers.js @@ -41,6 +41,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -426,6 +427,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the diff --git a/sdk/src/container.js b/sdk/src/container.js index 270a2237..59349d48 100644 --- a/sdk/src/container.js +++ b/sdk/src/container.js @@ -1142,6 +1142,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, From e0eb9a2491e233a0f930993bf90216d18cb64e44 Mon Sep 17 00:00:00 2001 From: qrider Date: Thu, 11 May 2017 10:58:11 -0600 Subject: [PATCH 5/6] Added documentation for appManifestRequestFail --- dist/f2.basic.js | 28 ++++++++++++++++++++++++++- dist/f2.basic.min.js | 6 +++--- dist/f2.no-bootstrap.js | 28 ++++++++++++++++++++++++++- dist/f2.no-bootstrap.min.js | 6 +++--- dist/f2.no-easyXDM.js | 28 ++++++++++++++++++++++++++- dist/f2.no-easyXDM.min.js | 6 +++--- dist/f2.no-jquery-or-bootstrap.js | 28 ++++++++++++++++++++++++++- dist/f2.no-jquery-or-bootstrap.min.js | 6 +++--- docs/dist/container-development.html | 1 + docs/dist/extending-f2.html | 2 +- docs/dist/f2js-sdk.html | 2 +- docs/src/container-development.md | 1 + 12 files changed, 124 insertions(+), 18 deletions(-) diff --git a/dist/f2.basic.js b/dist/f2.basic.js index 222f2974..7bc2898e 100644 --- a/dist/f2.basic.js +++ b/dist/f2.basic.js @@ -1495,7 +1495,7 @@ /*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -1906,6 +1906,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -2291,6 +2292,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the @@ -5325,6 +5346,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/dist/f2.basic.min.js b/dist/f2.basic.min.js index 76d02e45..0e704545 100644 --- a/dist/f2.basic.min.js +++ b/dist/f2.basic.min.js @@ -1,6 +1,6 @@ -/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-11-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;eg;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file +var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appManifestRequestFail:[],appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_MANIFEST_REQUEST_FAIL:"appManifestRequestFail",APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file diff --git a/dist/f2.no-bootstrap.js b/dist/f2.no-bootstrap.js index 36d27451..91490907 100644 --- a/dist/f2.no-bootstrap.js +++ b/dist/f2.no-bootstrap.js @@ -14431,7 +14431,7 @@ global.easyXDM = easyXDM; })(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent); /*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -14842,6 +14842,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -15227,6 +15228,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the @@ -18261,6 +18282,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/dist/f2.no-bootstrap.min.js b/dist/f2.no-bootstrap.min.js index 66154168..7787f5ae 100644 --- a/dist/f2.no-bootstrap.min.js +++ b/dist/f2.no-bootstrap.min.js @@ -1,4 +1,4 @@ -/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-11-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ @@ -28,7 +28,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -55,4 +55,4 @@ var $,jQuery=$=window.jQuery.noConflict(!0);!function(a,b){function c(){this._ev * in the terms and conditions related to the specific Third Party Material, if any. * */ -var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file +var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appManifestRequestFail:[],appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_MANIFEST_REQUEST_FAIL:"appManifestRequestFail",APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file diff --git a/dist/f2.no-easyXDM.js b/dist/f2.no-easyXDM.js index 25a18111..a7135f40 100644 --- a/dist/f2.no-easyXDM.js +++ b/dist/f2.no-easyXDM.js @@ -12183,7 +12183,7 @@ var $, jQuery = $ = window.jQuery.noConflict(true); /*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -12594,6 +12594,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -12979,6 +12980,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the @@ -16013,6 +16034,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/dist/f2.no-easyXDM.min.js b/dist/f2.no-easyXDM.min.js index 69e82f89..9079fc52 100644 --- a/dist/f2.no-easyXDM.min.js +++ b/dist/f2.no-easyXDM.min.js @@ -1,4 +1,4 @@ -/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-11-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),/*! * jQuery JavaScript Library v1.11.2 * http://jquery.com/ @@ -28,7 +28,7 @@ void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!= * This file creates $ and jQuery variables within the F2 closure scope */ var $,jQuery=$=window.jQuery.noConflict(!0);!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;eg;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file +var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appManifestRequestFail:[],appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_MANIFEST_REQUEST_FAIL:"appManifestRequestFail",APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file diff --git a/dist/f2.no-jquery-or-bootstrap.js b/dist/f2.no-jquery-or-bootstrap.js index 8a341d0e..28cacf81 100644 --- a/dist/f2.no-jquery-or-bootstrap.js +++ b/dist/f2.no-jquery-or-bootstrap.js @@ -4080,7 +4080,7 @@ global.easyXDM = easyXDM; })(window, document, location, window.setTimeout, decodeURIComponent, encodeURIComponent); /*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -4491,6 +4491,7 @@ F2.extend('AppHandlers', (function() { var _f2t = F2.guid(); var _handlerCollection = { + appManifestRequestFail: [], appCreateRoot: [], appRenderBefore: [], appDestroyBefore: [], @@ -4876,6 +4877,26 @@ F2.extend('Constants', { AppHandlers: (function() { return { + /** + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ + APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the @@ -7910,6 +7931,11 @@ F2.extend('', (function() { jQuery.each(req.apps, function(idx, item) { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); + F2.AppHandlers.__trigger( + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); }, diff --git a/dist/f2.no-jquery-or-bootstrap.min.js b/dist/f2.no-jquery-or-bootstrap.min.js index ff8c4a6e..3c20357d 100644 --- a/dist/f2.no-jquery-or-bootstrap.min.js +++ b/dist/f2.no-jquery-or-bootstrap.min.js @@ -1,7 +1,7 @@ -/*! F2 - v1.4.2 - 05-10-2017 - See below for copyright and license */ +/*! F2 - v1.4.2 - 05-11-2017 - See below for copyright and license */ !function(exports){if(!exports.F2||exports.F2_TESTING_MODE){(function(){function a(b,d){function f(a){if(f[a]!==q)return f[a];var b;if("bug-string-char-index"==a)b="a"!="a"[0];else if("json"==a)b=f("json-stringify")&&f("json-parse");else{var c,e='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if("json-stringify"==a){var i=d.stringify,k="function"==typeof i&&t;if(k){(c=function(){return 1}).toJSON=c;try{k="0"===i(0)&&"0"===i(new g)&&'""'==i(new h)&&i(s)===q&&i(q)===q&&i()===q&&"1"===i(c)&&"[1]"==i([c])&&"[null]"==i([q])&&"null"==i(null)&&"[null,null,null]"==i([q,s,null])&&i({a:[c,!0,!1,null,"\x00\b\n\f\r "]})==e&&"1"===i(null,c)&&"[\n 1,\n 2\n]"==i([1,2],null,1)&&'"-271821-04-20T00:00:00.000Z"'==i(new j(-864e13))&&'"+275760-09-13T00:00:00.000Z"'==i(new j(864e13))&&'"-000001-01-01T00:00:00.000Z"'==i(new j(-621987552e5))&&'"1969-12-31T23:59:59.999Z"'==i(new j(-1))}catch(l){k=!1}}b=k}if("json-parse"==a){var m=d.parse;if("function"==typeof m)try{if(0===m("0")&&!m(!1)){c=m(e);var n=5==c.a.length&&1===c.a[0];if(n){try{n=!m('" "')}catch(l){}if(n)try{n=1!==m("01")}catch(l){}if(n)try{n=1!==m("1.")}catch(l){}}}}catch(l){n=!1}b=n}}return f[a]=!!b}b||(b=e.Object()),d||(d=e.Object());var g=b.Number||e.Number,h=b.String||e.String,i=b.Object||e.Object,j=b.Date||e.Date,k=b.SyntaxError||e.SyntaxError,l=b.TypeError||e.TypeError,m=b.Math||e.Math,n=b.JSON||e.JSON;"object"==typeof n&&n&&(d.stringify=n.stringify,d.parse=n.parse);var o,p,q,r=i.prototype,s=r.toString,t=new j(-0xc782b5b800cec);try{t=-109252==t.getUTCFullYear()&&0===t.getUTCMonth()&&1===t.getUTCDate()&&10==t.getUTCHours()&&37==t.getUTCMinutes()&&6==t.getUTCSeconds()&&708==t.getUTCMilliseconds()}catch(u){}if(!f("json")){var v="[object Function]",w="[object Date]",x="[object Number]",y="[object String]",z="[object Array]",A="[object Boolean]",B=f("bug-string-char-index");if(!t)var C=m.floor,D=[0,31,59,90,120,151,181,212,243,273,304,334],E=function(a,b){return D[b]+365*(a-1970)+C((a-1969+(b=+(b>1)))/4)-C((a-1901+b)/100)+C((a-1601+b)/400)};if((o=r.hasOwnProperty)||(o=function(a){var b,c={};return(c.__proto__=null,c.__proto__={toString:1},c).toString!=s?o=function(a){var b=this.__proto__,c=a in(this.__proto__=null,this);return this.__proto__=b,c}:(b=c.constructor,o=function(a){var c=(this.constructor||b).prototype;return a in this&&!(a in c&&this[a]===c[a])}),c=null,o.call(this,a)}),p=function(a,b){var d,e,f,g=0;(d=function(){this.valueOf=0}).prototype.valueOf=0,e=new d;for(f in e)o.call(e,f)&&g++;return d=e=null,g?p=2==g?function(a,b){var c,d={},e=s.call(a)==v;for(c in a)e&&"prototype"==c||o.call(d,c)||!(d[c]=1)||!o.call(a,c)||b(c)}:function(a,b){var c,d,e=s.call(a)==v;for(c in a)e&&"prototype"==c||!o.call(a,c)||(d="constructor"===c)||b(c);(d||o.call(a,c="constructor"))&&b(c)}:(e=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d,f,g=s.call(a)==v,h=!g&&"function"!=typeof a.constructor&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(d in a)g&&"prototype"==d||!h.call(a,d)||b(d);for(f=e.length;d=e[--f];h.call(a,d)&&b(d));}),p(a,b)},!f("json-stringify")){var F={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},G="000000",H=function(a,b){return(G+(b||0)).slice(-a)},I="\\u00",J=function(a){for(var b='"',c=0,d=a.length,e=!B||d>10,f=e&&(B?a.split(""):a);d>c;c++){var g=a.charCodeAt(c);switch(g){case 8:case 9:case 10:case 12:case 13:case 34:case 92:b+=F[g];break;default:if(32>g){b+=I+H(2,g.toString(16));break}b+=e?f[c]:a.charAt(c)}}return b+'"'},K=function(a,b,c,d,e,f,g){var h,i,j,k,m,n,r,t,u,v,B,D,F,G,I,L;try{h=b[a]}catch(M){}if("object"==typeof h&&h)if(i=s.call(h),i!=w||o.call(h,"toJSON"))"function"==typeof h.toJSON&&(i!=x&&i!=y&&i!=z||o.call(h,"toJSON"))&&(h=h.toJSON(a));else if(h>-1/0&&1/0>h){if(E){for(m=C(h/864e5),j=C(m/365.2425)+1970-1;E(j+1,0)<=m;j++);for(k=C((m-E(j,0))/30.42);E(j,k+1)<=m;k++);m=1+m-E(j,k),n=(h%864e5+864e5)%864e5,r=C(n/36e5)%24,t=C(n/6e4)%60,u=C(n/1e3)%60,v=n%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),r=h.getUTCHours(),t=h.getUTCMinutes(),u=h.getUTCSeconds(),v=h.getUTCMilliseconds();h=(0>=j||j>=1e4?(0>j?"-":"+")+H(6,0>j?-j:j):H(4,j))+"-"+H(2,k+1)+"-"+H(2,m)+"T"+H(2,r)+":"+H(2,t)+":"+H(2,u)+"."+H(3,v)+"Z"}else h=null;if(c&&(h=c.call(b,a,h)),null===h)return"null";if(i=s.call(h),i==A)return""+h;if(i==x)return h>-1/0&&1/0>h?""+h:"null";if(i==y)return J(""+h);if("object"==typeof h){for(G=g.length;G--;)if(g[G]===h)throw l();if(g.push(h),B=[],I=f,f+=e,i==z){for(F=0,G=h.length;G>F;F++)D=K(F,h,c,d,e,f,g),B.push(D===q?"null":D);L=B.length?e?"[\n"+f+B.join(",\n"+f)+"\n"+I+"]":"["+B.join(",")+"]":"[]"}else p(d||h,function(a){var b=K(a,h,c,d,e,f,g);b!==q&&B.push(J(a)+":"+(e?" ":"")+b)}),L=B.length?e?"{\n"+f+B.join(",\n"+f)+"\n"+I+"}":"{"+B.join(",")+"}":"{}";return g.pop(),L}};d.stringify=function(a,b,d){var e,f,g,h;if(c[typeof b]&&b)if((h=s.call(b))==v)f=b;else if(h==z){g={};for(var i,j=0,k=b.length;k>j;i=b[j++],h=s.call(i),(h==y||h==x)&&(g[i]=1));}if(d)if((h=s.call(d))==x){if((d-=d%1)>0)for(e="",d>10&&(d=10);e.lengthL;)switch(e=f.charCodeAt(L)){case 9:case 10:case 13:case 32:L++;break;case 123:case 125:case 91:case 93:case 58:case 44:return a=B?f.charAt(L):f[L],L++,a;case 34:for(a="@",L++;g>L;)if(e=f.charCodeAt(L),32>e)P();else if(92==e)switch(e=f.charCodeAt(++L)){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:a+=O[e],L++;break;case 117:for(b=++L,c=L+4;c>L;L++)e=f.charCodeAt(L),e>=48&&57>=e||e>=97&&102>=e||e>=65&&70>=e||P();a+=N("0x"+f.slice(b,L));break;default:P()}else{if(34==e)break;for(e=f.charCodeAt(L),b=L;e>=32&&92!=e&&34!=e;)e=f.charCodeAt(++L);a+=f.slice(b,L)}if(34==f.charCodeAt(L))return L++,a;P();default:if(b=L,45==e&&(d=!0,e=f.charCodeAt(++L)),e>=48&&57>=e){for(48==e&&(e=f.charCodeAt(L+1),e>=48&&57>=e)&&P(),d=!1;g>L&&(e=f.charCodeAt(L),e>=48&&57>=e);L++);if(46==f.charCodeAt(L)){for(c=++L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}if(e=f.charCodeAt(L),101==e||69==e){for(e=f.charCodeAt(++L),(43==e||45==e)&&L++,c=L;g>c&&(e=f.charCodeAt(c),e>=48&&57>=e);c++);c==L&&P(),L=c}return+f.slice(b,L)}if(d&&P(),"true"==f.slice(L,L+4))return L+=4,!0;if("false"==f.slice(L,L+5))return L+=5,!1;if("null"==f.slice(L,L+4))return L+=4,null;P()}return"$"},R=function(a){var b,c;if("$"==a&&P(),"string"==typeof a){if("@"==(B?a.charAt(0):a[0]))return a.slice(1);if("["==a){for(b=[];a=Q(),"]"!=a;c||(c=!0))c&&(","==a?(a=Q(),"]"==a&&P()):P()),","==a&&P(),b.push(R(a));return b}if("{"==a){for(b={};a=Q(),"}"!=a;c||(c=!0))c&&(","==a?(a=Q(),"}"==a&&P()):P()),(","==a||"string"!=typeof a||"@"!=(B?a.charAt(0):a[0])||":"!=Q())&&P(),b[a.slice(1)]=R(Q());return b}P()}return a},S=function(a,b,c){var d=T(a,b,c);d===q?delete a[b]:a[b]=d},T=function(a,b,c){var d,e=a[b];if("object"==typeof e&&e)if(s.call(e)==z)for(d=e.length;d--;)S(e,d,c);else p(e,function(a){S(e,a,c)});return c.call(a,b,e)};d.parse=function(a,b){var c,d;return L=0,M=""+a,c=R(Q()),"$"!=Q()&&P(),L=M=null,b&&s.call(b)==v?T((d={},d[""]=c,d),"",b):c}}}return d.runInContext=a,d}var b="function"==typeof define&&define.amd,c={"function":!0,object:!0},d=c[typeof exports]&&exports&&!exports.nodeType&&exports,e=c[typeof window]&&window||this,f=d&&c[typeof module]&&module&&!module.nodeType&&"object"==typeof global&&global;if(!f||f.global!==f&&f.window!==f&&f.self!==f||(e=f),d&&!b)a(e,d);else{var g=e.JSON,h=e.JSON3,i=!1,j=a(e,e.JSON3={noConflict:function(){return i||(i=!0,e.JSON=g,e.JSON3=h,g=h=null),j}});e.JSON={parse:j.parse,stringify:j.stringify}}b&&define(function(){return j})}).call(this),!function(a,b){function c(){this._events={},this._conf&&d.call(this,this._conf)}function d(a){a&&(this._conf=a,a.delimiter&&(this.delimiter=a.delimiter),a.maxListeners&&(this._events.maxListeners=a.maxListeners),a.wildcard&&(this.wildcard=a.wildcard),a.newListener&&(this.newListener=a.newListener),this.wildcard&&(this.listenerTree={}))}function e(a){this._events={},this.newListener=!1,d.call(this,a)}function f(a,b,c,d){if(!c)return[];var e,g,h,i,j,k,l,m=[],n=b.length,o=b[d],p=b[d+1];if(d===n&&c._listeners){if("function"==typeof c._listeners)return a&&a.push(c._listeners),[c];for(e=0,g=c._listeners.length;g>e;e++)a&&a.push(c._listeners[e]);return[c]}if("*"===o||"**"===o||c[o]){if("*"===o){for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&(m=m.concat(f(a,b,c[h],d+1)));return m}if("**"===o){l=d+1===n||d+2===n&&"*"===p,l&&c._listeners&&(m=m.concat(f(a,b,c,n)));for(h in c)"_listeners"!==h&&c.hasOwnProperty(h)&&("*"===h||"**"===h?(c[h]._listeners&&!l&&(m=m.concat(f(a,b,c[h],n))),m=m.concat(f(a,b,c[h],d))):m=h===p?m.concat(f(a,b,c[h],d+2)):m.concat(f(a,b,c[h],d)));return m}m=m.concat(f(a,b,c[o],d+1))}if(i=c["*"],i&&f(a,b,i,d+1),j=c["**"])if(n>d){j._listeners&&f(a,b,j,n);for(h in j)"_listeners"!==h&&j.hasOwnProperty(h)&&(h===p?f(a,b,j[h],d+2):h===o?f(a,b,j[h],d+1):(k={},k[h]=j[h],f(a,b,{"**":k},d+1)))}else j._listeners?f(a,b,j,n):j["*"]&&j["*"]._listeners&&f(a,b,j["*"],n);return m}function g(a,b){a="string"==typeof a?a.split(this.delimiter):a.slice();for(var c=0,d=a.length;d>c+1;c++)if("**"===a[c]&&"**"===a[c+1])return;for(var e=this.listenerTree,f=a.shift();f;){if(e[f]||(e[f]={}),e=e[f],0===a.length){if(e._listeners){if("function"==typeof e._listeners)e._listeners=[e._listeners,b];else if(h(e._listeners)&&(e._listeners.push(b),!e._listeners.warned)){var g=i;"undefined"!=typeof this._events.maxListeners&&(g=this._events.maxListeners),g>0&&e._listeners.length>g&&(e._listeners.warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",e._listeners.length),console.trace())}}else e._listeners=b;return!0}f=a.shift()}return!0}var h=Array.isArray?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},i=10;e.prototype.delimiter=".",e.prototype.setMaxListeners=function(a){this._events||c.call(this),this._events.maxListeners=a,this._conf||(this._conf={}),this._conf.maxListeners=a},e.prototype.event="",e.prototype.once=function(a,b){return this.many(a,1,b),this},e.prototype.many=function(a,b,c){function d(){0===--b&&e.off(a,d),c.apply(this,arguments)}var e=this;if("function"!=typeof c)throw new Error("many only accepts instances of Function");return d._origin=c,this.on(a,d),e},e.prototype.emit=function(){this._events||c.call(this);var a=arguments[0];if("newListener"===a&&!this.newListener&&!this._events.newListener)return!1;if(this._all){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(e=0,b=this._all.length;b>e;e++)this.event=a,this._all[e].apply(this,d)}if("error"===a&&!(this._all||this._events.error||this.wildcard&&this.listenerTree.error))throw arguments[1]instanceof Error?arguments[1]:new Error("Uncaught, unspecified 'error' event.");var g;if(this.wildcard){g=[];var h="string"==typeof a?a.split(this.delimiter):a.slice();f.call(this,g,h,this.listenerTree,0)}else g=this._events[a];if("function"==typeof g){if(this.event=a,1===arguments.length)g.call(this);else if(arguments.length>1)switch(arguments.length){case 2:g.call(this,arguments[1]);break;case 3:g.call(this,arguments[1],arguments[2]);break;default:for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];g.apply(this,d)}return!0}if(g){for(var b=arguments.length,d=new Array(b-1),e=1;b>e;e++)d[e-1]=arguments[e];for(var i=g.slice(),e=0,b=i.length;b>e;e++)this.event=a,i[e].apply(this,d);return i.length>0||this._all}return this._all},e.prototype.on=function(a,b){if("function"==typeof a)return this.onAny(a),this;if("function"!=typeof b)throw new Error("on only accepts instances of Function");if(this._events||c.call(this),this.emit("newListener",a,b),this.wildcard)return g.call(this,a,b),this;if(this._events[a]){if("function"==typeof this._events[a])this._events[a]=[this._events[a],b];else if(h(this._events[a])&&(this._events[a].push(b),!this._events[a].warned)){var d=i;"undefined"!=typeof this._events.maxListeners&&(d=this._events.maxListeners),d>0&&this._events[a].length>d&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),console.trace())}}else this._events[a]=b;return this},e.prototype.onAny=function(a){if(this._all||(this._all=[]),"function"!=typeof a)throw new Error("onAny only accepts instances of Function");return this._all.push(a),this},e.prototype.addListener=e.prototype.on,e.prototype.off=function(a,b){if("function"!=typeof b)throw new Error("removeListener only takes instances of Function");var c,d=[];if(this.wildcard){var e="string"==typeof a?a.split(this.delimiter):a.slice();d=f.call(this,null,e,this.listenerTree,0)}else{if(!this._events[a])return this;c=this._events[a],d.push({_listeners:c})}for(var g=0;gk;k++)if(c[k]===b||c[k].listener&&c[k].listener===b||c[k]._origin&&c[k]._origin===b){j=k;break}if(0>j)continue;return this.wildcard?i._listeners.splice(j,1):this._events[a].splice(j,1),0===c.length&&(this.wildcard?delete i._listeners:delete this._events[a]),this}(c===b||c.listener&&c.listener===b||c._origin&&c._origin===b)&&(this.wildcard?delete i._listeners:delete this._events[a])}return this},e.prototype.offAny=function(a){var b,c=0,d=0;if(a&&this._all&&this._all.length>0){for(b=this._all,c=0,d=b.length;d>c;c++)if(a===b[c])return b.splice(c,1),this}else this._all=[];return this},e.prototype.removeListener=e.prototype.off,e.prototype.removeAllListeners=function(a){if(0===arguments.length)return!this._events||c.call(this),this;if(this.wildcard)for(var b="string"==typeof a?a.split(this.delimiter):a.slice(),d=f.call(this,null,b,this.listenerTree,0),e=0;e9&&g>0,!0}function k(){if(!S){S=!0;for(var a=0;a'):(c=b.createElement("IFRAME"),c.name=a.props.name),c.id=c.name=a.props.name,delete a.props.name,"string"==typeof a.container&&(a.container=b.getElementById(a.container)),a.container||(u(c.style,{position:"absolute",top:"-2000px",left:"0px"}),a.container=b.body);var d=a.props.src;if(a.props.src="javascript:false",u(c,a.props),c.border=c.frameBorder=0,c.allowTransparency=!0,a.container.appendChild(c),a.onLoad&&E(c,"load",a.onLoad),a.usePost){var e,f=a.container.appendChild(b.createElement("form"));if(f.target=c.name,f.action=d,f.method="POST","object"==typeof a.usePost)for(var g in a.usePost)a.usePost.hasOwnProperty(g)&&(B?e=b.createElement(''):(e=b.createElement("INPUT"),e.name=g),e.value=a.usePost[g],f.appendChild(e));f.submit(),f.parentNode.removeChild(f)}else c.src=d;return a.props.src=d,c}function x(a,b){"string"==typeof a&&(a=[a]);for(var c,d=a.length;d--;)if(c=a[d],c=new RegExp("^"==c.substr(0,1)?c:"^"+c.replace(/(\*)/g,".$1").replace(/\?/g,".")+"$"),c.test(b))return!0;return!1}function y(d){var e,f=d.protocol;if(d.isHost=d.isHost||t(V.xdm_p),Q=d.hash||!1,d.props||(d.props={}),d.isHost)d.remote=r(d.remote),d.channel=d.channel||"default"+H++,d.secret=Math.random().toString(16).substring(2),t(f)&&(f=q(c.href)==q(d.remote)?"4":g(a,"postMessage")||g(b,"postMessage")?"1":d.swf&&g(a,"ActiveXObject")&&j()?"6":"Gecko"===navigator.product&&"frameElement"in a&&-1==navigator.userAgent.indexOf("WebKit")?"5":d.remoteHelper?"2":"0");else if(d.channel=V.xdm_c.replace(/["'<>\\]/g,""),d.secret=V.xdm_s,d.remote=V.xdm_e.replace(/["'<>\\]/g,""),f=V.xdm_p,d.acl&&!x(d.acl,d.remote))throw new Error("Access denied for "+d.remote);switch(d.protocol=f,f){case"0":if(u(d,{interval:100,delay:2e3,useResize:!0,useParent:!1,usePolling:!1},!0),d.isHost){if(!d.local){for(var h,i=c.protocol+"//"+c.host,k=b.body.getElementsByTagName("img"),l=k.length;l--;)if(h=k[l],h.src.substring(0,i.length)===i){d.local=h.src;break}d.local||(d.local=a)}var m={xdm_c:d.channel,xdm_p:0};d.local===a?(d.usePolling=!0,d.useParent=!0,d.local=c.protocol+"//"+c.host+c.pathname+c.search,m.xdm_e=d.local,m.xdm_pa=1):m.xdm_e=r(d.local),d.container&&(d.useResize=!1,m.xdm_po=1),d.remote=s(d.remote,m)}else u(d,{channel:V.xdm_c,remote:V.xdm_e,useParent:!t(V.xdm_pa),usePolling:!t(V.xdm_po),useResize:d.useParent?!1:d.useResize});e=[new N.stack.HashTransport(d),new N.stack.ReliableBehavior({}),new N.stack.QueueBehavior({encode:!0,maxLength:4e3-d.remote.length}),new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"1":e=[new N.stack.PostMessageTransport(d)];break;case"2":d.isHost&&(d.remoteHelper=r(d.remoteHelper)),e=[new N.stack.NameTransport(d),new N.stack.QueueBehavior,new N.stack.VerifyBehavior({initiate:d.isHost})];break;case"3":e=[new N.stack.NixTransport(d)];break;case"4":e=[new N.stack.SameOriginTransport(d)];break;case"5":e=[new N.stack.FrameElementTransport(d)];break;case"6":C||j(),e=[new N.stack.FlashTransport(d)]}return e.push(new N.stack.QueueBehavior({lazy:d.lazy,remove:!0})),e}function z(a){for(var b,c={incoming:function(a,b){this.up.incoming(a,b)},outgoing:function(a,b){this.down.outgoing(a,b)},callback:function(a){this.up.callback(a)},init:function(){this.down.init()},destroy:function(){this.down.destroy()}},d=0,e=a.length;e>d;d++)b=a[d],u(b,c,!0),0!==d&&(b.down=a[d-1]),d!==e-1&&(b.up=a[d+1]);return b}function A(a){a.up.down=a.down,a.down.up=a.up,a.up=a.down=null}var B,C,D,E,F,G=this,H=Math.floor(1e4*Math.random()),I=Function.prototype,J=/^((http.?:)\/\/([^:\/\s]+)(:\d+)*)/,K=/[\-\w]+\/\.\.\//,L=/([^:])\/\//g,M="",N={},O=a.easyXDM,P="easyXDM_",Q=!1;if(g(a,"addEventListener"))E=function(a,b,c){a.addEventListener(b,c,!1)},F=function(a,b,c){a.removeEventListener(b,c,!1)};else{if(!g(a,"attachEvent"))throw new Error("Browser not supported");E=function(a,b,c){a.attachEvent("on"+b,c)},F=function(a,b,c){a.detachEvent("on"+b,c)}}var R,S=!1,T=[];if("readyState"in b?(R=b.readyState,S="complete"==R||~navigator.userAgent.indexOf("AppleWebKit/")&&("loaded"==R||"interactive"==R)):S=!!b.body,!S){if(g(a,"addEventListener"))E(b,"DOMContentLoaded",k);else if(E(b,"readystatechange",function(){"complete"==b.readyState&&k()}),b.documentElement.doScroll&&a===top){var U=function(){if(!S){try{b.documentElement.doScroll("left")}catch(a){return void d(U,1)}k()}};U()}E(a,"load",k)}var V=function(a){a=a.substring(1).split("&");for(var b,c={},d=a.length;d--;)b=a[d].split("="),c[b[0]]=e(b[1]);return c}(/xdm_e=/.test(c.search)?c.search:c.hash),W=function(){var a={},b={a:[1,2,3]},c='{"a":[1,2,3]}';return"undefined"!=typeof JSON&&"function"==typeof JSON.stringify&&JSON.stringify(b).replace(/\s/g,"")===c?JSON:(Object.toJSON&&Object.toJSON(b).replace(/\s/g,"")===c&&(a.stringify=Object.toJSON),"function"==typeof String.prototype.evalJSON&&(b=c.evalJSON(),b.a&&3===b.a.length&&3===b.a[2]&&(a.parse=function(a){return a.evalJSON()})),a.stringify&&a.parse?(W=function(){return a},a):null)};u(N,{version:"2.4.19.3",query:V,stack:{},apply:u,getJSONObject:W,whenReady:l,noConflict:n}),N.DomHelper={on:E,un:F,requiresJSON:function(c){h(a,"JSON")||b.write('')}},function(){var a={};N.Fn={set:function(b,c){a[b]=c},get:function(b,c){if(a.hasOwnProperty(b)){var d=a[b];return c&&delete a[b],d}}}}(),N.Socket=function(a){var b=z(y(a).concat([{incoming:function(b,c){a.onMessage(b,c)},callback:function(b){a.onReady&&a.onReady(b)}}])),c=q(a.remote);this.origin=q(a.remote),this.destroy=function(){b.destroy()},this.postMessage=function(a){b.outgoing(a,c)},b.init()},N.Rpc=function(a,b){if(b.local)for(var c in b.local)if(b.local.hasOwnProperty(c)){var d=b.local[c];"function"==typeof d&&(b.local[c]={method:d})}var e=z(y(a).concat([new N.stack.RpcBehavior(this,b),{callback:function(b){a.onReady&&a.onReady(b)}}]));this.origin=q(a.remote),this.destroy=function(){e.destroy()},e.init()},N.stack.SameOriginTransport=function(a){var b,e,f,g;return b={outgoing:function(a,b,c){f(a),c&&c()},destroy:function(){e&&(e.parentNode.removeChild(e),e=null)},onDOMReady:function(){g=q(a.remote),a.isHost?(u(a.props,{src:s(a.remote,{xdm_e:c.protocol+"//"+c.host+c.pathname,xdm_c:a.channel,xdm_p:4}),name:P+a.channel+"_provider"}),e=w(a),N.Fn.set(a.channel,function(a){return f=a,d(function(){b.up.callback(!0)},0),function(a){b.up.incoming(a,g)}})):(f=m().Fn.get(a.channel,!0)(function(a){b.up.incoming(a,g)}),d(function(){b.up.callback(!0)},0))},init:function(){l(b.onDOMReady,b)}}},N.stack.FlashTransport=function(a){function e(a,b){d(function(){h.up.incoming(a,j)},0)}function g(c){var d=a.swf+"?host="+a.isHost,e="easyXDM_swf_"+Math.floor(1e4*Math.random());N.Fn.set("flash_loaded"+c.replace(/[\-.]/g,"_"),function(){N.stack.FlashTransport[c].swf=k=m.firstChild;for(var a=N.stack.FlashTransport[c].queue,b=0;b"}var h,i,j,k,m;return h={outgoing:function(b,c,d){k.postMessage(a.channel,b.toString()),d&&d()},destroy:function(){try{k.destroyChannel(a.channel)}catch(b){}k=null,i&&(i.parentNode.removeChild(i),i=null)},onDOMReady:function(){j=a.remote,N.Fn.set("flash_"+a.channel+"_init",function(){d(function(){h.up.callback(!0)})}),N.Fn.set("flash_"+a.channel+"_onMessage",e),a.swf=r(a.swf);var b=o(a.swf),f=function(){N.stack.FlashTransport[b].init=!0,k=N.stack.FlashTransport[b].swf,k.createChannel(a.channel,a.secret,q(a.remote),a.isHost),a.isHost&&(D&&a.swfNoThrottle&&u(a.props,{position:"fixed",right:0,top:0,height:"20px",width:"20px"}),u(a.props,{src:s(a.remote,{xdm_e:q(c.href),xdm_c:a.channel,xdm_p:6,xdm_s:a.secret}),name:P+a.channel+"_provider"}),i=w(a))};N.stack.FlashTransport[b]&&N.stack.FlashTransport[b].init?f():N.stack.FlashTransport[b]?N.stack.FlashTransport[b].queue.push(f):(N.stack.FlashTransport[b]={queue:[f]},g(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.PostMessageTransport=function(b){function e(a){if(a.origin)return q(a.origin);if(a.uri)return q(a.uri);if(a.domain)return c.protocol+"//"+a.domain;throw"Unable to retrieve the origin of the event"}function f(a){var c=e(a);c==j&&a.data.substring(0,b.channel.length+1)==b.channel+" "&&g.up.incoming(a.data.substring(b.channel.length+1),c)}var g,h,i,j;return g={outgoing:function(a,c,d){i.postMessage(b.channel+" "+a,c||j),d&&d()},destroy:function(){F(a,"message",f),h&&(i=null,h.parentNode.removeChild(h),h=null)},onDOMReady:function(){if(j=q(b.remote),b.isHost){var e=function(c){c.data==b.channel+"-ready"&&(i="postMessage"in h.contentWindow?h.contentWindow:h.contentWindow.document,F(a,"message",e),E(a,"message",f),d(function(){g.up.callback(!0)},0))};E(a,"message",e),u(b.props,{src:s(b.remote,{xdm_e:q(c.href),xdm_c:b.channel,xdm_p:1}),name:P+b.channel+"_provider"}),h=w(b)}else E(a,"message",f),i="postMessage"in a.parent?a.parent:a.parent.document,i.postMessage(b.channel+"-ready",j),d(function(){g.up.callback(!0)},0)},init:function(){l(g.onDOMReady,g)}}},N.stack.FrameElementTransport=function(e){var f,g,h,i;return f={outgoing:function(a,b,c){h.call(this,a),c&&c()},destroy:function(){g&&(g.parentNode.removeChild(g),g=null)},onDOMReady:function(){i=q(e.remote),e.isHost?(u(e.props,{src:s(e.remote,{xdm_e:q(c.href),xdm_c:e.channel,xdm_p:5}),name:P+e.channel+"_provider"}),g=w(e),g.fn=function(a){return delete g.fn,h=a,d(function(){f.up.callback(!0)},0),function(a){f.up.incoming(a,i)}}):(b.referrer&&q(b.referrer)!=V.xdm_e&&(a.top.location=V.xdm_e),h=a.frameElement.fn(function(a){f.up.incoming(a,i)}),f.up.callback(!0))},init:function(){l(f.onDOMReady,f)}}},N.stack.NameTransport=function(a){function b(b){var c=a.remoteHelper+(h?"#_3":"#_2")+a.channel;i.contentWindow.sendMessage(b,c)}function c(){h?2!==++k&&h||g.up.callback(!0):(b("ready"),g.up.callback(!0))}function e(a){g.up.incoming(a,n)}function f(){m&&d(function(){m(!0)},0)}var g,h,i,j,k,m,n,o;return g={outgoing:function(a,c,d){m=d,b(a)},destroy:function(){i.parentNode.removeChild(i),i=null,h&&(j.parentNode.removeChild(j),j=null)},onDOMReady:function(){h=a.isHost,k=0,n=q(a.remote),a.local=r(a.local),h?(N.Fn.set(a.channel,function(b){h&&"ready"===b&&(N.Fn.set(a.channel,e),c())}),o=s(a.remote,{xdm_e:a.local,xdm_c:a.channel,xdm_p:2}),u(a.props,{src:o+"#"+a.channel,name:P+a.channel+"_provider"}),j=w(a)):(a.remoteHelper=a.remote,N.Fn.set(a.channel,e));var b=function(){var e=i||this;F(e,"load",b),N.Fn.set(a.channel+"_load",f),function g(){"function"==typeof e.contentWindow.sendMessage?c():d(g,50)}()};i=w({props:{src:a.local+"#_4"+a.channel},onLoad:b})},init:function(){l(g.onDOMReady,g)}}},N.stack.HashTransport=function(b){function c(a){if(p){var c=b.remote+"#"+n++ +"_"+a;(i||!r?p.contentWindow:p).location=c}}function e(a){m=a,h.up.incoming(m.substring(m.indexOf("_")+1),s)}function f(){if(o){var a=o.location.href,b="",c=a.indexOf("#");-1!=c&&(b=a.substring(c)),b&&b!=m&&e(b)}}function g(){j=setInterval(f,k)}var h,i,j,k,m,n,o,p,r,s;return h={outgoing:function(a,b){c(a)},destroy:function(){a.clearInterval(j),(i||!r)&&p.parentNode.removeChild(p),p=null},onDOMReady:function(){if(i=b.isHost,k=b.interval,m="#"+b.channel,n=0,r=b.useParent,s=q(b.remote),i){if(u(b.props,{src:b.remote,name:P+b.channel+"_provider"}),r)b.onLoad=function(){o=a,g(),h.up.callback(!0)};else{var c=0,e=b.delay/50;!function f(){if(++c>e)throw new Error("Unable to reference listenerwindow");try{o=p.contentWindow.frames[P+b.channel+"_consumer"]}catch(a){}o?(g(),h.up.callback(!0)):d(f,50)}()}p=w(b)}else o=a,g(),r?(p=parent,h.up.callback(!0)):(u(b,{props:{src:b.remote+"#"+b.channel+new Date,name:P+b.channel+"_consumer"},onLoad:function(){h.up.callback(!0)}}),p=w(b))},init:function(){l(h.onDOMReady,h)}}},N.stack.ReliableBehavior=function(a){var b,c,d=0,e=0,f="";return b={incoming:function(a,g){var h=a.indexOf("_"),i=a.substring(0,h).split(",");a=a.substring(h+1),i[0]==d&&(f="",c&&c(!0)),a.length>0&&(b.down.outgoing(i[1]+","+d+"_"+f,g),e!=i[1]&&(e=i[1],b.up.incoming(a,g)))},outgoing:function(a,g,h){f=a,c=h,b.down.outgoing(e+","+ ++d+"_"+a,g)}}},N.stack.QueueBehavior=function(a){function b(){if(a.remove&&0===h.length)return void A(c);if(!i&&0!==h.length&&!g){i=!0;var e=h.shift();c.down.outgoing(e.data,e.origin,function(a){i=!1,e.callback&&d(function(){e.callback(a)},0),b()})}}var c,g,h=[],i=!0,j="",k=0,l=!1,m=!1;return c={init:function(){t(a)&&(a={}),a.maxLength&&(k=a.maxLength,m=!0),a.lazy?l=!0:c.down.init()},callback:function(a){i=!1;var d=c.up;b(),d.callback(a)},incoming:function(b,d){if(m){var f=b.indexOf("_"),g=parseInt(b.substring(0,f),10);j+=b.substring(f+1),0===g&&(a.encode&&(j=e(j)),c.up.incoming(j,d),j="")}else c.up.incoming(b,d)},outgoing:function(d,e,g){a.encode&&(d=f(d));var i,j=[];if(m){for(;0!==d.length;)i=d.substring(0,k),d=d.substring(i.length),j.push(i);for(;i=j.shift();)h.push({data:j.length+"_"+i,origin:e,callback:0===j.length?g:null})}else h.push({data:d,origin:e,callback:g});l?c.down.init():b()},destroy:function(){g=!0,c.down.destroy()}}},N.stack.VerifyBehavior=function(a){function b(){d=Math.random().toString(16).substring(2),c.down.outgoing(d)}var c,d,e;return c={incoming:function(f,g){var h=f.indexOf("_");-1===h?f===d?c.up.callback(!0):e||(e=f,a.initiate||b(),c.down.outgoing(f)):f.substring(0,h)===e&&c.up.incoming(f.substring(h+1),g)},outgoing:function(a,b,e){c.down.outgoing(d+"_"+a,b,e)},callback:function(c){a.initiate&&b()}}},N.stack.RpcBehavior=function(a,b){function c(a){a.jsonrpc="2.0",f.down.outgoing(g.stringify(a))}function d(a,b){var d=Array.prototype.slice;return function(){var e,f=arguments.length,g={method:b};f>0&&"function"==typeof arguments[f-1]?(f>1&&"function"==typeof arguments[f-2]?(e={success:arguments[f-2],error:arguments[f-1]},g.params=d.call(arguments,0,f-2)):(e={success:arguments[f-1]},g.params=d.call(arguments,0,f-1)),j[""+ ++h]=e,g.id=h):g.params=d.call(arguments,0),a.namedParams&&1===g.params.length&&(g.params=g.params[0]),c(g)}}function e(a,b,d,e){if(!d)return void(b&&c({id:b,error:{code:-32601,message:"Procedure not found."}}));var f,g;b?(f=function(a){f=I,c({id:b,result:a})},g=function(a,d){g=I;var e={id:b,error:{code:-32099,message:a}};d&&(e.error.data=d),c(e)}):f=g=I,i(e)||(e=[e]);try{var h=d.method.apply(d.scope,e.concat([f,g]));t(h)||f(h)}catch(j){g(j.message)}}var f,g=b.serializer||W(),h=0,j={};return f={incoming:function(a,d){ var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.method],f.params);else{var h=j[f.id];f.error?h.error&&h.error(f.error):h.success&&h.success(f.result),delete j[f.id]}},init:function(){if(b.remote)for(var c in b.remote)b.remote.hasOwnProperty(c)&&(a[c]=d(b.remote[c],c));f.down.init()},destroy:function(){for(var c in b.remote)b.remote.hasOwnProperty(c)&&a.hasOwnProperty(c)&&delete a[c];f.down.destroy()}}},G.easyXDM=N}(window,document,location,window.setTimeout,decodeURIComponent,encodeURIComponent);/*! - * F2 v1.4.2 05-10-2017 + * F2 v1.4.2 05-11-2017 * Copyright (c) 2014 Markit On Demand, Inc. http://www.openf2.org * * "F2" is licensed under the Apache License, Version 2.0 (the "License"); @@ -28,4 +28,4 @@ var f=g.parse(a);if(f.method)b.handle?b.handle(f,c):e(f.method,f.id,b.local[f.me * in the terms and conditions related to the specific Third Party Material, if any. * */ -var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file +var F2;F2=function(){var a=function(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null},b=function(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null};return{appConfigReplacer:function(a,b){return"root"==a||"ui"==a||"height"==a?void 0:b},Apps:{},extend:function(a,b,c){var d="function"==typeof b,e=a?a.split("."):[],f=this;b=b||{},"F2"===e[0]&&(e=e.slice(1));for(var g=0,h=e.length;h>g;g++)f[e[g]]||(f[e[g]]=d&&g+1==h?b:{}),f=f[e[g]];if(!d)for(var i in b)("undefined"==typeof f[i]||c)&&(f[i]=b[i]);return f},guid:function(){var a=function(){return(65536*(1+Math.random())|0).toString(16).substring(1)};return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},inArray:function(a,b){return jQuery.inArray(a,b)>-1},isLocalRequest:function(b){var c,d,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,f=b.toLowerCase(),g=e.exec(f);try{c=location.href}catch(h){c=document.createElement("a"),c.href="",c=c.href}c=c.toLowerCase(),g||(f=a(c,f).toLowerCase(),g=e.exec(f)),d=e.exec(c)||[];var i=!(g&&(g[1]!==d[1]||g[2]!==d[2]||(g[3]||("http:"===g[1]?"80":"443"))!==(d[3]||("http:"===d[1]?"80":"443"))));return i},isNativeDOMNode:function(a){var b="object"==typeof Node?a instanceof Node:a&&"object"==typeof a&&"number"==typeof a.nodeType&&"string"==typeof a.nodeName,c="object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName;return b||c},log:function(){for(var a,b,c,d="log",e=function(){},f=["assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","log","markTimeline","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"],g=f.length,h=window.console=window.console||{};g--;)b=f[g],h[b]||(h[b]=e),arguments&&arguments.length>1&&arguments[0]==b&&(d=b,c=Array.prototype.slice.call(arguments,1));a=Function.prototype.bind?Function.prototype.bind.call(h[d],h):function(){Function.prototype.apply.call(h[d],h,c||arguments)},a.apply(this,c||arguments)},parse:function(a){return JSON.parse(a)},stringify:function(a,b,c){return JSON.stringify(a,b,c)},version:function(){return"1.4.2"}}}(),F2.extend("AppHandlers",function(){var a=F2.guid(),b=F2.guid(),c={appManifestRequestFail:[],appCreateRoot:[],appRenderBefore:[],appDestroyBefore:[],appRenderAfter:[],appDestroyAfter:[],appRender:[],appDestroy:[],appScriptLoadFailed:[]},d={appRender:function(a,b){var c=null;F2.isNativeDOMNode(a.root)?(c=jQuery(a.root),c.append(b)):(a.root=jQuery(b).get(0),c=jQuery(a.root)),jQuery("body").append(c)},appDestroy:function(a){a&&a.app&&a.app.destroy&&"function"==typeof a.app.destroy?a.app.destroy():a&&a.app&&a.app.destroy&&F2.log(a.config.appId+" has a destroy property, but destroy is not of type function and as such will not be executed."),jQuery(a.config.root).fadeOut(500,function(){jQuery(this).remove()})}},e=function(a,b,c,d){f(a);var e={func:c,namespace:b,domNode:F2.isNativeDOMNode(c)?c:null};if(!e.func&&!e.domNode)throw"Invalid or null argument passed. Handler will not be added to collection. A valid dom element or callback function is required.";if(e.domNode&&!d)throw"Invalid argument passed. Handler will not be added to collection. A callback function is required for this event type.";return e},f=function(c){if(a!=c&&b!=c)throw"Invalid token passed. Please verify that you have correctly received and stored token from F2.AppHandlers.getToken()."},g=function(a,b,d){if(f(a),d||b)if(!d&&b)c[b]=[];else if(d&&!b){d=d.toLowerCase();for(var e in c){for(var g=c[e],h=[],i=0,j=g.length;j>i;i++){var k=g[i];k&&(k.namespace&&k.namespace.toLowerCase()==d||h.push(k))}g=h}}else if(d&&c[b]){d=d.toLowerCase();for(var l=[],m=0,n=c[b].length;n>m;m++){var o=c[b][m];o&&(o.namespace&&o.namespace.toLowerCase()==d||l.push(o))}c[b]=l}};return{getToken:function(){return delete this.getToken,a},__f2GetToken:function(){return delete this.__f2GetToken,b},__trigger:function(a,e){if(a!=b)throw"Token passed is invalid. Only F2 is allowed to call F2.AppHandlers.__trigger().";if(!c||!c[e])throw"Invalid EventKey passed. Check your inputs and try again.";for(var f=[],g=2,h=arguments.length;h>g;g++)f.push(arguments[g]);if(0===c[e].length&&d[e])return d[e].apply(F2,f),this;if(0===c[e].length&&!c[e])return this;for(var i=0,j=c[e].length;j>i;i++){var k=c[e][i];if(k.domNode&&arguments[2]&&arguments[2].root&&arguments[3]){var l=jQuery(arguments[2].root).append(arguments[3]);jQuery(k.domNode).append(l)}else k.domNode&&arguments[2]&&!arguments[2].root&&arguments[3]?(arguments[2].root=jQuery(arguments[3]).get(0),jQuery(k.domNode).append(arguments[2].root)):k.func.apply(F2,f)}return this},on:function(a,b,d){var f=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var g=b.split(".");b=g[0],f=g[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return c[b].push(e(a,f,d,"appRender"==b)),this},off:function(a,b){var d=null;if(!b)throw"eventKey must be of type string and not null. For available appHandlers check F2.Constants.AppHandlers.";if(b.indexOf(".")>-1){var e=b.split(".");b=e[0],d=e[1]}if(!c||!c[b])throw"Invalid EventKey passed. Check your inputs and try again.";return g(a,b,d),this}}}()),F2.extend("Constants",{AppHandlers:function(){return{APP_MANIFEST_REQUEST_FAIL:"appManifestRequestFail",APP_CREATE_ROOT:"appCreateRoot",APP_RENDER_BEFORE:"appRenderBefore",APP_RENDER:"appRender",APP_RENDER_AFTER:"appRenderAfter",APP_DESTROY_BEFORE:"appDestroyBefore",APP_DESTROY:"appDestroy",APP_DESTROY_AFTER:"appDestroyAfter",APP_SCRIPT_LOAD_FAILED:"appScriptLoadFailed"}}()}),F2.extend("",{App:function(a,b,c){return{init:function(){}}},AppConfig:{appId:"",context:{},enableBatchRequests:!1,height:0,instanceId:"",isSecure:!1,containerLocale:null,localeSupport:[],manifestUrl:"",maxWidth:0,minGridSize:4,minWidth:300,name:"",root:void 0,ui:void 0,views:[]},AppManifest:{apps:[],inlineScripts:[],scripts:[],styles:[]},AppContent:{data:{},html:"",status:""},ContainerConfig:{afterAppRender:function(a,b){},appRender:function(a,b){},beforeAppRender:function(a){},debugMode:!1,locale:null,scriptErrorTimeout:7e3,isSecureAppPage:!1,secureAppPagePath:"",supportedViews:[],UI:{Mask:{backgroundColor:"#FFF",loadingIcon:"",opacity:.6,useClasses:!1,zIndex:2}},xhr:{dataType:function(a,b){},type:function(a,b){},url:function(a,b){}},loadScripts:function(a,b,c){},loadStyles:function(a,b){}}}),F2.extend("Constants",{Css:function(){var a="f2-";return{APP:a+"app",APP_CONTAINER:a+"app-container",APP_TITLE:a+"app-title",APP_VIEW:a+"app-view",APP_VIEW_TRIGGER:a+"app-view-trigger",MASK:a+"mask",MASK_CONTAINER:a+"mask-container"}}(),Events:function(){var a="App.",b="Container.";return{APP_SCRIPTS_LOADED:a+"scriptsLoaded",APP_SYMBOL_CHANGE:a+"symbolChange",APP_WIDTH_CHANGE:a+"widthChange.",CONTAINER_SYMBOL_CHANGE:b+"symbolChange",CONTAINER_WIDTH_CHANGE:b+"widthChange",CONTAINER_LOCALE_CHANGE:b+"localeChange",RESOURCE_FAILED_TO_LOAD:b+"resourceFailedToLoad"}}(),JSONP_CALLBACK:"F2_jsonpCallback_",AppStatus:{ERROR:"ERROR",SUCCESS:"SUCCESS"},Sockets:{EVENT:"__event__",LOAD:"__socketLoad__",RPC:"__rpc__",RPC_CALLBACK:"__rpcCallback__",UI_RPC:"__uiRpc__"},Views:{DATA_ATTRIBUTE:"data-f2-view",ABOUT:"about",HELP:"help",HOME:"home",REMOVE:"remove",SETTINGS:"settings"}}),F2.extend("Events",function(){var a=new EventEmitter2({wildcard:!0});return a.setMaxListeners(0),{_socketEmit:function(){return EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},emit:function(){return F2.Rpc.broadcast(F2.Constants.Sockets.EVENT,[].slice.call(arguments)),EventEmitter2.prototype.emit.apply(a,[].slice.call(arguments))},many:function(b,c,d){return a.many(b,c,d)},off:function(b,c){return a.off(b,c)},on:function(b,c){return a.on(b,c)},once:function(b,c){return a.once(b,c)}}}()),F2.extend("Rpc",function(){var a={},b="",c={},d=new RegExp("^"+F2.Constants.Sockets.EVENT),e=new RegExp("^"+F2.Constants.Sockets.RPC),f=new RegExp("^"+F2.Constants.Sockets.RPC_CALLBACK),g=new RegExp("^"+F2.Constants.Sockets.LOAD),h=new RegExp("^"+F2.Constants.Sockets.UI_RPC),i=function(){var a,b=!1,d=[],e=new easyXDM.Socket({onMessage:function(f,h){if(!b&&g.test(f)){f=f.replace(g,"");var i=F2.parse(f);2==i.length&&(a=i[0],c[a.instanceId]={config:a,socket:e},F2.registerApps([a],[i[1]]),jQuery.each(d,function(b,c){l(a,f,h)}),b=!0)}else b?l(a,f,h):d.push(f)}})},j=function(a,c){var d=jQuery(a.root);if(d.is("."+F2.Constants.Css.APP_CONTAINER)||d.find("."+F2.Constants.Css.APP_CONTAINER),!d.length)return void F2.log("Unable to locate app in order to establish secure connection.");var e={scrolling:"no",style:{width:"100%"}};a.height&&(e.style.height=a.height+"px");var f=new easyXDM.Socket({remote:b,container:d.get(0),props:e,onMessage:function(b,c){l(a,b,c)},onReady:function(){f.postMessage(F2.Constants.Sockets.LOAD+F2.stringify([a,c],F2.appConfigReplacer))}});return f},k=function(a,b){return function(){F2.Rpc.call(a,F2.Constants.Sockets.RPC_CALLBACK,b,[].slice.call(arguments).slice(2))}},l=function(b,c,g){function i(a,b){for(var c=String(b).split("."),d=0;d','","
    "].join("")};return{hideMask:function(a){F2.UI.hideMask(b.instanceId,a)},Modals:function(){var a=function(a){return e("Alert",a)},c=function(a){return e("Confirm",a,!0)};return{alert:function(c,d){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.alert",[].slice.call(arguments)):jQuery(a(c)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-primary").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.alert()")},confirm:function(a,d,e){return F2.isInit()?void(F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Modals.confirm",[].slice.call(arguments)):jQuery(c(a)).on("show.bs.modal",function(){var a=this;jQuery(a).find(".btn-ok").on("click",function(){jQuery(a).modal("hide").remove(),(d||jQuery.noop)()}),jQuery(a).find(".btn-cancel").on("click",function(){jQuery(a).modal("hide").remove(),(e||jQuery.noop)()})}).modal({backdrop:!0})):void F2.log("F2.init() must be called before F2.UI.Modals.confirm()")}}}(),setTitle:function(a){F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"setTitle",[a]):jQuery(b.root).find("."+F2.Constants.Css.APP_TITLE).text(a)},showMask:function(a,c){F2.UI.showMask(b.instanceId,a,c)},updateHeight:d,Views:function(){var a=new EventEmitter2,e=/change/i;a.setMaxListeners(0);var f=function(a){return e.test(a)?!0:(F2.log('"'+a+'" is not a valid F2.UI.Views event name'),!1)};return{change:function(e){"function"==typeof e?this.on("change",e):"string"==typeof e&&(b.isSecure&&!F2.Rpc.isRemote(b.instanceId)?F2.Rpc.call(b.instanceId,F2.Constants.Sockets.UI_RPC,"Views.change",[].slice.call(arguments)):F2.inArray(e,b.views)&&(jQuery("."+F2.Constants.Css.APP_VIEW,c).addClass("hide").filter('[data-f2-view="'+e+'"]',c).removeClass("hide"),d(),a.emit("change",e)))},off:function(b,c){f(b)&&a.off(b,c)},on:function(b,c){f(b)&&a.on(b,c)}}}()}};return b.hideMask=function(a,b){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.hideMask()");if(F2.Rpc.isRemote(a)&&!jQuery(b).is("."+F2.Constants.Css.APP))F2.Rpc.call(a,F2.Constants.Sockets.RPC,"F2.UI.hideMask",[a,jQuery(b).selector]);else{var c=jQuery(b);c.find("> ."+F2.Constants.Css.MASK).remove(),c.removeClass(F2.Constants.Css.MASK_CONTAINER),c.data(F2.Constants.Css.MASK_CONTAINER)&&c.css({position:"static"})}},b.init=function(b){a=b,a.UI=jQuery.extend(!0,{},F2.ContainerConfig.UI,a.UI||{})},b.showMask=function(b,c,d){if(!F2.isInit())return void F2.log("F2.init() must be called before F2.UI.showMask()");if(F2.Rpc.isRemote(b)&&jQuery(c).is("."+F2.Constants.Css.APP))F2.Rpc.call(b,F2.Constants.Sockets.RPC,"F2.UI.showMask",[b,jQuery(c).selector,d]);else{d&&!a.UI.Mask.loadingIcon&&F2.log("Unable to display loading icon. Please set F2.ContainerConfig.UI.Mask.loadingIcon when calling F2.init();");var e=jQuery(c).addClass(F2.Constants.Css.MASK_CONTAINER),f=jQuery("
    ").height("100%").width("100%").addClass(F2.Constants.Css.MASK);a.UI.Mask.useClasses||f.css({"background-color":a.UI.Mask.backgroundColor,"background-image":a.UI.Mask.loadingIcon?"url("+a.UI.Mask.loadingIcon+")":"","background-position":"50% 50%","background-repeat":"no-repeat",display:"block",left:0,"min-height":30,padding:0,position:"absolute",top:0,"z-index":a.UI.Mask.zIndex,filter:"alpha(opacity="+100*a.UI.Mask.opacity+")",opacity:a.UI.Mask.opacity}),"static"===e.css("position")&&(e.css({position:"relative"}),e.data(F2.Constants.Css.MASK_CONTAINER,!0)),e.append(f)}},b}()),F2.extend("",function(){var _apps={},_config=!1,_bUsesAppHandlers=!1,_sAppHandlerToken=F2.AppHandlers.__f2GetToken(),_loadingScripts={},_afterAppRender=function(a,b){var c=_config.afterAppRender||function(a,b){return jQuery(b).appendTo("body")},d=c(a,b);return _config.afterAppRender&&!d?void F2.log("F2.ContainerConfig.afterAppRender() must return the DOM Element that contains the app"):(jQuery(d).addClass(F2.Constants.Css.APP),d.get(0))},_appRender=function(a,b){return b=_outerHtml(jQuery(b).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId)),_config.appRender&&(b=_config.appRender(a,b)),_outerHtml(b)},_beforeAppRender=function(a){var b=_config.beforeAppRender||jQuery.noop;return b(a)},_appScriptLoadFailed=function(a,b){var c=_config.appScriptLoadFailed||jQuery.noop;return c(a,b)},_createAppConfig=function(a){return a=jQuery.extend(!0,{},a),a.instanceId=a.instanceId||F2.guid(),a.views=a.views||[],F2.inArray(F2.Constants.Views.HOME,a.views)||a.views.push(F2.Constants.Views.HOME),F2.ContainerConfig.locale&&(a.containerLocale=F2.ContainerConfig.locale),a},_getAppConfigFromElement=function(a){var b;if(a){var c=a.getAttribute("data-f2-appid"),d=a.getAttribute("data-f2-manifesturl");if(c&&d){b={appId:c,enableBatchRequests:a.hasAttribute("data-f2-enablebatchrequests"),isSecure:a.hasAttribute("data-f2-issecure"),manifestUrl:d,root:a};var e=a.getAttribute("data-f2-context");if(e)try{b.context=F2.parse(e)}catch(f){console.warn('F2: "data-f2-context" of node is not valid JSON','"'+f+'"')}}}return b},_hasNonTextChildNodes=function(a){var b=!1;if(a.hasChildNodes())for(var c=0,d=a.childNodes.length;d>c;c++)if(1===a.childNodes[c].nodeType){b=!0;break}return b},_hydrateContainerConfig=function(a){a.scriptErrorTimeout||(a.scriptErrorTimeout=F2.ContainerConfig.scriptErrorTimeout),a.debugMode!==!0&&(a.debugMode=F2.ContainerConfig.debugMode),a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)},_initAppEvents=function(a){jQuery(a.root).on("click","."+F2.Constants.Css.APP_VIEW_TRIGGER+"["+F2.Constants.Views.DATA_ATTRIBUTE+"]",function(b){b.preventDefault();var c=jQuery(this).attr(F2.Constants.Views.DATA_ATTRIBUTE).toLowerCase();c==F2.Constants.Views.REMOVE?F2.removeApp(a.instanceId):a.ui.Views.change(c)})},_initContainerEvents=function(){var a,b=function(){F2.Events.emit(F2.Constants.Events.CONTAINER_WIDTH_CHANGE)};jQuery(window).on("resize",function(){clearTimeout(a),a=setTimeout(b,100)}),F2.Events.on(F2.Constants.Events.CONTAINER_LOCALE_CHANGE,function(a){a.locale&&"string"==typeof a.locale&&(F2.ContainerConfig.locale=a.locale)})},_isPlaceholderElement=function(a){return F2.isNativeDOMNode(a)&&!_hasNonTextChildNodes(a)&&!!a.getAttribute("data-f2-appid")&&!!a.getAttribute("data-f2-manifesturl")},_isInit=function(){return!!_config},_createAppInstance=function(a,b){a.ui=new F2.UI(a),void 0!==F2.Apps[a.appId]&&("function"==typeof F2.Apps[a.appId]?setTimeout(function(){_apps[a.instanceId].app=new F2.Apps[a.appId](a,b,a.root),void 0!==_apps[a.instanceId].app.init&&_apps[a.instanceId].app.init()},0):F2.log("app initialization class is defined but not a function. ("+a.appId+")"))},_loadApps=function(appConfigs,appManifest){if(appConfigs=[].concat(appConfigs),1==appConfigs.length&&appConfigs[0].isSecure&&!_config.isSecureAppPage)return void _loadSecureApp(appConfigs[0],appManifest);if(appConfigs.length!=appManifest.apps.length)return void F2.log("The number of apps defined in the AppManifest do not match the number requested.",appManifest);var _findExistingScripts=function(){return jQuery("script[src]").map(function(a,b){return b.src})},_findExistingStyles=function(){return jQuery("link[href]").map(function(a,b){return b.href})},_loadStyles=function(a,b){var c=_findExistingStyles();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadStyles)return _config.loadStyles(a,b);var d=null,e=!!document.createStyleSheet;jQuery.each(a,function(a,b){e?document.createStyleSheet(b):(d=d||[],d.push(''))}),d&&jQuery("head").append(d.join("")),b()},_loadScripts=function(a,b){var c=_findExistingScripts();if(a=jQuery.grep(a,function(a){return a&&-1===jQuery.inArray(a,c)}),_config.loadScripts)return _config.loadScripts(a,b);if(!a.length)return b();var d=window.document,e=a.length,f=0,g=d&&(d.head||d.getElementsByTagName("head")[0]),h=g&&g.getElementsByTagName("base")[0]||null,i="addEventListener"in window?{}:{loaded:!0,complete:!0},j=function(a){setTimeout(function(){var b={src:a.target.src,appId:appConfigs[0].appId};F2.log("Script defined in '"+b.appId+"' failed to load '"+b.src+"'"),F2.Events.emit(F2.Constants.Events.RESOURCE_FAILED_TO_LOAD,b),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],b.src):_appScriptLoadFailed(appConfigs[0],b.src)},_config.scriptErrorTimeout)},k=function(){++f===e&&b()},l=function(a,b){var c,d=_loadingScripts[a];if(d){for(var e=0;ei;i++)try{eval(inlines[i])}catch(exception){F2.log("Error loading inline script: "+exception+"\n\n"+inlines[i]),F2.Events.emit("RESOURCE_FAILED_TO_LOAD",{appId:appConfigs[0].appId,src:inlines[i],err:exception}),_bUsesAppHandlers?F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_SCRIPT_LOAD_FAILED,appConfigs[0],exception):_appScriptLoadFailed(appConfigs[0],exception)}cb()}},elementInDocument=function(a){if(a)for(;a.parentNode;)if(a=a.parentNode,a===document)return!0;return!1},_loadHtml=function(a){jQuery.each(a,function(a,b){if(_isPlaceholderElement(appConfigs[a].root))jQuery(appConfigs[a].root).addClass(F2.Constants.Css.APP).append(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId));else if(_bUsesAppHandlers){F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,appConfigs[a],_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+appConfigs[a].appId)));var c=appConfigs[a].appId,d=appConfigs[a].root;if(!d)throw"Root for "+c+" must be a native DOM element and cannot be null or undefined. Check your AppHandler callbacks to ensure you have set App root to a native DOM element.";if(!elementInDocument(d))throw"App root for "+c+" was not appended to the DOM. Check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,appConfigs[a]),!F2.isNativeDOMNode(d))throw"App root for "+c+" must be a native DOM element. Check your AppHandler callbacks to ensure you have set app root to a native DOM element."}else appConfigs[a].root=_afterAppRender(appConfigs[a],_appRender(appConfigs[a],b.html));_initAppEvents(appConfigs[a])})},scripts=appManifest.scripts||[],styles=appManifest.styles||[],inlines=appManifest.inlineScripts||[],apps=appManifest.apps||[];_loadStyles(styles,function(){_loadHtml(apps),_loadScripts(scripts,function(){appConfigs[0]&&F2.Events.emit("APP_SCRIPTS_LOADED",{appId:appConfigs[0].appId,scripts:scripts}),_loadInlineScripts(inlines,function(){jQuery.each(appConfigs,function(a,b){_createAppInstance(b,appManifest.apps[a])})})})})},_loadSecureApp=function(a,b){if(_config.secureAppPagePath){if(_isPlaceholderElement(a.root))jQuery(a.root).addClass(F2.Constants.Css.APP).append(jQuery("
    ").addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId));else if(_bUsesAppHandlers){var c=jQuery(a.root);if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER,a,_outerHtml(jQuery(b.html).addClass(F2.Constants.Css.APP_CONTAINER+" "+a.appId))),0===c.parents("body:first").length)throw"App was never rendered on the page. Please check your AppHandler callbacks to ensure you have rendered the app root to the DOM.";if(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_AFTER,a),!a.root)throw"App Root must be a native dom node and can not be null or undefined. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node.";if(!F2.isNativeDOMNode(a.root))throw"App Root must be a native dom node. Please check your AppHandler callbacks to ensure you have set App Root to a native dom node."}else a.root=_afterAppRender(a,_appRender(a,"
    "));a.ui=new F2.UI(a),_initAppEvents(a),F2.Rpc.register(a,b)}else F2.log('Unable to load secure app: "secureAppPagePath" is not defined in F2.ContainerConfig.')},_outerHtml=function(a){return jQuery("
    ").append(a).html()},_validateApp=function(a){return a.appId?a.root||a.manifestUrl?!0:(F2.log('"manifestUrl" missing from app object'),!1):(F2.log('"appId" missing from app object'),!1)},_validateContainerConfig=function(){if(_config&&_config.xhr){if("function"!=typeof _config.xhr&&"object"!=typeof _config.xhr)throw"ContainerConfig.xhr should be a function or an object";if(_config.xhr.dataType&&"function"!=typeof _config.xhr.dataType)throw"ContainerConfig.xhr.dataType should be a function";if(_config.xhr.type&&"function"!=typeof _config.xhr.type)throw"ContainerConfig.xhr.type should be a function";if(_config.xhr.url&&"function"!=typeof _config.xhr.url)throw"ContainerConfig.xhr.url should be a function"}return!0};return{getContainerState:function(){return _isInit()?jQuery.map(_apps,function(a){return{appId:a.config.appId}}):void F2.log("F2.init() must be called before F2.getContainerState()")},getContainerLocale:function(){return _isInit()?F2.ContainerConfig.locale:void F2.log("F2.init() must be called before F2.getContainerLocale()")},init:function(a){_config=a||{},_validateContainerConfig(),_hydrateContainerConfig(_config),_bUsesAppHandlers=!(_config.beforeAppRender||_config.appRender||_config.afterAppRender||_config.appScriptLoadFailed),(_config.secureAppPagePath||_config.isSecureAppPage)&&F2.Rpc.init(_config.secureAppPagePath?_config.secureAppPagePath:!1),F2.UI.init(_config),_config.isSecureAppPage||_initContainerEvents()},isInit:_isInit,loadPlaceholders:function(a){var b=[],c=[],d=function(a){a&&b.push(a)},e=function(a){if(a)for(var b=0,c=a.length;c>b;b++)d(a[b])};if(a&&!F2.isNativeDOMNode(a))throw'"parentNode" must be null or a DOM node';a&&a.hasAttribute("data-f2-appid")?d(a):(a=a||document,a.querySelectorAll&&e(a.querySelectorAll("[data-f2-appid]")));for(var f=0,g=b.length;g>f;f++){var h=_getAppConfigFromElement(b[f]);c.push(h)}c.length&&F2.registerApps(c)},registerApps:function(a,b){if(!_isInit())return void F2.log("F2.init() must be called before F2.registerApps()");if(!a)return void F2.log("At least one AppConfig must be passed when calling F2.registerApps()");var c=[],d={},e={},f=!1;return a=[].concat(a),b=[].concat(b||[]),f=!!b.length,a.length?a.length&&f&&a.length!=b.length?void F2.log('The length of "apps" does not equal the length of "appManifests"'):(jQuery.each(a,function(a,e){if(e=_createAppConfig(e),e.root=e.root||null,_validateApp(e)){if(_apps[e.instanceId]={config:e},e.root&&!_isPlaceholderElement(e.root)){if(!e.root&&"string"!=typeof e.root&&!F2.isNativeDOMNode(e.root))throw F2.log("AppConfig invalid for pre-load, not a valid string and not dom node"),F2.log("AppConfig instance:",e),"Preloaded appConfig.root property must be a native dom node or a string representing a sizzle selector. Please check your inputs and try again.";if(1!=jQuery(e.root).length)throw F2.log("AppConfig invalid for pre-load, root not unique"),F2.log("AppConfig instance:",e),F2.log("Number of dom node instances:",jQuery(e.root).length),"Preloaded appConfig.root property must map to a unique dom node. Please check your inputs and try again.";return _createAppInstance(e,{preloaded:!0,status:F2.Constants.AppStatus.SUCCESS}),void _initAppEvents(e)}_isPlaceholderElement(e.root)||(_bUsesAppHandlers?(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_CREATE_ROOT,e),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_RENDER_BEFORE,e)):e.root=_beforeAppRender(e)),f?_loadApps(e,b[a]):e.enableBatchRequests&&!e.isSecure?(d[e.manifestUrl.toLowerCase()]=d[e.manifestUrl.toLowerCase()]||[],d[e.manifestUrl.toLowerCase()].push(e)):c.push({apps:[e],url:e.manifestUrl})}}),void(f||(jQuery.each(d,function(a,b){c.push({url:a,apps:b})}),jQuery.each(c,function(a,b){var c=F2.Constants.JSONP_CALLBACK+b.apps[0].appId;e[c]=e[c]||[],e[c].push(b)}),jQuery.each(e,function(a,b){var c=function(d,e){if(e){var f=e.url,g="GET",h="jsonp",i=function(){c(a,b.pop())},j=function(){jQuery.each(e.apps,function(a,b){b.name=b.name||b.appId,F2.log("Removed failed "+b.name+" app",b),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL,b),F2.removeApp(b.instanceId)})},k=function(a){_loadApps(e.apps,a)};if(_config.xhr&&_config.xhr.dataType&&(h=_config.xhr.dataType(e.url,e.apps),"string"!=typeof h))throw"ContainerConfig.xhr.dataType should return a string";if(_config.xhr&&_config.xhr.type&&(g=_config.xhr.type(e.url,e.apps),"string"!=typeof g))throw"ContainerConfig.xhr.type should return a string";if(_config.xhr&&_config.xhr.url&&(f=_config.xhr.url(e.url,e.apps),"string"!=typeof f))throw"ContainerConfig.xhr.url should return a string";var l=_config.xhr;"function"!=typeof l&&(l=function(a,b,c,f,i){jQuery.ajax({url:a,type:g,data:{params:F2.stringify(e.apps,F2.appConfigReplacer)},jsonp:!1,jsonpCallback:d,dataType:h,success:c,error:function(a,b,c){F2.log("Failed to load app(s)",c.toString(),e.apps),f()},complete:i})}),l(f,e.apps,k,j,i)}};c(a,b.pop())})))):void F2.log("At least one AppConfig must be passed when calling F2.registerApps()")},removeAllApps:function(){return _isInit()?void jQuery.each(_apps,function(a,b){F2.removeApp(b.config.instanceId)}):void F2.log("F2.init() must be called before F2.removeAllApps()")},removeApp:function(a){return _isInit()?void(_apps[a]&&(F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_BEFORE,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY,_apps[a]),F2.AppHandlers.__trigger(_sAppHandlerToken,F2.Constants.AppHandlers.APP_DESTROY_AFTER,_apps[a]),delete _apps[a])):void F2.log("F2.init() must be called before F2.removeApp()")}}}()),jQuery(function(){var a=[],b=function(b){b&&a.push(b)},c=function(a){if(a)for(var c=0,d=a.length;d>c;c++)b(a[c])};if(b(document.getElementById("f2-autoload")),document.querySelectorAll&&(c(document.querySelectorAll("[data-f2-autoload]")),c(document.querySelectorAll(".f2-autoload"))),a.length){F2.init();for(var d=0,e=a.length;e>d;d++)F2.loadPlaceholders(a[d])}}),exports.F2=F2,"undefined"!=typeof define&&define.amd&&define(function(){return F2})}}("undefined"!=typeof exports?exports:window); \ No newline at end of file diff --git a/docs/dist/container-development.html b/docs/dist/container-development.html index e71f8cd8..9cffcfc7 100644 --- a/docs/dist/container-development.html +++ b/docs/dist/container-development.html @@ -677,6 +677,7 @@

    F2 AppHandlers provide event handlers for customized app layout using F2.AppHandlers.on() and F2.AppHandlers.off(). The use of on and off require both a token and an event type as arguments. The event types, defined as constants in F2.Constants.AppHandlers, are:

      +
    • appManifestRequestFail
    • appCreateRoot
    • appDestroy
    • appDestroyAfter
    • diff --git a/docs/dist/extending-f2.html b/docs/dist/extending-f2.html index 7a7eb54c..7497f32a 100644 --- a/docs/dist/extending-f2.html +++ b/docs/dist/extending-f2.html @@ -165,7 +165,7 @@
    diff --git a/docs/dist/f2js-sdk.html b/docs/dist/f2js-sdk.html index 35d52f13..2b12263e 100644 --- a/docs/dist/f2js-sdk.html +++ b/docs/dist/f2js-sdk.html @@ -187,7 +187,7 @@

    There is a page on the wiki tracking deprecated features in F2. Starting with version 1.2, three ContainerConfig properties have been retired. As F2 features and/or F2.js APIs are deprecated, we will attempt to give reasonable advance notice via any or all of the F2 communication channels. In addition, we will strive to ensure that backward compatibility will be maintained for at least one major version of F2. For example, if Feature X is deprecated in version 1.3, we will attempt to maintain backward compatibility until the next major release (version 2.0). F2 documentation will be updated accordingly to reflect any changes, and the conversation behind deprecated features will be publicly available on GitHub.

    F2 uses third party libraries inside F2.js (see Framework: Choices). These open-source libraries are all on their own release schedules. We cannot guarantee that we will always stay abreast and in tune with such latest releases, but in an effort to improve the F2 framework, we will attempt to update F2.js so that it uses the latest, most stable and most secure version of the third party software. These updates to F2 will be made through the normal release process on GitHub and comments will be open.

    -

    Have a question? Ask it on the F2 Google Group (or send an email to OpenF2@googlegroups.com) or start a discussion using Issues on GitHub.

    +

    Have a question? Ask it on the F2 Google Group (or send an email to OpenF2@googlegroups.com) or start a discussion using Issues on GitHub.

    To track bugs, enhancements or other issues, F2 is using Issues on GitHub.


    F2 is licensed under the Apache License version 2.0. Details are available in the project readme.

    diff --git a/docs/src/container-development.md b/docs/src/container-development.md index 057832e6..25c5c9cd 100644 --- a/docs/src/container-development.md +++ b/docs/src/container-development.md @@ -869,6 +869,7 @@ Appending apps to the `` is the default app rendering behavior of F2. F2 `AppHandlers` provide event handlers for customized app layout using `F2.AppHandlers.on()` and `F2.AppHandlers.off()`. The use of `on` and `off` require both a [token](#apphandler-tokens) and an event type as arguments. The event types, defined as constants in `F2.Constants.AppHandlers`, are: +* `appManifestRequestFail` * `appCreateRoot` * `appDestroy` * `appDestroyAfter` From e54f20cdf559c5bf6ba5693eb8600ac9024298c8 Mon Sep 17 00:00:00 2001 From: qrider Date: Thu, 11 May 2017 11:09:35 -0600 Subject: [PATCH 6/6] fixed build issue where spaces and tabs were mixed. --- sdk/src/app_handlers.js | 36 ++++++++++++++++++------------------ sdk/src/container.js | 8 ++++---- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/sdk/src/app_handlers.js b/sdk/src/app_handlers.js index 75dd29f6..c354014f 100644 --- a/sdk/src/app_handlers.js +++ b/sdk/src/app_handlers.js @@ -428,24 +428,24 @@ F2.extend('Constants', { { return { /** - * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the - * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) - * @property APP_MANIFEST_REQUEST_FAIL - * @type string - * @static - * @final - * @example - * var _token = F2.AppHandlers.getToken(); - * F2.AppHandlers.on( - * _token, - * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, - * function(appConfig) - * { - * You can use information from the appConfig to surface a custom error message in the dom - * Or display some kind of default error placeholder element rather than having a blank spot in the dom - * } - * ); - */ + * When bound using {{#crossLink "F2.AppHandlers/on"}}F2.AppHandlers.on(){{/crossLink}} the listener function passed will receive the + * following argument(s): ( {{#crossLink "F2.AppConfig"}}appConfig{{/crossLink}} ) + * @property APP_MANIFEST_REQUEST_FAIL + * @type string + * @static + * @final + * @example + * var _token = F2.AppHandlers.getToken(); + * F2.AppHandlers.on( + * _token, + * F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + * function(appConfig) + * { + * You can use information from the appConfig to surface a custom error message in the dom + * Or display some kind of default error placeholder element rather than having a blank spot in the dom + * } + * ); + */ APP_MANIFEST_REQUEST_FAIL: 'appManifestRequestFail', /** * Equivalent to `appCreateRoot`. Identifies the create root method for use in AppHandlers.on/off. diff --git a/sdk/src/container.js b/sdk/src/container.js index 59349d48..32526f09 100644 --- a/sdk/src/container.js +++ b/sdk/src/container.js @@ -1143,10 +1143,10 @@ F2.extend('', (function() { item.name = item.name || item.appId; F2.log('Removed failed ' + item.name + ' app', item); F2.AppHandlers.__trigger( - _sAppHandlerToken, - F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, - item // the app config - ); + _sAppHandlerToken, + F2.Constants.AppHandlers.APP_MANIFEST_REQUEST_FAIL, + item // the app config + ); F2.removeApp(item.instanceId); }); },